Tornado Cash and collateral damage
On August 8, the US government sanctioned the Tornado Cash cryptocurrency mixer for money laundering. The sanction means that no US citizen or company can interact with Tornado Cash in any way, all assets of the organization are to be reported so that they can be seized, and more. But at the core of Tornado Cash is a chunk of open-source code for "smart contracts" that run in the Ethereum blockchain; that code was "seized" as well. There are some disturbing implications here for our communities.
Mixing
Tornado Cash is (or was) a service for mixing cryptocurrency in order to provide privacy protection for the owners. While transactions on cryptocurrency blockchains are pseudonymous, the parties are only identified by public keys, there are ways to trace the transactions and to associate individuals with their holdings. Early on, one of the attractions of Bitcoin was its anonymity, but that turned out to be illusory. Cryptocurrency mixers provide a means to restore some level of anonymity to the system.
Mixers (or "tumblers") work by collecting up a bunch of deposits, which get coalesced into larger chunks over a random period of time, then doling out portions of that chunk as withdrawals at a later time. Naturally, a percentage of the deposits (1-3% normally) typically stay with the service as profit. Because the deposits and withdrawals are not synchronized in time, users can break the link between a particular chunk of cryptocurrency and their holdings. Privacy-conscious users presumably change the patterns of their withdrawals by using differing amounts than those of the deposits to further obfuscate any links.
Someone who wants to donate to a cause that might be unpopular with some nation-states (say, money for Ukraine) might use a mixer to avoid problems from a donation being traced back to them. Of course, there are others who want privacy for less savory reasons: criminals of various sorts. It seems clear that mixers are used for money laundering, but many tools, perhaps all, can be used for both good and ill. Typically, however, tools are not prosecuted (or sanctioned), people are.
There is a point at which any anonymity or pseudonymity generally must be shed due to existing anti-money-laundering protocols. In particular, when someone wants to turn their cryptocurrency into, say, US dollars (or any other real currency), they have to work with a financial organization that is subject to the "know your customer" (KYC) guidelines/rules. The financial organization will gather identity information from its customers establishing a link between a given address and a person. That is one of the prime reasons a criminal might want to mix their ill-gotten gains before a withdrawal, but there are perfectly legitimate reasons for others to do so.
We do not normally post our bank balances to the world at large, nor our credit-card purchase history. But if a link can be made between a particular address/key and an individual, that's effectively what would be available—stored immutably on the blockchain. A data breach at a KYC-following organization could "out" all of its customers, their holdings, and their transactions. It does not take a criminal mind to want to avoid that kind of disclosure.
What is the legal status of ten units of cryptocurrency obtained legally that is mixed with one unit, say, from some crime source? We deposit our money into banks that undoubtedly take in some deposits from dubious sources as well, but the presence of the "bad" money does not normally taint withdrawals made from them. Perhaps the goal is to force these mixers to follow KYC, but the nature of the Tornado Cash transaction means that there really is no "custodian" to do so.
The smart contracts that underlie Tornado Cash work in such a way that the participants and the smart-contract code share the custodial duties at some level. The contracts are programs that run on the blockchain to ensure (assuming no bugs) that all of the various parties perform the actions required of them. The code to make that all happen used to be available in the GitHub repository for Tornado Cash, but the repository disappeared on August 8 as well.
Beyond that, these smart contracts are still floating around the Ethereum blockchain and nothing—other than concern for being tainted by association with Tornado Cash perhaps—is stopping anyone from using them. In fact, someone would appear to be trolling the authorities by sending small amounts from prohibited Tornado Cash addresses to prominent people; those transactions cannot be declined, but receiving such a "gift" is technically in violation of the sanctions.
Reactions
Given that code has been found to be protected free speech, at least in the US, causing its removal from GitHub seems like a clear violation of the constitution. Cryptographer Matthew Green noted that, but also pointed out the irony of removing code from a distributed, decentralized revision-control system like Git. One suspects there are thousands of copies of the Git repository available in various places and that any attempt to "disappear" the code further will only make it spread.
The Electronic Frontier Foundation (EFF) is also concerned
about this action, noting that the list
of sanctioned entities has an open-source project (i.e. Tornado Cash)
on it. It is worth noting that no individuals are on that list, which is
mostly just a long list of cryptocurrency addresses, along with three other
entries:
"TORNADO CASH (a.k.a. TORNADO CASH CLASSIC; a.k.a. TORNADO CASH NOVA);
Website tornado.cash; [...] Organization Established Date 2019; [...]
"
However, GitHub went further than just taking down the repository for Tornado Cash; it also suspended the accounts of founders and contributors to the project. Beyond that, authorities in the Netherlands arrested one of the founders on August 12. Various other organizations have completely distanced themselves from Tornado Cash as well, including other cryptocurrency firms freezing assets associated with Tornado Cash. Meanwhile, anyone subject to US laws who has cryptocurrency deposited into Tornado Cash contracts cannot (legally) access it. Given the nature of the smart contracts, and the tenacity of the US government, anyone in that position should probably plan to simply walk away from those assets—ill-gained or no.
GitHub may well have had no choice but to remove the Tornado Cash repository, though the futility of doing so is fairly obvious. The code is effectively just collateral damage. But it would not be surprising to learn that repositories with the full history of the project, albeit with different hash values, already exists elsewhere on GitHub itself. Creating a mirror-image repository from a starting point one byte different than the original will create an entirely different Git "blockchain", after all; evading checks for identical object hashes is similarly trivial.
Suspending the contributor accounts is harder to understand, however. As noted, no individuals are on the sanctions list so there is no obvious reason (other than taint) to suspend them. It also seems likely that those contributors had other projects on GitHub; now those projects are unavailable, which may have a ripple effect throughout our communities. Those who are using GitHub for their projects may want to carefully consider what the company might do to their repositories—without any real evidence and no charges—down the road. GitHub is certainly not required to host anything or anyone, but these kinds of actions seem sure to give developers pause about using its services.
The press release from the US paints a typically bleak picture of what Tornado Cash has "done", though "facilitated" seems far more accurate. There are several notorious cryptocurrency thefts mentioned, including one made by a rogue state (North Korea), where the proceeds were laundered via Tornado Cash. Some $7-billion dollars worth of cryptocurrency was laundered that way, the release said, though that seems to lump any legitimate uses in with the criminals since that is the figure widely used for the total of all Tornado Cash transactions.
There is no doubt that criminals should be caught, convicted, and punished for these and other crimes, but it is easy to downplay the collateral damage of this kind of action by trying to paint it as mostly affecting criminals. It is all part of the same playbook that attacks strong encryption and tools like Tor because they can also be used by terrorists, child sexual abuse offenders, and the like. It is true that those tools can be used to facilitate such activities, but so can a wide variety of other things. The tools are not at fault.
Here at LWN, we generally do not pay much attention to the machinations of the cryptocurrency world—all of that tends to be far outside of our remit. There is a fair amount of distasteful hype, snake oil, and scams that go with that territory as well. But this event is not about any of that stuff, really; this comes down to a question of fundamental freedoms and human rights. As with the much-maligned asset forfeiture scheme, governments are taking things away, without due process, and forcing those wrongly affected to demonstrate how they were wronged—often at great expense.
This kind of event could also be something of a bellwether test for the "freedoms" and "rights" of code. The Tornado Cash code exists, it is running on an infrastructure that cannot (easily) be shut down; meanwhile, it can be used for good or not. To what lengths will humans go to try to make the bad things stop happening? Perhaps HAL 9000 is watching—with popcorn.
