I just learned about CoinJoin, but I don't really understand all the jargon being thrown around. Can someone explain how this works where a 10-year-old can understand?


4 Answers 4


Alice wants to transfer 1 BTC from address A to address B

Bob wants to transfer 1 BTC from address C to address D

CoinJoin gives them a way to combine their transfers into a single transaction that has two inputs (A and C) and two outputs (B and D). Someone observing the blockchain no longer knows which one of the outputs is Alice's and which one is Bob's.

Because of some cryptographic magic behind the scenes, the participants of the shared transaction (there can be more than two of them) do not have to trust each other. Compared to traditional Bitcoin mixers, there is no possibility of coins being stolen. Also, CoinJoin transactions are compact and incur no additional fees (besides the usual transaction fees)

This is an example of a CoinJoin transaction: https://blockchain.info/tx/e4abb15310348edc606e597effc81697bfce4b6de7598347f17c2befd4febf3b

Blockchain.info has already implemented CoinJoin support (branded as Shared Coin) into their web wallet.

  • Clear enough, so, all the input transactions in a coinjoin goes to one intermediate which will "generate" the output transactions, right?. What is not clear to me, if I use sharedcoin/coinjoin, my coins can be involved in an illegal-purposes transactions?
    – user16874
    May 21, 2014 at 0:49
  • @user16874 No, there is only 1 transaction generated, no intermediate. The trick is a complicated protocol (set of steps) that must be performed by participants to construct that transaction so that it is both private and secure for all. If you mix your coins with strangers, it is possible that so-called "tainted" coins may be mixed with yours, however this is true whenever you buy bitcoin. Oct 1, 2019 at 22:16
  • How to deal with coinjoin in BitcoinCore? @Rami
    – foolbear
    Apr 4 at 6:25

This is a quote from Andreas' book.

Chapter 5 Section: Transaction Chaining and Orphan Transactions

As we have seen, transactions form a chain, whereby one transaction spends the outputs of the previous transaction (known as the parent) and creates outputs for a subsequent transaction (known as the child). Sometimes an entire chain of transactions depending on each other—say a parent, child, and grandchild transaction—are created at the same time, to fulfill a complex transactional workflow that requires valid children to be signed before the parent is signed. For example, this is a technique used in CoinJoin transactions where multiple parties join transactions together to protect their privacy.


Here is a very extensive and relatively simple explanation of coinjoin.


Multiple users sign a transaction, instead of just one user. Now it's hard to tell which user initiated the transaction, hence increased privacy.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.