Tornado.Cash - Privacy Protocol on Ethereum using zk-SNARKs
Tornado.Cash is a privacy protocol that ensures the anonymity and confidentiality of transactions. It operates on various networks, including Ethereum, Binance Smart Chain, and Polygon. By utilizing cryptographic techniques called zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge), Tornado.Cash allows users to protect their transaction privacy without revealing sensitive information.
Tornado.Cash safeguards personal autonomy by granting individuals control over their financial data. With Tornado.Cash, users have the power to transact without the fear of being monitored or having their transaction history scrutinized. It empowers users with the freedom to conduct transactions without unwanted surveillance, enhancing their sense of self-determination and choice.
When utilizing Tornado.Cash, transactions undergo a process called Coin Mixing or "tumbling." During this process, many transactions are mixed together, making it challenging to trace the original source of funds. This ensures that the transaction history remains obfuscated and protects user privacy.
With its focus on privacy and anonymity, Tornado.Cash provides individuals with a secure and confidential means of conducting transactions on various blockchain networks, safeguarding their financial information from prying eyes.
Which Tokens does Tornado.Cash Support?
Tornado.Cash supports a range of popular cryptocurrencies across several networks, offering a broad array of transaction possibilities for users seeking privacy and anonymity.
On the Ethereum network, Tornado.Cash supports Ethereum (ETH), the network's native cryptocurrency. Alongside ETH, it also supports several ERC-20 tokens. These include DAI (Dai), a stablecoin pegged to the US dollar, and cDAI (Compound Dai), a token representing a claim on DAI deposits in the Compound protocol. USD Coin (USDC) and Tether (USDT), both of which are stablecoins tied to the value of the US dollar, are also supported. Additionally, Tornado.Cash accepts Wrapped Bitcoin (WBTC), an ERC-20 token that represents Bitcoin on the Ethereum blockchain, offering the benefits of both Bitcoin and Ethereum ecosystems.
Tornado.Cash's support extends beyond Ethereum. On Binance Smart Chain (BSC), Tornado.Cash supports Binance Coin (BNB), the native coin of the BSC. Finally, on the Polygon network, Tornado.Cash supports Polygon (MATIC), allowing users to engage in private transactions on this growing Layer 2 solution.
How to Use Tornado.Cash?
- 1. Deposit:Start by depositing your cryptocurrency into the Tornado.Cash smart contract. Make sure you select the correct pool matching the amount you want to deposit.
- 2. Save Your Note:After depositing, you'll receive a unique secret note or 'commitment'. This note is crucial, as it's the only proof of your deposit. Store this note securely; if lost, you won't be able to retrieve your deposit.
- 3. Wait:For optimal privacy, wait some time before proceeding to the withdrawal step. This ensures your transaction is sufficiently mixed with others, making it harder to trace.
- 4. Prepare a New Address:When you're ready to withdraw, prepare a fresh Ethereum address. This address shouldn't be linked to your identity or your deposit address to maintain privacy.
- 5. Prove Ownership and Withdraw:Finally, use the zk-SNARKs protocol provided by Tornado.Cash to prove ownership of a deposit note without revealing which one it is. Submit this proof, along with your new address, to the smart contract. The contract will verify your proof, and if everything checks out, it'll transfer the cryptocurrency to your new address.
Remember, Tornado.Cash is a powerful tool for ensuring privacy in your transactions, but it's essential to use it correctly. Always store your secret note safely, and use a new, unlinked address when withdrawing.
Governance of Tornado.Cash
Tornado.Cash is governed by a decentralized autonomous organization, also known as a DAO. This means that its operation and future direction are determined collectively by its community of token holders, rather than a single centralized authority.
1. TORN Token:The primary instrument of governance in Tornado.Cash is the TORN token. Holding TORN gives users voting rights on proposals related to the platform's operation. The more TORN a user holds, the more voting power they have.
2. Submitting Proposals:Any TORN token holder can submit a proposal for changes or improvements to the Tornado.Cash platform. This could involve adjusting parameters, implementing new features, or any other modifications that could impact the system.
3. Voting on Proposals:Once a proposal is submitted, it is put up for a vote. All TORN holders can vote on these proposals. The weight of their vote depends on the number of TORN tokens they hold.
4. Proposal Execution:If a proposal receives majority support in the voting process, it is implemented in the Tornado.Cash system. The changes are enacted via smart contracts, ensuring that the process is transparent and auditable.
This governance model ensures that Tornado.Cash evolves according to the needs and wishes of its user community, maintaining the decentralized ethos of blockchain technology.
How to Take part in Tornado.Cash Governance
In order to engage in Tornado.Cash's decision-making process, users are required to lock their tokens within the governance contract. During a voting period or proposal creation, the tokens stay locked and cannot be retrieved until 8.25 days after the proposal's creation. There's an additional feature where locked tokens can be delegated to another address.
Creating a proposal requires the user to hold at least 1,000 TORN tokens. Importantly, all proposals must exist as smart contracts with auditable, verified code. They are executed from the governance contract using a 'delegatecall' function. This systematic approach simplifies the auditing and testing of any proposed changes to the governance, ensuring security and transparency within the Tornado.Cash ecosystem. This setup demonstrates how Tornado.Cash integrates decentralization and user participation to enhance the robustness of its governance system.
What are the roles of Tornado.Cash Relayers?
Within the Tornado.Cash protocol, the concept of a "relayer" serves a critical role in ensuring seamless transaction execution, particularly for accounts that do not hold any Ethereum (ETH,BNB,MATIC) balance. A relayer is essentially an entity - either a user or a service - that helps other users to facilitate their transactions.
Understandably, you might wonder why someone would need to withdraw to an account with no ETH balance. This need arises because Ethereum transactions require gas, a fee paid in ETH to incentivize miners to include the transaction in a block. If a user wants to preserve their privacy by withdrawing to a fresh Ethereum address, this new address will not have any ETH balance initially to pay for the gas fees.
This is where a relayer comes into the picture. When a user wants to withdraw funds from Tornado.Cash to a fresh address with no ETH, they can't pay the gas fee. The relayer pays this fee on behalf of the user, facilitating the transaction. In return, the relayer gets compensated from the withdrawal amount.
Here's how it works in a bit more detail:
- 1. The user generates a proof for withdrawal and sends this to the relayer along with details of their fresh Ethereum address.
- 2. The relayer, upon receiving this information, interacts with the Tornado.Cash smart contract to facilitate the withdrawal.
- 3. The relayer pays the necessary gas fee for the transaction in ETH.
- 4. Upon successful transaction completion, the Tornado.Cash contract sends the withdrawal amount to the fresh address, but it deducts a fee to compensate the relayer.
- 5. Finally, the relayer receives their compensation directly from the smart contract.
The relayer mechanism ensures that Tornado.Cash can be used even by those who want to withdraw to a new Ethereum account without any ETH balance, thus significantly enhancing the privacy capabilities of the platform.
What is Tornado Cash Compliance Tool?
Tornado Cash has taken proactive steps to address compliance concerns regarding anti-money laundering (AML) and know-your-customer (KYC) regulations. The introduction of a compliance tool demonstrates their commitment to ensuring regulatory compliance while maintaining the privacy and anonymity of users.
The Tornado Cash compliance tool offers a practical solution for users to verify the source of their funds. By generating a detailed report, users can demonstrate compliance with AML and KYC regulations. This report provides a comprehensive overview of all transactions associated with a specific address, including timestamps and transaction amounts. It also includes a proof of the source of funds, affirming that the funds were obtained legally.
What sets the Tornado Cash compliance tool apart is its ability to provide these compliance assurances without compromising user privacy. The tool focuses solely on transactions associated with a specific address, safeguarding the anonymity of users. Importantly, the compliance report only covers transactions conducted on the Ethereum blockchain and does not disclose any information about transactions made on Tornado Cash itself.
This innovative approach strikes a delicate balance between regulatory requirements and user privacy. Tornado Cash recognizes the importance of adhering to AML and KYC regulations to combat illicit activities while respecting users' rights to financial privacy.
How Tornado Cash Interface Remains Decentralyzed using IPFS
IPFS (InterPlanetary File System) is a peer-to-peer protocol that facilitates the decentralized sharing of files and data across a network of computers. Unlike traditional web hosting on centralized servers, IPFS distributes data across multiple nodes, making it more resistant to censorship and ensuring increased reliability and availability.
Tornado Cash, being committed to decentralization and user accessibility, hosts its user interface (UI) on IPFS. This means that the Tornado Cash website and UI are not reliant on a single central server but are instead accessible through a distributed network of computers. By utilizing IPFS, Tornado Cash ensures that the UI remains available even if certain nodes or servers go offline, enhancing the protocol's reliability and resilience.
Accessing the Tornado Cash UI via IPFS offers several advantages. It circumvents issues of centralized control or shutdown. Since the UI is distributed across multiple nodes, it becomes difficult for any single entity or authority to control or restrict access to the protocol.
Hosting the UI on IPFS allows users in regions with internet restrictions or censorship to access Tornado Cash. By utilizing local copies of the UI hosted on IPFS nodes within their region, users can bypass restrictions and enjoy the benefits of privacy-enhanced transactions.
IPFS provides a decentralized and resilient infrastructure for hosting the Tornado Cash UI. By leveraging IPFS, Tornado Cash ensures availability, accessibility, and resistance to censorship, aligning with its commitment to decentralization and providing users with a reliable and inclusive platform for private transactions.