If you stop to think about it, blockchain transactions for Ethereum and Bitcoin — the two biggest cryptocurrencies in the world right now — are fully public and visible, but merely pseudonymous. This means that, due to this high level of transparency, just about anyone can track a user’s spending habits with their public address, and if they wanted to expose their transaction history, they’d only require the user details on a single transaction to make that happen.
This doesn’t necessarily mean that they know the personal information of a user, of course, due to the pseudonymous nature of public addresses, but it still leaves something to be desired from the more privacy-oriented crypto users.
Now, to solve this “problem” of transparent pseudonymity, various solutions and protocols developed with a privacy focus in mind, but arguably none of them have been quite as successful as the transaction mixer.
A transaction mixer essentially scrambles together the funds of multiple users as well as their transactions: before each transaction reaches its intended destination, it is “mixed.” After this mixing process occurs, it becomes a lot more difficult for anyone to trace whose money went where, and what amount.
When it came to actually putting transaction mixers into use, the protocols developed worked by sending a large number of random transactions through multiple addresses in order to increase the anonymity of transactions. However, these transactions could still be traced on the public ledger, so this was not considered a fully-successful solution.
Tornado Cash aims to solve the privacy problem of transparent blockchains through the use of private transactions. It is not exactly a coin mixer like Samourai and Wasabi, because it mixes the coins in a slightly different way — but in the end, Tornado Cash has the same goal of keeping financial transactions private.
What Is Tornado Cash (TORN)?
Tornado Cash (TORN) is a decentralized as well as non-custodial privacy solution that is built on Ethereum. While Tornado Cash was developed based on open source research by the Zcash team (a privacy coin), the protocol allows users to send ETH and ERC-20 deposits through its smart contract service.
Once you send an ETH or ERC-20 deposit to Tornado Cash, you can withdraw your crypto through a new address. Once the asset is withdrawn by the new address, there’s no way to link the withdrawal to the deposit and this, in turn, ensures asset privacy.
The TORN protocol is owned by the community — in May 2020, the Tornado Cash team relinquished control of the protocol’s multisig wallet through a contract update known as a Trusted Setup Ceremony. As of then, the founders don’t have any control of Tornado Cash, and it is considered a fully decentralized protocol.
The TORN token is an ERC-20 token with a fixed supply that allows for holders to make proposals and vote for changes within the protocol. Users of Tornado Cash accrue Anonymity Points as they interact with the protocol, which are then deposited into a shielded account. When they collect enough Anonymity Points, they can convert them into TORN tokens in a similarly protected process.
How Does Tornado Cash Work?
Using Tornado Cash, transactions are mixed using zero-knowledge proofs, and these completely obfuscate the transaction information. Tornado Cash is also a decentralized service, and it is run through smart contracts, so no centralized third party can take custody of the funds throughout the mixing process, as can be the case with other mixing methods.
If you are interested in using Tornado Cash, here’s how it works. You need to deposit funds to Tornado Cash, after which it will generate a random key and deposit your ERC-20 tokens. To make a withdrawal at some point in the future, you will need to submit proof of having the valid key.
Start by making a deposit, and choosing an ERC-20 token as well as the amount to deposit. Click on “Deposit” and confirm.
You can withdraw by using either a crypto wallet like MetaMask or via Relayer. If you choose to use a wallet, make sure that you generate a new address in order to continue to protect your privacy. Another way is to use Relayer, which avoids any possibility of recording the transaction publicly attached to you on the blockchain; once you generate a new Ethereum address, Relayer will deposit your funds, and charge you a network fee in ETH.
When you’ve decided how you want to withdraw your funds, enter your deposit’s secret and click on the “Settings” menu there. Here, you’ll choose a wallet option, and save it. Then you have to just enter your address and click on “Withdrawal.”
What Makes Tornado Cash Unique?
Tornado Cash essentially improves the privacy of transactions by breaking the on-chain link between a source and a destination address. Tornado Cash also uses smart contracts that accept ETH deposits, which can then be withdrawn by a variety of different addresses. And, as mentioned above, to prevent privacy, the Relayer can be used to withdraw to an address without an ETH balance as well.
Tornado Cash literally acts as a proxy that keeps transactions anonymous with zk-SNARK proofs (short for zero-knowledge succinct non-interactive argument of knowledge).
With this zero-knowledge proofs protocol, there are two parties involved.
- The Prover – who seeks to prove a hypothesis.
- The Verifier - who determines the veracity of the prover’s claims.
When a user deposits ETH to the Tornado smart contract, they generate a secret and send a hash (called a commitment) along with the deposit amount into the smart contract.
The smart contract adds the funds to its list of deposits, and when the user wants to make a withdrawal, the user has to provide the corresponding secret that matches the unspent deposit from the Tornado Cash deposit list.
In order to make a withdrawal, you can use a crypto wallet or Relayer as discussed above.
However, the Tornado Cash team has some recommendations about making withdrawals from the protocol. For starters, they recommend waiting at least five transactions before withdrawing your funds, to avoid any possibility of someone finding a connection between deposits and withdrawals. They even recommend waiting about 24 hours as a rule, just to keep your privacy secure.
The Tornado Cash team also recommends that you use internet anonymity tools like a VPN or a proxy when using the service, and clearing your cookies for DApps before using your new address for withdrawals.
What Are People Saying About Tornado Cash?
Some people, specifically Vitalik Buterin, claimed in the past that projects such as Tornado Cash are successful due to the fact that they are just simply tools that people can put into their existing workflows, and not ecosystems. According to Buterin, cryptocurrency users require more tools that are content with being tools, and fewer that want to become their own ecosystems.
With this in mind, after Tornado Cash released an airdrop in February 2021 of 500,000 tokens — which represented approximately 5% of TORN’s eventual 10,000,000 total supply of available tokens — some people were skeptical about the need for a governance token at all, since Tornado Cash seemingly worked fine as just a “tool” before. After the airdrop, TORN gained 200% in value.
According to the Tornado Cash blog, these tokens are locked for 45 days. An additional 10% of the total supply was also set aside for an anonymity mining program that is similar to cash mining, 30% to funding developers and early supporters, unlocked over three years with a one-year cliff, and 55% to the protocol treasury that is unlocked linearly throughout a span of five years.
You can look here for a list of the governance proposals for the Tornado Cash protocol.