How to avoid address clustering and stay anonymous? Is that even feasible?

Hello! I’m relatively new to Bisq, although I did a few trades already, so I think I have some basic understanding of how it works, but I may be wrong on some details. I also think I have some basic understanding of coinjoin, however I have mostly read about how whirlpool implementation works, so - again - I may be wrong in some of my assumptions.

So after giving it some thought I came to conclusion, that it is really hard (and expensive) to stay anonymous when using Bisq. What I mean by that is that is almost impossible to avoid address clustering, which would allow someone to link all the addresses generated in Bisq to a single person, even if all of them had deposits made straight from the mixer.

Let’s assume that I’m mostly a seller of BTC. In this case after each trade I would get my security deposit returned to my (new) address. To really stay anonymous I would have to proceed to mix that UTXO (and only that one!) right away. Any other option, like sending it to my external wallet and then merging a few of such returned deposits before going to coinjoin - all trades (and all previous mixer outputs) get linked. While it is of course possible to do that, it would be very hard due to relatively small size of security deposit and the fact that coinjoin pool sizes are usually of specific size, not equal to what the security deposit is.

So how do I deal with that in an optimal way (i.e. not wasting a ton of BTC for coinjoin/whirlpool fees)? If - for example - I have 1 freshly mixed UTXO (large) and 1 returned security deposit (small), maybe doing something like “STONEWALL” transaction in Samourai/Sparrow Wallet (which is a tx that looks like a coinjoin to the outside observer, but actually uses addresses controlled by one person) would allow me to avoid this problem? Or maybe doing STONEWALL transactions to multiple returned security deposits until I’m able to “merge” enough of them to create a new sell offer or just so they are large enough to fit in a whirlpool/coinjoin pool? Or something else entirely?

How do you deal with this “issue” (;

While we’re at it, I also have a bonus question. Am I correct to assume that using BSQ to pay for fees automatically voids all possible attempts to avoid this issue of linking addresses? Seems like the chain of payments done from BSQ wallet would nicely link all of the addresses used for trades to a single owner, as long as something in the fee transactions is linkable to a trade on-chain (maybe one of the transaction fields has a hash ID of the trade or sth like that)? Or maybe there is some clever trick done in there that an outside observer cannot easily link the fee payment to the actual transaction?

Thanks in advance for all the answers and ideas! (;

1 Like

Both issues you point are valid.
The way I deal with that is to separate funds to trade at Bisq and then do some coinjoins when taking funds from one side to the other.

1 Like

The coinjoins you mention are via joinmarket or sth else? Or maybe you do “STONEWALL” tx type, which just looks like coinjoin, but it’s actually the same owner?

I’m trying to setup joinmarket client myself to try that, as this seems much cheaper than using Samourai/Sparrow whirlpool (with fee up to 5%…) - we’ll see how that goes (;

Any would work, they all have their pros and cons.
Just don’t use Wasabi hehe

1 Like

Regarding BSQ, yes, all your txs will be easily linked to one another if they were paid with peeling txs off your BSQ stack. No way to go around that unless you get a new BSQ utxo for every trade…

1 Like