Bitcoin is amazing at what it does. It’s digital gold in a day and age where nearly everything is moving online. However, one thing Bitcoin’s never been great at is privacy.
It’s a common mistake for Bitcoin newbies to think that Bitcoin is anonymous. This is likely due to the common association with its use for transactions on the Silk Road.
Bitcoin can be best described as pseudo-anonymous.
On the Bitcoin blockchain, every address and its transaction history is available for viewing. Any blockchain explorer such as blockstream.info can reveal all interactions an address has with the rest of the network.
We can take a look at one of the richest non-cryptocurrency exchange wallet addresses:
Some completely public information we’re able to see about this address are:
So as you can tell, Bitcoin’s not so private after all…
Keep in mind any address can be viewed in this manner.
Bitcoin’s pseudo-anonymity comes from the idea that it can be difficult to tell which address is linked to what identity(s).
However, once this level of anonymity is broken (through a variety of methods/reasons) it can be an extremely expensive and intensive process to replicate that amount of privacy.
This is why in 2013, Bitcoin Core developer Gregory Maxwell opened up a BitcoinTalk thread discussing the idea of CoinJoins.
While the idea got a lot of traction, it wasn’t until very recently Coinjoins, a trustless way bundling Bitcoin transactions, have taken off in popularity.
By bundling these transactions, it makes it increasingly more difficult for outside viewers to identify who paid who. What makes CoinJoins so compelling is that no changes need to be made to the underlying Bitcoin protocol in order to participate.
Now that you have a background on what exactly CoinJoins are let’s get into how they work.
Below is an example diagram provided by Maxwell explaining the basic dead behind a CoinJoin. The main theory behind this as stated by Maxwell is:
“Usage in a single transaction does not prove common control.”
In Bitcoin transactions, each input has a corresponding signature that is entirely independent of each other. Signatures can best be described as a method of proof linking ownership to a public key using a private key.
This allows those involved in a transaction to come to a consensus on sets of inputs and outputs with a delayed merging of signatures. It’s only after each participant signs off that the Bitcoin network will recognize the entire transaction.
We know what your thinking…
What does this mean in English?
Users who want to do CoinJoins can mix each other’s input signatures and outputs before a transaction takes place.
This improves privacy and increasingly so as the sample size grows. What’s so impressive with this method is that there isn’t a risk of theft at any time.
CoinJoins make a lot of sense for those wanted to store their Bitcoin long term in a more secure manner. The amount of work required to CoinJoin larger amounts of Bitcoins makes it somewhat pointless for amounts you’ll spend quickly.
One potential downfall of CoinJoins is the possibility for the false belief of total privacy. CoinJoins are the best privacy option available for Bitcoin but are not 100% guaranteed to hide transactions completely.
Through the use of statistical analysis tools and correlation, it’s difficult, but possible for the process to be unwinded.
Wasabi and Samourai are likely the most notable wallet that supports CoinJoins.
Wasabi is a noncustodial, open-source, desktop Bitcoin wallet available on Windows 7-10, Debian, Ubuntu, Linux, and Mac. The open-source code can be viewed on the official project Github.
According to the Samourai website, the wallet can be best described as a
“Modern bitcoin wallet hand forged to keep your transactions private your identity masked and your funds secured.”
At press time, the wallet is available on the Android marketplace, and Desktop (Mac OSX, Linux, and Windows).
It’s highly recommended to avoid CoinJoin wallets that aren’t open-source, as it adds a lot of trust to third parties.
As we’ve stated earlier, it’s also more beneficial to use well known CoinJoin wallets due to their strong snowballing network effect.
Overall, CoinJoins are an interesting and effective feature that adds more privacy to Bitcoin without changing the underlying protocol. The concept was created in 2013 but has seen steady growth over the recent years.
Due to the nature of the technology, it has a large network effect meaning that as the number of people that join increases, the more peoples coins are able to be made private.
To get started with CoinJoins be sure to check out the recommended wallets and official Bitcointalk proposal. Here’s a great video from Andreas Antonopoulos on Bitcoin mixing services: