Tornado: Bringing Covert Transactions to Ethereum
Editor's Note: This article comes fromEthereum enthusiasts (ID: ethfans)Editor's Note: This article comes from
Ethereum enthusiasts (ID: ethfans)
Ethereum enthusiasts (ID: ethfans)
, Author: Tornado Cash, translation & proofreading: Zeng Mi & A Jian, reprinted by Odaily with authorization.

However, sometimes you don't want to disclose your transaction history and balance, right? If you want to achieve anonymity and privacy of transactions, is there any good way?

People have been trying to develop covert transaction mechanisms on Ethereum for years. Some people's thinking is to cover up the flow of funds, such as using a centralized exchange or hosted currency mixing service. However, doing so necessarily introduces a high degree of counterparty and surveillance risk. As a result, these tools were never comparable to other privacy-focused cryptocurrencies such as Zcash. In order to achieve privacy protection, Zcash uses various cryptographic methods including zero-knowledge proof.
Today, we are very happy to announce that it is also possible to realize true hidden transactions on Ethereum!
first level title
The main idea is to break the link between the payee and the destination address of the funds on the chain. You can deposit ether into the Tornado.cash smart contract and then withdraw using a different address. No matter when you withdraw ETH to a new address, no one else can link the deposit address with the withdrawal address, thus ensuring absolute privacy.
deposit
In this approach, Tornado.cash acts as a proxy, using zkSnark proofs to ensure 100% anonymity of transactions.
Even better, it's 100% non-custodial, which means you have full control over your deposits, and it's time to say goodbye to centralized services that often go out of business.
When depositing, users need to generate a secret (secret), and send its hash value (also called "commitment") to Tornado's smart contract along with the amount of the deposit. After a contract receives a deposit, it also adds its commitment to the contract's deposit list.
In the future, when the user wants to withdraw money, TA needs to provide a proof to the contract that TA has a secret that can correspond to the unspent commitment in the deposit list in the smart contract. Thanks to the blessing of zkSnark technology, we can complete the matching without disclosing which fund this secret is related to. The Tornado smart contract will check this proof and then transfer the deposit amount to the specified withdrawal address. For outside observers, there is no way of knowing which deposit the withdrawal came from.

first level title
Anonymity Set
The size of the anonymity set is essentially a measure of anonymity. It shows how many deposits are still waiting to be withdrawn. In other words, how many mixed deposits the ether you want to withdraw may come from
secondary title Which came first, the chicken or the egg?
As you may have noticed, you have two options when withdrawing funds:
Using a wallet (Metamask, Trustwallet, etc.)
through a repeater
How do you get some ether while keeping the address anonymous?
Because usually the way we get ether is to buy it from other people (whether using an exchange or not), but (which would make this address associated with other people's addresses) we just want to avoid exposing information, not ?

- That's why we're offering a second option. You only need to generate a new Ethereum address, and the rest can be safely handed over to zkSnark proofs and relayers. This process will charge you some ether, which is only used to pay the transaction fee of the Ethereum network.
first level title
Anonymous Tips
Whether you use a relayer or not, please remember to maintain normal online anonymity, such as using VPN, proxy, Tor, etc. to hide the IP address of your activities. Since you're using a browser, it's also useful to use anonymous tabs.
Make sure you clear the dApp's cookies before using the new address, because when the dApp sees that the old and new addresses are using the same cookies, it will know that both addresses belong to the same owner.


