You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
xdt1 b91f1a469f
Update tornado-cash-smart-contracts.md
4 months ago
.gitbook/assets GitBook: [#2] No subject 5 months ago
circuits Clean + add FrozenFire's circuits 8 months ago
general Update tornado-cash-smart-contracts.md 4 months ago
medias library 6 months ago
tornado-cash-classic Added Note Account tutorial 4 months ago
tornado-cash-nova Merge pull request #36 from Thegaram/patch-1 4 months ago
README.md GitBook: [#111] edited sections "Intro to TC" and "How to become a Relayer" 9 months ago
SUMMARY.md GitBook: [#2] No subject 5 months ago

README.md

Introduction to Tornado Cash

Tornado Cash is a fully decentralized non-custodial protocol allowing private transactions in the crypto-space.

As a decentralized protocol, Tornado.Cash smart contracts have been implemented within the Ethereum blockchain, making them immutable. They can neither be changed nor tampered with. Therefore, nobody - including the original developers - can modify or shut them down. All governance and mining smart contracts are deployed by the community in a decentralized manner.

As a non-custodial protocol, users keep custody of their cryptocurrencies while operating Tornado.Cash. This means that at each deposit, they are provided with the private key enabling the access to the deposited funds, which gives users complete control over their assets.

How is privacy achieved?

Tornado Cash improves transaction privacy by breaking the on-chain link between source and destination addresses. It uses a smart contract that accepts ETH & other tokens deposits from one address and enables their withdrawal from a different address.

To maximize privacy, several steps are recommended, such as the use of a relayer for gas payments to withdraw funds from an address with no pre-existing balance.

More details are available in Behind the scenes: How does Tornado.Cash work? & Tips to remain anonymous.

Where does Tornado.cash operate?

Since its inception in 2019, Tornado Cash has been operating on the Ethereum blockchain. The protocol has been offering diversified fixed amount pools for six tokens (ETH, DAI, cDAI, USDC, USDT & WBTC) handled by the Ethereum blockchain.

Since June 2021, in addition to the Ethereum blockchain, Tornado Cash smart contracts have also been deployed on other side-chains & blockchains. These deployments enabled the tool to either support new tokens or benefit from Layer-2 advantages, such as faster and cheaper transactions.

As of today, Tornado Cash is operating on:

  • Ethereum Blockchain : ETH (Ethereum), DAI (Dai), cDAI (Compound Dai), USDC (USD Coin), USDT (Tether) & WBTC (Wrapped Bitcoin),
  • Binance Smart Chain: BNB (Binance Coin),
  • Polygon Network: MATIC (Polygon),
  • Gnosis Chain (former xDAI Chain): xDAI (xDai),
  • Avalanche Mainnet: AVAX (Avalanche),
  • Optimism, as a Layer-2 for ETH (Ethereum),
  • Arbitrum One, as a Layer-2 ETH (Ethereum).

Until December 2021, the protocol included an anonymity mining system for some of these tokens, allowing its users to earn a governance token (TORN). Users were able to ultimately earn TORN on the Blockchain network by depositing in the ETH, DAI, cDAI & WBTC pools.

More information on Anonymity mining & Tornado.Cash token is available.

Thanks to the TORN token, Tornado Cash users can actively participate in shaping the protocol. The community has a strong weight regarding the evolution of Tornado Cash and the improvement of its features. Indeed, protocol parameters & token distribution are completely under the community’s control through this governance.

All pools mentioned above can be accessed on tornadocash.eth.link. They operate under the principle of fixed-amount deposits & withdrawals. It means that each token has 2 to 4 different pools, allowing transactions of only 2 to 4 different fixed amounts (e.g. ETH has four different pools, one for each of these amounts: 0.1, 1, 10 & 100 ETH).

Tornado Cash Nova

With the release of Tornado Cash Nova (beta version) on December 2021, an upgraded pool with unique new features has been added to the protocol. Users are no longer constrained by fixed-amount transactions. With the addition of Tornado Cash Nova, they can benefit from the use of an arbitrary amount pool & shielded transfers.

Tornado Cash Nova operates on the Gnosis Chain (former xDai Chain) as a Layer2 to optimize speed and cost. It allows deposits and withdrawals of completely customized amounts in ETH. This pool also enables shielded transactions where users can transfer the custody of their token while remaining in the pool.

Tornado Cash Nova (beta version) can be accessed on nova.tornadocash.eth.link. You can find further informations related to the functioning of Tornado Cash Nova in the dedicated section of our docs.

How does Tornado.Cash run?

Codes behind Tornado.Cash functioning - smart contacts, circuits & toolchain - are fully open-sourced. Working as a DAO (Decentralized Autonomous Organization), Tornado.Cash governance and mining smart contracts are deployed by its community.

The protocol also functions with zk-SNARK, which enables zero-knowledge proofs allowing users to demonstrate possession of information without needing to reveal it. The use of this technology is based on open-source research made by Zcash team with the help of the Ethereum community. To set up zk-SNARK initial keys, Tornado.Cash Trusted Setup Community was launched in May 2020 & accounts for 1114 contributions. This significant number of contributors makes it impossible to compromise the protocol by faking zero-knowledge proofs.

User interface is hosted on IPFS (InterPlanetary File System) by the community, minimizing risks of data deletion. Indeed, the interface will work as long as at least one user is hosting it.

Written & updated by @ayefda