CoinJoin is an open-source & decentralized Bitcoin mixing technology
CoinJoin is an anonymization strategy that protects the privacy of Bitcoin users when they conduct transactions with each other, obscuring the sources and destinations of BTC used in transactions. CoinJoin requires multiple parties to jointly sign a digital smart contract to mix their coins in a new Bitcoin transaction, where the output of the transaction leaves the participants with the same number of coins, but the addresses have been mixed to make external tracking difficult.
BTC Blender allows you to perform CoinJoin transactions online
The working principle of CoinJoin is quite simple. Instead of including "inputs" from only one user in a transaction, the service allows several people to combine their own "inputs", the same happens with "outputs". As a result, it is impossible to establish a connection between a particular "input" and "output".
During the process of creation, the owners of the "inputs" mark the "inputs" and "outputs" that should be included in the transaction and afterwards provide special signatures if the transaction was created correctly. Only after this the transaction is written in the blockchain, which excludes the possibility of its further modification. Thanks to CoinJoin, third parties cannot determine if specific "outputs" belong to specific "inputs", which makes Bitcoin movement secure and confidential.
This service also indirectly makes clustering difficult, because now users who are attacking the network cannot be sure that all the "inputs" of a transaction belong to one person.