What is a Bitcoin CoinJoin?

The CoinJoin concept was developed and introduced as a new layer of privacy to otherwise public Bitcoin transactions. The phrase was coined by Bitcoin developer Gregory Maxwell in an announcement thread on the Bitcoin Forum.

Bitcoin is pseudonymous, so while your name might not be etched into the blockchain, your wallet addresses and transaction values are public information. It doesn’t take much searching for those wallet addresses to be tied to an identity. If you’re sharing and re-using the same address in a public space, you’re leaving a way for your Bitcoin holdings to be tracked by anyone in the general public.

If you’re buying Bitcoin on a KYC exchange, you’re also leaving yourself open to being tracked by various government and financial institutions. 

What Is CoinJoin?

A Coinjoin is the first generation in privacy measures built on Bitcoin and allows users to batch transactions with other Bitcoin users.

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.

The process is also known as coin mixing.

KEY TAKEAWAYS

  • CoinJoin is a process used to anonymize Bitcoin transactions online.
  • CoinJoin involves a multi-party Bitcoin transaction where all parties to the transaction put in and get out the same amount of Bitcoin, but the addresses are mixed in the transaction making the origin of the coins difficult to trace.
  • CoinJoin is typically performed automatically by dedicated services that carry it out. Performing a CoinJoin without such a tool is difficult and requires advanced coding skills.

How Does CoinJoin Work?

CoinJoin was developed to introduce a layer of privacy to otherwise public Bitcoin transactions. The phrase was coined by Bitcoin developer Gregory Maxwell in an announcement thread on the Bitcoin Forum.

Why Bitcoin Is Not Exactly Private

Though Bitcoin in its early days had a reputation for being anonymous and so was used for transactions on darknet sites such as Silk Road, the cryptocurrency actually provides very little privacy. Bitcoin addresses do not list users’ names and addresses, but they are easily traceable and someone might be able to associate your IP address with your Bitcoin transaction.

Once one user has been identified, researchers can use common digital forensic methods to trace all the contacts in the network. This isn’t a bug of Bitcoin, it is the foundation of its “trustless” system: all transactions are public to prevent user fraud.

Other coins have been developed to incorporate user privacy into the code of the coin. Monero, ZCash, and Dash are prominent examples. Monero’s privacy technology is similar to CoinJoin, in that it uses ring signatures to mix the spender’s signature with the signatures of other users to make tracing addresses nearly impossible.

CoinJoin Is the First-Generation Privacy Measure for Bitcoin

A user that wants to implement CoinJoin in their Bitcoin transaction needs to find another user who also wants to mix coins, and together they initiate a joint transaction. The address a bitcoin is sent from is referred to as an input.

A CoinJoin is a significant Bitcoin transaction that takes inputs from different Bitcoin users and returns many outputs of identical amounts. An observer cannot quickly determine which outputs belong to which of the participants.

The CoinJoin service provides increased privacy for bitcoin owners by breaking the heuristics used by chain analysis companies. CoinJoin transactions assist in obscuring ownership of specific pieces of bitcoin (UTXOs) by hiding them in a crowd of identical transactions. 

What makes CoinJoins different from other coin mixing services is that it all happens on-chain and the CoinJoin operators never take custody of any funds. Users maintain control of their bitcoin at all times. 

To construct a CoinJoin transaction, users cooperatively contribute inputs to a transaction and receive identical amounts of bitcoin as outputs, all in uniform amounts. 

For a practical example, if five users send the following amounts of Bitcoin to a CoinJoin quantity of 1, 2, 3, 4, and 5 BTC, 

  • User 1 – 1 BTC
  • User 2 – 2 BTC
  • User 3 – 3 BTC
  • User 4 – 4 BTC
  • User 5 – 5 BTC

So five inputs are totalling 15 BTC, going into the Coinjoin and then there will be 15 outputs of 1 BTC each sent to the various users. Since each input is the same amount, it is impossible to tell which 1 BTC outputs belong to which user.

CoinJoin Tools

Though the process seems clear in theory, in practice joining transactions is hard for several reasons. In order for the participants in the joining to remain anonymous, they have to connect over a Tor network, they have to know quite a bit about coding, and they have to trust each other.

To overcome these hurdles, CoinJoin developers started early to create tools that would make the process automatic for most users. The first attempts at a CoinJoin tool were incorporated into wallets. The earliest examples were Dark Wallet, JoinMarket, and SharedCoins. These platforms aimed to provide an extra level of data masking for users transacting in Bitcoin.

Later efforts include Wasabi Wallet and Whirlpool from Samourai Wallet. There is some controversy, however, as to how trustworthy and secure these wallets are and how well they anonymize Bitcoin holdings.

Why is CoinJoin important in Bitcoin?

Bitcoin uses addresses, which work like a bank account where you can receive money without any risk. Still, with a high degree of transparency, anyone can follow transactions to any address with the help of their node or a block explore levering someone else node. You can freely observe the transactions carried out in this system from its beginnings in 2009 to the present.

As data is added to the chain and can never be changed, it leaves little room for mistakes, and as people carelessly share addresses and re-use the same addresses, they tie themselves to certain activities on the chain.

Remember that, although Bitcoin does not use personal data, it is possible to associate a particular address with a person or company.

So even if personal data is not disclosed initially, any slip up can allow any third party to follow specific addresses to see how the funds move or are managed in it—determining the transactional activity within the network and possibly exposing your holdings. 

A price to pay for privacy

Remember, CoinJoins happen on-chain, so you’ll have to pay on-chain mining fees to obfuscate your transactions; depending on how large your holdings are, this seems like a small price to pay for additional layers of privacy. 

Leave a Reply