CoinJoin is a Bitcoin transaction where multiple users combine their UTXO (Unspent Transaction Outputs) into one large transaction with multiple inputs and multiple outputs. A traditional Bitcoin transaction is usually composed of one sender and one recipient. It is easy to understand, even by an external observer, which inputs correspond to which outputs and vice versa. The purpose of a CoinJoin transaction composed by multiple inputs and outputs is to break blockchain surveillance heuristics.
While Bitcoin it is often wrongly considered as anonymous money, the blockchain underlying it is quite the opposite: an extremely transparent, immutable and verifiable system by anyone. Bitcoin does to money what the Internet has done to information: it provides indiscriminate access to a decentralized financial system.
Bitcoin by default does not provide the privacy we got used to with the traditional financial systems due to its publicly transparent nature. The aim is to have privacy by default while having the option to be publicly transparent at will.Bitcoins are traceable on the blockchain
Each Bitcoin transaction contains at least one input (where the bitcoins come from) and at least one output (where the bitcoins are sent).
Another feature of Bitcoin transactions is that they must always match the previous transaction. If you receive 1 BTC, but later want to send only 0.4 BTC, you’ll need to make a 1 BTC transaction; 0.4 BTC will be sent as payment, while the remaining 0.6 BTC will be returned to the sender as change.
This means that once a single address is known, there is a trail that allows bitcoins to be tracked. This is a big problem for the privacy of network participants.Example of Bitcoin transactions, where every input is an output of a previous transaction. Credits: Bitcoin Wiki
The most promising way to maintain your financial privacy with Bitcoin is through CoinJoin. CoinJoins can be done in a trustless way,...