1 min read

A CoinJoin is a large Bitcoin transaction which takes inputs from many different users and returns many outputs of identical amounts, so that an observer cannot easily determine which outputs belong to which of the participants. CoinJoin provides increased privacy for owners of bitcoin by breaking the heuristics used by chain analysis companies. CoinJoin transactions obscure ownership of specific pieces of bitcoin (UTXOs). CoinJoin is distinct from mixing services in that CoinJoin operators never take custody of any funds. Users maintain control of their bitcoin at all times. Check out an example of a CoinJoin transaction on the blockchain here.

In order to construct a CoinJoin transaction, users cooperatively contribute inputs to a transaction and receive the same amounts of bitcoin as outputs, all in uniform amounts. For example, if 5 users input amounts of 1, 2, 3, 4, and 5 BTC, there will be five inputs totalling 15 BTC, and there will be 15 outputs, each worth 1 BTC. Since each input is of exactly the same amount, it is impossible to tell which 1 BTC outputs belong to which user.