Coinjoin participants use separate Tor identities by default. Look on the code I've linked above. They'd have to deliberately mess with the source code of Sparrow or Whirlpool-cli to not use separate identities.
We are not talking about different participants, but about one participant in coinjoin, who during the coinjoin needs to transfer to the coordinator the address from which he will pay from one IP and the address to which he will receive from another IP. So that the coordinator cannot link its inputs and outputs.
Can you please explain in more detail how exactly you can get a new tor circuit without using tor management interface?
From the code I don’t understand what exactly happens when executed:
// change Tor circuit
config.getTorClientService().changeIdentity();
Is this function running?
https://github.com/sparrowwallet/nightjar/blob/08fd60cd5256ce4842701c6c179c18f997fd252f/src/main/java/com/sparrowwallet/nightjar/tor/WhirlpoolTorClientService.java public void changeIdentity() {
Authenticator.setDefault(new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("user", Integer.toString(secureRandom.nextInt()).toCharArray()));
}
});
btw,
Sparrow wallet code is here:
https://github.com/sparrowwallet/sparrow(Desktop Bitcoin Wallet focused on security and privacy. Free and open source. )
nightjar is separate project
https://github.com/sparrowwallet/nightjar(Whirlpool client single module)