Tornado Cash is a decentralized cryptocurrency tumbler. It is implemented as an Ethereum smart contract and can be used to mix cryptocurrency UTXO’s, unlinking the on-chain relationship between transaction inputs and outputs. After Tornado Cash’s algorithm is run, the inputs to anyone’s transaction can be routed to any other random user.
The aim of this article is to present a basic overview of how Tornado Cash works. See the references section for more technically detailed articles.
Basically, the aim of any cryptocurrency tumbler, whether implemented on an Ethereum smart contract, a Bitcoin L2 service, or by any other means, is to break the blockchain link between inputs and outputs(UTXO’s). A crypto transaction is the object which establishes this link. Therefore, Tornado Cash works by inserting a cryptographic abstraction where a normal TX would be. This abstraction is implemented using a special construct known as a ZKP.
The basic building block of most anonymous cryptocurrency systems is the Zero Knowledge Proof (ZKP).
In a ZKP-based system, you prove that you know something without revealing the exact contents of the secret.
For example, if one wished to prove they knew the secret was the number 1234, then they could hash the string “1234” into a SHA256 representation, which is irreversible as far as anyone knows, and the receiver would then hash their own 1234 string and compare them. If they match, then the sender has proven they knew the secret was 1234 without ever transmitting it over the network.
In Tornado Cash, you deposit some arbitrary amount into a smart contract on the Ethereum blockchain. You are then provided a secret code instead of a new address. This is where the magic happens!
Instead of building an on-chain link between your address and the destination address, a link is established between your source address and the provided secret code, which is not an on-chain UTXO.
You later use this secret code to withdraw your deposited amount. In this step you may provide a totally disconnected address, e.g. on a completely new wallet, thus breaking the on-chain record that would be established had you transferred directly.
Due to Tornado Cash’s current legal situation, we’ve decided to remove this section until further notice.
Although Tornado Cash alternatives can easily be found via social media and general web search, we strongly discourage its use until all legal aspects have been clarified.
One important aspect to keep in mind is, you may get your source and target addresses blocked by crypto exchanges, especially those located in the West. This may happen even if your usage of Tornado Cash was absolutely legitimate and legal (such as not wanting your employer to know you donated to a certain cause, for example).
For now we apologize for the inconvenience and we’ll refrain from providing a list of Tornado Cash alternatives until everything is sorted out.
In August 2022, the US Treasury’s OFAC (Office of Foreign Assets Control) sanctioned Tornado Cash, accusing them of money laundering for rogue foreign governments, specifically mentioning North Korea.
Several legitimate uses for Tornado Cash have since been presented by well known crypto pioneers and influencers. For instance, Vitalik Buterin, father of Ethereum, mentioned a donation he made to a legitimate cause he didn’t want exposed:
I’ll out myself as someone who has used TC to donate to this exact cause.— vitalik.eth (@VitalikButerin) August 9, 2022
There has been generalized outcry from the crypto community about the sanctions, including legitimate questions such as whether miners will start rejecting sanctioned addresses, which would defeat the purpose of decentralized finance.
On August 09, 2022, the Tornado.Cash website appeared to be down. Its DNS servers no longer responded with a valid address:
At the time of this writing, Tornado Cash’s @tornadocash GitHub account had also been taken down.
One well known Tornado Cash relay website currently presents a message telling visitors that all known RPC endpoints have been taken down:
This article presented for technical, historical and general informational purposes only. Tornado Cash is a US-sanctioned service, therefore probably illegal to use anywhere in the West. We’re not lawyers, so please use your own discretion or consult with a legal professional should you want/need to use a tumbler for legit purposes.
US Treasury Sanctions Press Release