We built the temple, but forgot who the god is. The god is not the code, not the blockchain, not the token. The god is the developer who writes the code under the threat of a legal system that sees a line of code as a weapon.
On August 8, 2022, the U.S. Treasury’s Office of Foreign Assets Control (OFAC) added Tornado Cash to the Specially Designated Nationals (SDN) list. The mixer, once a tool for privacy-conscious users, became a criminal entity overnight. But the decision did not stop at the smart contract. It reached into the physical world, arresting developer Alexey Pertsev in the Netherlands and freezing the GitHub accounts of contributors who had simply merged pull requests years ago. The message was clear: writing code that enables others to break the law makes you a co-conspirator, even if your code is open source and used by millions of legitimate actors.
This is the central conflict of the post-Tornado era. The open source movement, which has powered the internet since the 1990s, relies on a fundamental assumption: that code is speech, and that the author is not responsible for every downstream use. The Tornado Cash situation challenges that assumption in a way that threatens the entire open source ecosystem, not just crypto.
Context: The Privacy Paradox
Tornado Cash is a non-custodial Ethereum mixer that uses zero-knowledge proofs to break the on-chain link between sender and receiver. It was not designed for money laundering. It was designed to restore the fungibility that Ethereum inherently lacks. Every ETH is traceable, and that traceability is a feature for regulators but a bug for individuals who want to donate to a political cause or buy a coffee without a public ledger.
From a technical perspective, Tornado Cash is immutable. The original smart contracts are deployed and cannot be changed. The developers did not have a kill switch. They did not have a way to stop bad actors from using the protocol. This is by design—decentralization means no one can censor the code. But OFAC decided that the code itself is a sanctionable entity, not just the people who use it maliciously. The legal theory is that the smart contract is a “person” or “entity” that can be sanctioned. This is unprecedented.
Core: The Slippery Slope for Open Source
Based on my experience auditing smart contracts for three startup DAOs in 2020, I can tell you that every developer I know includes a disclaimer in their repository: “Use at your own risk.” That disclaimer is meant to protect them from liability. But after Tornado Cash, it feels like a prayer in a storm. If a developer writes a privacy tool that is later used by a sanctioned entity, the developer could be arrested years later, even if they never interacted with the user.
Let’s apply this to non-crypto open source. The Linux kernel is used by the world’s military systems, financial networks, and nuclear plants. A vulnerability in the kernel could be exploited by a terrorist group. Does that mean Linus Torvalds should be held responsible? The idea is absurd. But the logic of the Tornado Cash case, if extended, would demand that every open source developer vet their users before releasing code. That is impossible.
The technical reality is that mixers are not inherently criminal. The same zero-knowledge proofs that protect privacy in Tornado Cash are now being used in zk-rollups, which are essential for scaling Ethereum to billions of users. The Treasury’s action treats the tool as a weapon, but the tool is also a building block for a more private and scalable internet. The inconsistency is glaring.
Furthermore, the sanctions have a chilling effect on innovation. Developers in the United States now fear contributing to any project that could be interpreted as a “sanctions evasion tool.” This includes not just mixers, but also any protocol that allows users to transact without KYC—which is most of DeFi. The result is that the most talented developers are leaving the space, or moving to jurisdictions that do not enforce US sanctions. This is a loss for everyone.
Contrarian: The Pragmatic Test of Code as Law
But I must pause. The idealist in me wants to defend the absolute freedom of code. The pragmatist sees the reality: the North Korean Lazarus Group, which the US government accuses of stealing over $1 billion in crypto assets, used Tornado Cash to launder proceeds from the Axie Infinity hack. The tool was used to fund weapons programs that kill people. Can we really argue that the code is neutral when it is used for such atrocities?
This is the contrarian angle that the crypto community often avoids. We preach “code is law” but we do not want to admit that code can be used to produce outcomes that are immoral by any standard. The hard truth is that absolute permissiveness is not sustainable in a society that has laws. The Ethereum community cannot have it both ways: we cannot celebrate the permissionless nature of the chain while also demanding that the state protect us from bad actors. The state will always act to protect itself.
But the solution is not to punish the developers. The solution is to build better tools that can be used for good without enabling mass-scale crime. The solution is to create decentralized identity systems that allow privacy without anonymity. The solution is to work with regulators, not against them. This is the path I have advocated for in my workshops on zero-knowledge proofs for AI data privacy. We need to show that privacy and compliance can coexist.
Takeaway: The Ledger Remembers, but the Heart Forgets
The Tornado Cash sanctions have exposed a fundamental tension between the ethos of open source and the reality of state power. The developers who built the mixer did not intend to help criminals. They intended to restore a basic human right in a digital world. But the law does not care about intentions. It cares about outcomes.
We are at a crossroads. We can retreat into a fortress of ideological purity, writing code that the state will eventually shut down. Or we can engage in the messy, collaborative work of building a system that respects both privacy and accountability. Faith in the protocol is not faith in the people. The protocol is just a tool. The people are the ones who must decide how to use it.

I ask myself every day: Is the code worth the risk? And the answer is yes, but only if we are willing to fight for a legal framework that protects the builder. The covenant of open source must be rewritten, not broken.