Tornado Cash: Everything to Know
By Beluga Research August 25, 2023

Summary
- Tornado Cash is a privacy-focused protocol for Ethereum that enables users to send and receive anonymous transactions
- It is a decentralized privacy protocol on Ethereum that obscures transaction history and unlinks sender and recipient addresses
- It uses zero-knowledge proofs (zk-SNARKs) to validate the integrity of deposited funds without revealing the source or destination addresses
- Users can deposit Ethereum-based assets into a smart contract called a "tornado pool" and receive private notes representing their share of the pool
Overview
Tornado Cash is a privacy-focused protocol for Ethereum that enables users to send and receive anonymous transactions. It addresses one of the significant challenges in blockchain networks: The transparent and traceable nature of transactions. The protocol allows users to mix their Ethereum (ETH) and other compatible tokens, making it challenging to associate the sender's address with the recipient.
This is achieved through a process called "tornado mixing," wherein users pool tokens with others and then withdraw an equivalent amount from a different address, effectively obfuscating the transaction trail. The process breaks the linkage between the initial sender and the final receiver, significantly enhancing privacy.
A Brief History
Tornado Cash was launched in 2020 by anonymous developers who recognized the need for privacy in cryptocurrencies. Its innovative approach and compatibility with Ethereum gained significant attention. Users quickly adopted it to enhance transaction privacy and protect their financial information.
Tornado Cash: Everything to Know
Tornado Cash operates on trustlessness and decentralization. It utilizes zero-knowledge proofs, specifically zk-SNARKs, to achieve privacy. These proofs validate statements without revealing additional information. In Tornado Cash, zk-SNARKs prove the integrity of deposited funds without disclosing source or destination addresses.
To use Tornado Cash, users deposit Ethereum-based assets into a smart contract called a "tornado pool". These pools aggregate funds from multiple users, making individual transactions difficult to trace. Depositors receive private notes, or "tornado notes," representing their share of the pool. These notes can later be used to withdraw equivalent funds.
When withdrawing funds, users submit their tornado note to the smart contract. The contract verifies the note's validity using zk-SNARKs and releases funds without revealing the user's identity. This process breaks the transaction trail, ensuring withdrawn funds are not linked to the original deposit.
It's important to note that Tornado Cash does not provide complete anonymity. While it hides the link between deposits and withdrawals within its system, external parties can still analyze on-chain data to deduce potential connections. Absolute anonymity requires additional privacy measures.
Getting Started
To start using Tornado Cash, users must understand the concept of mixing or obfuscating their cryptocurrency transactions. Mixing involves combining multiple transactions from different sources and sending them to different addresses, making it difficult to trace the original sender and recipient. Tornado Cash utilizes a smart contract on the Ethereum blockchain to facilitate this mixing process.
To begin, users need Ethereum (ETH) in their wallet that they want to mix for enhanced privacy. The first step is accessing the Tornado Cash interface through a web browser. On the interface, users can select the desired anonymity set, which determines the number of other users' transactions their own transaction will be mixed with. A larger anonymity set provides higher privacy.
After selecting the anonymity set, users must specify the deposit amount and the recipient address. It's crucial to note that the recipient address should not be linked to the user's identity to maintain privacy. Once these details are provided, the user can initiate the deposit transaction. The deposited funds are stored in a smart contract until the user decides to withdraw them.
Unique Aspects
Tornado Cash stands out for being non-custodial. Unlike traditional mixing services that require users to trust a centralized entity with their funds, Tornado Cash operates entirely on the Ethereum blockchain through smart contracts. This ensures that users maintain full control over their funds throughout the mixing process, reducing the risk of theft or loss.
Another notable aspect is the use of zero-knowledge proofs (ZKPs) to enhance privacy. ZKPs allow users to prove the validity of a statement without revealing any additional information. In Tornado Cash, ZKPs are used to prove that a user made a valid deposit without disclosing specific transaction details. This ensures that the mixing process remains private and secure.
Furthermore, Tornado Cash employs a decentralized pool of relayers to facilitate the mixing process. Relayers accept deposits from users, mix them with other transactions and forward them to the withdrawal phase. By utilizing a decentralized network of relayers, Tornado Cash minimizes the risk of collusion or censorship, further enhancing privacy for users.
Advantages
- Enhanced Privacy: Tornado Cash uses zero-knowledge proofs, a cryptographic technique that verifies statements without revealing underlying information. This ensures that the source of funds and transaction recipients remain hidden, offering valuable privacy protection in a world of financial surveillance and data breaches.
- Decentralization: Tornado Cash operates as a decentralized protocol, leveraging smart contracts on the Ethereum blockchain for fund mixing. This eliminates the need for a central authority, reducing the risk of censorship or manipulation.
- Non-custodial Solution: Tornado Cash is designed as a non-custodial solution, giving users full control over their funds throughout the mixing process. Users don't need to trust a third party, minimizing the risk of fund loss or mismanagement. This aligns with decentralization principles and empowers individuals to maintain ownership and control over their financial resources.
- User-Friendly Interface: Tornado Cash offers a user-friendly interface, accessible to users with limited technical knowledge. The interface simplifies the process of depositing and withdrawing funds, enabling easy mixing with a few simple steps. This promotes wider adoption and protocol usability.
Disadvantages
- Potential for Illegal Activities: While Tornado Cash aims to enhance privacy and financial freedom, it can be misused for illicit activities like money laundering or funding criminal enterprises. Tornado Cash itself doesn't endorse illegal activities, but its privacy features can be exploited by malicious individuals.
- Regulatory Scrutiny: The popularity of privacy-focused protocols like Tornado Cash has attracted the attention of regulatory bodies globally. Concerns about potential misuse and impact on anti-money laundering (AML) and know-your-customer (KYC) regulations may lead to increased regulatory scrutiny and compliance requirements for Tornado Cash and similar protocols.
- Potential for Loss of Funds: Despite being non-custodial, there is still a risk of fund loss if users don't follow proper procedures. Insecure storage of private keys or mistakes during the mixing process can result in permanent loss of access to funds. Users should exercise caution and follow best practices to minimize this risk.
- Limited Transaction Anonymity: Tornado Cash provides enhanced privacy compared to regular Ethereum transactions, but it doesn't guarantee complete anonymity. Sophisticated analysis techniques and blockchain forensic tools can potentially de-anonymize transactions. While Tornado Cash significantly improves privacy, users should be aware of its limitations and take additional precautions for utmost anonymity.