If I use something like Wasabi to CoinJoin my UTXOs and then send the outputs to a wallet with addresses containing UTXOs that haven't been coinjoined does this present a privacy risk?
1 Answer
...does this present a privacy risk?
Privacy concerns can be boiled down to the following questions: what information am I giving up by engaging in this transaction? And who am I sacrificing this information to?
When you engage with some counterparty to make a payment, they will gain knowledge about your involvement in the bitcoin transaction that includes said payment. An unrelated third party can also watch over all transactions, but they will not necessarily know that you are involved in said transaction specifically. By following the history of transactions and using some (imperfect) heuristics, a third party can potentially trace your coins through time, and given information about your involvement in some prior transaction, they can thus potentially link future transactions to you as well.
A coinjoin helps to sever the ability of any party to trace your coins through time (thus providing privacy). It does this by breaking the heuristics used to track a coin’s history, by effectively creating many possible histories for each output. With enough possible histories, it becomes ineffective to attempt to track a coin’s history through time.
So to answer your question more directly, let’s assume that you spend a coinjoined UTXO to some other wallet you control, and then eventually that UTXO is combined with a non-coinjoined UTXO in order to make a payment to some counterparty.
The counterparty you are engaging with could assume that you most likely control all inputs to the transaction (this is one of the mentioned heuristics), so they will now potentially have knowledge of: your use of coinjoin transactions, and your involvement in a specific coinjoin transaction. Additionally, they will have knowledge of your involvement in the transaction that created the other UTXO you spent. The counterparty could trace this other UTXO back through time, and probabilistically (using the heuristics mentioned) unveil some amount of your financial history.
For an unrelated third party, the same sort of analysis is possible, but they may not be privy to the fact of your involvement in said transactions. They may just be able to determine (probabilistically) that some group of transactions surrounding the transaction in question likely belong to a single user/wallet.
Example: the privacy granted by coinjoin transactions can be truly broken when a third party gains knowledge of your involvement with a transaction on both sides of a coinjoin. For example, if you bought coins from a KYC’d exchange, transferred them to an external wallet, coinjoined, and then sent the coinjoin UTXO straight back to the exchange (to the same user account), then your use of a coinjoin would be useless in protecting your privacy against the exchange. Further, the anonymity set for each other participant in the coinjoin would now be reduced slightly, since the link between least one input and output in the transaction would be known.
———————
So, coinjoin transactions can be effective if used properly, and the more they are used, the more effective they become. But they are not a silver bullet against privacy snoops! Improper use can completely destroy the privacy gains, and so a user must practice careful coin control in order to maintain their privacy most effectively. In the example above, if the user never combined the coinjoin UTXO with any other UTXO that is traceable back to them, then the coinjoin would be quite effective in preserving their privacy. But by combining it with unjoined UTXOs, some privacy may be sacrificed.
-
Thank you @chytrik This confirmed my thoughts in an eloquent way. An excellent answer! May 28, 2019 at 9:44