Coinjoin and Tornado.Cash may are different privacy-enhancing technologies used in the world of cryptocurrency. But what exactly are these technologies, and how do they differ from each other? Well, let’s dive right in and find out.
Bitcoin VS Ethereum & Other EVM networks
First off, let’s talk about Coinjoin. Coinjoin is a technique that allows multiple parties to combine their Bitcoin transactions together into one big transaction. This makes it much harder for outsiders to figure out who sent what to whom. The idea behind Coinjoin is to make it harder for people to trace transactions and link them to a specific person. This is done by using different denominations of Bitcoin, such as 0.001 BTC, 0.01 BTC, 0.1 BTC, 1 BTC, and 10 BTC.
On the other hand, Tornado Cash is a privacy-enhancing technology that supports a variety of different chains and tokens. It supports the Ethereum blockchain, which includes ETH (Ethereum), DAI (Dai), cDAI (Compound Dai), USDC (USD Coin), USDT (Tether), and WBTC (Wrapped Bitcoin). Tornado Cash also supports the Binance Smart Chain, which includes BNB (Binance Coin), the Polygon Network, which includes MATIC (Polygon), the Gnosis Chain (formerly known as the xDAI Chain), which includes xDAI (xDai), the Avalanche Mainnet, which includes AVAX (Avalanche), Optimism, as a Layer-2 for ETH (Ethereum), and Arbitrum One, as a Layer-2 ETH (Ethereum).
So, what’s the difference between the two? Well, Coinjoin is a technique that is specifically used for Bitcoin, while Tornado Cash is a privacy-enhancing technology that supports a variety of different chains and tokens. Coinjoin is all about combining transactions together to make them harder to trace, while Tornado Cash is all about making it difficult for outsiders to link a specific transaction to a specific person.
Comparing CoinJoin and Tornado Cash Mechanics
So, we’ve covered the basics of Coinjoin and Tornado Cash in the previous section, but now let’s dive a little deeper into the nitty-gritty details of how these techniques work.
First off, let’s talk about Coinjoin. In Coinjoin, there is a single coordinator server that is operated by the wallet maker. This server is coded into the wallet, and all users participate in the Coinjoin by contacting this central server and “registering” to wait around until enough users have registered to construct the Coinjoin. This is kind of like a game of musical chairs, but with Bitcoin transactions instead of chairs.
Once the required number of users is present and registered, the coordinator server signs a blinded credential representing the right to create an output in the Coinjoin transaction. And just like that, the users disconnect and reconnect through a new Tor connection to register their transaction outputs. This prevents the coordinator from learning which inputs map to which outputs. And don’t worry, users pay a fee to the coordinator for its role in facilitating the Coinjoin. It’s like a digital tip jar, but for privacy.
Now, let’s talk about Tornado Cash. Tornado Cash is a little bit different than Coinjoin. Instead of a single coordinator server, Tornado Cash uses smart contracts on the Ethereum blockchain to create a decentralized, trustless, and anonymous mixer. This means that there is no central point of failure, and users don’t need to trust a third party with their transactions.
In Tornado Cash, users deposit their funds into a smart contract, and then they can withdraw them later in a way that is not linkable to their original deposit. This is done by using a technique called zk-SNARKs (zero-knowledge succinct non-interactive arguments of knowledge) which allows for the verification of a statement without revealing any information about the statement itself.
So, what’s the difference between these two techniques? Well, Coinjoin uses a single coordinator server that is operated by the wallet maker, while Tornado Cash uses smart contracts on the Ethereum blockchain to create a decentralized, trustless, and anonymous mixer. Coinjoin requires users to trust a third party with their transactions, while Tornado Cash doesn’t. Coinjoin is like a digital tip jar for privacy, while Tornado Cash is like a digital piggy bank for privacy.
Coinjoin and Tornado Cash are two different techniques that serve different purposes. Coinjoin uses a single coordinator server that is operated by the wallet maker, while Tornado Cash uses smart contracts on the Ethereum blockchain to create a decentralized, trustless, and anonymous mixer. Both techniques aim to make it difficult for outsiders to trace transactions and link them to a specific person, but they go about it in different ways.
Difference in Wallets: Software VS Web3
When it comes to CoinJoin transactions, you’ll need to download and use a specific wallet, like Samurai Wallet. Now, don’t get me wrong, Samurai Wallet is a great choice and it’s been around for a while, but it does limit your options a bit. You’re stuck with one specific wallet and if you’re not a fan of it, well, tough luck.
On the other hand, Tornado Cash transactions can be done through any web3 wallet that supports the available networks. This gives you more flexibility and options when it comes to choosing a wallet. Plus, if you’re not satisfied with one wallet, you can always switch to another one without any issues.
Now, some of you might be thinking “But wait, isn’t that a small difference? Why does it matter?” Well, it might not seem like a big deal, but having the ability to choose from a variety of wallets can be a game-changer for some people. Some of us have our own personal preferences when it comes to wallets, and having the option to choose from different ones can make the whole privacy-enhancing process a lot more enjoyable.
Plus, it’s always nice to have options, right? And in the world of cryptocurrency, having options is never a bad thing. So, whether you’re a fan of Samurai Wallet or you prefer to use something else, just remember that CoinJoin and Tornado Cash have different requirements when it comes to wallets.