Tornado Cash
ClassicA fully decentralized protocol for private transactions on Ethereum, BSC(BNBChain), Optimism, Polygon, Avalanche, Arbitrum, Gnosis networks.
Tornado Cash
Nova
Second-generation privacy protocol supporting arbitrary
amounts
and shielded transfers.
Supported Networks
How Tornado Cash works
Deposit
A user generates a random key (note) and deposits Ether or an
ERC20, along with submitting a hash of the note to the Tornado
Cash smart contract.
Wait
After depositing, users should wait some amount of time before
withdrawing to improve their privacy.
Withdraw
A user submits a proof of having the valid key to one of the
notes deposited and the contract transfers Ether or the ERC20 to a
specified recipient.
How Tornado Cash achieves privacy
Tornado Cash improves transaction privacy by breaking the on-chain link between source and destination addresses. It uses a smart contract that accepts ETH deposits that can be withdrawn by a different address. To preserve privacy a relayer can be used to withdraw to an address with no ETH balance. Whenever ETH is withdrawn by the new address, there is no way to link the withdrawal to the deposit, ensuring complete privacy.Status of Tornado Cash decentralization
Tornado Cash protocol is fully decentralized and owned by the community: Tornado Cash initial developers have no control over it and are not running any servers
Tornado Cash smart contracts, circuits, and toolchain are
fully open sourced.
Tornado Cash smart contracts are unstoppable: there are no
admins and no upgradability. Nobody including
Tornado Cash initial developers can change it or shut it
down.
User interface is hosted by the community on IPFS. It is
accessible as long as at least 1 user in the world is hosting it.
Tornado Cash governance and mining smart contracts are
deployed by the community in a decentralized way, there is no
single deployer.
Protocol parameters and token distribution are controlled by the
community via governance.
Trusted setup ceremony for zkSNARKs has 1114 contributions, as
long as at least 1 contribution is honest, the zkSNARK keys are
secure.
Tornado Cash protocol is developed based on awesome open
source research by Zcash team with the help of amazing Ethereum
community.
Our Products
Governance
Tornado Cash is completely decentralized, controlled and
governed by its community. By acquiring TORN tokens, you can
participate by voting on governance proposals and weighing in on
the evolution of the protocol.
Read More
Anonymity Mining
By using Tornado Cash, you also mine TORN, the governance token
of Tornado Cash. The more you use it, the more say you have in
the evolution of the protocol.
Read More
Compliance
Maintaining financial privacy is essential to preserving our
freedoms. Tornado Cash has built-in tools for proving your
transaction history and selectively disclosing Tornado
deposits.
Read More
Trusted Setup Ceremony
Trusted setup ceremony for zkSNARKs has 1114 contributions, as
long as at least 1 contribution is honest, the zkSNARK keys are
secure.
Read More
Initiation
Tornado Cash Governance protocol was deployed by community in a
decentralized way. It's only possible using CREATE2 opcode and
EIP-2470 deployer.
Read More
Relayers Network
Relayers are used to send a withdrawal transaction to an
account with no balance, which promotes further user anonymity.
To become a relayer, one must register on the
Decentralized Relayers Network Registry
and meet minimum requirements.
Read More
Frequently asked questions
Is it possible to compromise the protocol and find out
information about depositors?
No, Tornado Cash is a decentralized protocol based on zero knowledge
proofs. Its smart contracts are immutable, have no admins, and the
proofs are based on strong cryptography. Only the user possessing
the Note is able to link deposit and withdrawal.
Do you collect data?
The Tornado Cash project does not collect any user data. The UI is
hosted in a decentralized way on IPFS and can be accessed using
following link tornado.cash. Users can also run it locally or use
the CLI tool.
Which steps can be taken to ensure the anonymity of participation
in the protocol?
The Tornado Cash protocol solves only on-chain piece of the privacy.
Users also must follow these best practices to achieve privacy.
Has the protocol been audited?
The Tornado Cash protocol was audited by multiple professional audit
companies. Here are the links of the reports:
- Cryptographic overview
- Smart contract audit
- Audit of Zk-SNARK schemes
- Frontend security audit report
- ABDK 1 2 3 audits
- Zeropool audit
- Zeropool audit
What is a relayer?
Relayers are used to withdraw to an account with no ETH balance. The
relayer sends a withdrawal transaction and takes a part of the
deposit as compensation (the protocol itself does not collect any
fees). The relayer cannot change any withdrawal data including
recipient address. The Tornado Cash initial developers do not
control or play any role in relaying transactions, the relay network
is independent and run by community. If you want to run your own
relayer, follow these instructions.
Is the code open-source?
https://github.com/tornadocash
Can I prove my source of funds if I use Tornado Cash?
Yes, you can use the compliance tool to generate a report which
proves your source of funds.
What is TORN contract address?
https://etherscan.io/token/0x77777feddddffc19ff86db637967013e6c6a116c
https://bscscan.com/token/0x1ba8d3c4c219b124d351f603060663bd1bcd9bbf
https://polygonscan.com/token/0x23fe1ee2f536427b7e8ac02fb037a7f867037fe8
https://bscscan.com/token/0x1ba8d3c4c219b124d351f603060663bd1bcd9bbf
https://polygonscan.com/token/0x23fe1ee2f536427b7e8ac02fb037a7f867037fe8
How to stake?
https://docs.tornado.cash/general/staking