Newsticker

König für einen Tag: Der merkwürdige Angriff auf Tornado Cash

Bild von Kenny Cole via flickr.com. Lizenz: Creative Commons

Die Mixer-DAO Tornado Cash lebt trotz der Sanktionen der US-Regierung weiter. Ein faszinierender Hack drohte, ihr ein Ende zu bereiten – nahm dann aber eine überraschende Wendung.

Eigentlich steht der Smart Contract Tornado Cash unter Sanktionen. Der Mixer, der hilft, Coins auf Ethereum mittels Zero-Knowledge-Proofs zu anonymisieren, wurde auf die Blacklist des US-Finanzministeriums gesetzt; der Entwickler Alexey Pertsev in Amsterdam festgenommen; die Webseite abgeschaltet.

Eigentlich sollte Tornado Cash tot sein. Das war das Ziel dieser Operation. Es sollten weder Ether noch ERC20-Token durch Tornado Cash gewaschen werden. Doch der Mixer lebt fort. Das ist der Unterschied zwischen einem zentralen und einem dezentralen Mixer: Wenn man den Betreiber eines zentralen Mixers verhaftet und den Server abschaltet, ist der Mixer weg. Wenn man den Entwickler eines Smart Contracts verhaftet und dessen Webseite abschaltet – macht der Mixer weiter.

Eine Blockchain wie Ethereum ist blind für Sanktionen und Verhaftungen. Sie macht, Block für Block, genau das, was der Konsens verlangt. Was der Konsens nicht duldet, darf nicht leben, was er unterstützt, kann nicht sterben. Das ist ihr Code. Einen anderen kennt sie nicht.

Und der Konsens von Ethereum ist, dass Tornado Cash Ether mischt. So wurde der Smart Contract geschrieben.

Einbrechende Nutzerzahlen

Zugegeben: Die Sanktionen waren nicht ganz ohne Erfolg. Auf der einen Seite wurde das Standard-Interface zum Smart Contract geschlossen, nämlich die Webseite, was den Zugang erschwert. Auf der anderen Seite schreckt die Aussicht, sein Geld durch den Mixer mit Adressen zu verbinden, die auf einer Blacklist des US-Finanzministeriums stehen.

So brach die Aktivität von Tornado Cash unmittelbar nach den Sanktionen im August 2022 drastisch ein, wie ein Dashboard auf Dune Analytics zeigt: Ein- und Auszahlungen, Ether im Pool, Anzahl Unique User je Woche – alles sinkt, um 40-80 Prozent. Aber nach dem Einbruch haben sich alle Werte stabilisiert und wachsen langsam wieder.

 

Wenn das eine Interface weg ist, öffnet sich ein anderes, und wenn der eine Node einen Smart Contract blockiert, richtet man seine Wallet eben auf einen anderen Aus. Ein Tutorial im Forum von Tornado Cash zeigt, wie die Community die Blockaden umgeht.

Es gibt kaum ein besseres Beispiel dafür, wie eine Blockchain staatlichen Sanktionen widersteht, als Tornado Cash – aber doch von ihr betroffen wird.

Die Metamorphose eines Smart Contracts

In den vergangenen Wochen kam der Mixer allerdings erneut in Gefahr. Wenn man ihn nicht gegen den Konsens besiegen kann, dann vielleicht mit dem Konsens.

Am 20. Mai griff ein Hacker den Smart Contract an. Besser gesagt: die DAO hinter Tornado Cash, die Dezentrale Autonome Organisation. In dieser stimmen die Besitzer der TORN-Token darüber ab, wie Tornado Cash weiterentwickelt oder geändert wird.

Das Folgende geschah: Ein Besitzer von 10.000 TORN-Token – zu diesem Zeitpunkt kostete ein Token knapp sieben Dollar — brachte einen Vorschlag für eine Änderung am Smart Contract ein. Das ist die ganz normale Prozedur der DAO. Er behauptete, das jemand die Betreiber der Router (ein wichtiger Mechanismus von Tornado) um ihre angemessenen Erträge betrügen würde. Das machte es für diese natürlich attraktiv, dem Vorschlag wohlgesonnen zu sein.

Ein Stück des Codes, das auf den ersten Blick vollkommen unauffällig war, enthielt eine Schadfunktion. Der Angriff ist extrem interessant. Es handelt sich um einen „metamorphischen Contract„.

Ein metamorphorischer Smart Contract ändert sich, nachdem er aktiviert wurde. Technisch funktioniert es grob so: Mit dem „create2“ opcode kann man in einem Smart Contract auf einen anderen Smart Contract verweisen, den es noch gar nicht gibt. Wenn man später den Smart Contract zerstört – es gibt eine Selbstzerstörungsfunktion, oft als eine Art Notfallschalter – wird er durch den neuen, mittlerweile veröffentlichten Smart Contract ersetzt. So dient der anfängliche Smart Contract nur als Larve, aus der ein Schmetterling entschlüpft – oder, wie in diesem Fall, ein ekelhafter Nachtfalter.

Nach seiner Metamorphose schrieb der von der Tornado-DAO akzeptierte Smart Contract dem Angreifer 1,2 Millionen Stimmen zu. Man kann sich das wie einen Putsch vorstellen, so, als würde jemand ein Gesetz ins Parlament bringen, das nach der Verabschiedung ihn plötzlich zum Alleinherrscher machte.

Die Tornado-DAO hatte nur 700.000 legitime Stimmen. Der Hacker konnte also alles machen, was er wollte. Ihm war gelungen, woran die Regierung des mächtigsten Landes der Erde gescheitert war.

„Es sieht aus wie das Ende von Tornado Cash,“ kommentiert Dr. Nick auf Twitter. Aber war es das wirklich? Die Geschichte biegt an der Stelle in eine überraschende Richtung ab.

König für einen Tag

Der Hacker hatte sich mit seinem metamorphischen Angriff also zum Alleinherrscher der Tornado-DAO gemacht. Dies erlaubte es ihm, alle Token im Governance-Contract abzuziehen, den Router zu verbauen und andere Angriffe auszuführen. Es erlaubte ihm aber nicht, die individuellen Pools zu leeren, abzuschalten oder zu zensieren.

Der Angriff konnte die DAO zerstören. Er konnte ihre Reserven stehlen. Aber er konnte niemanden davon abhalten, Geld in die Pools einzuzahlen und abzuheben. Tornado Cash funktionierte auch nach diesem Angriff wie gewohnt weiter.

Einen Tag später brachte der neue Diktator seinen ersten Vorschlag ein. Dieser überraschte jeden, der das Drama beobachtete: Er wickelte den Schaden ab, den er selbst angerichtet hatte, und stellte die normale Regierung der DAO wieder her. Er setzte das Guthaben an Stimmen, das er sich selbst zugeschrieben hatte, wieder auf 0. Er entmachtete sich selbst.

Etwas später folgte die Abstimmung. Dank der überwältigenden Stimmenmehrheit konnte der neue Diktator seine Absetzung durchsetzen. Die Tornado-DAO kehrte, nach einer kurzen, aber wilden Episode, zurück zu ihrem Normalzustand. Der Hacker hatte der DAO gezeigt, wie gefährlich manche Smart Contracts sein können, vor allem wenn sie eine Selbstzerstörungsfunktion enthalten, hatte sich für einen Tag zum König ernannt und dann abgedankt.

Der Hacker zog die 10.000 TORN-Token aus dem Governance-Vertrag ab, wechselte sie gegen Ether, und privatisierte diese dann – durch, natürlich, Tornado Cash selbst.

War es Pertsev selbst?

In der Szene registrierte man diese überraschende Wendung erleichtert. Manche rätselten, wer der gnädige Angreifer war. Die Regierung wohl nicht, denn sie würde Tornado Cash zerstören oder schädigen, anstatt es bei einer Warnung zu belassen, keine Codeänderungen zu akzeptieren, die eine Selbstzerstörungsfunktion enthalten.

Also ein Hacker? Ein Hacker würde Tornado Cash aus Eigeninteresse erhalten und sogar stärken wollen, da er damit seine Beute waschen kann. Aber würde ein Hacker nicht, wenn er schon mal drin ist, mehr als nur 10.000 TORN stehlen? Er hätte mindestens zehn Mal so viel nehmen können, ohne die DAO fundamental zu beschädigen.

Eine plausible Vermutung wäre es, dass es ein Insider war. Jemand aus dem Tornado Cash Team, vielleicht jemand aus der DAO selbst. Vielleicht auch Alexey Pertsev selbst. Der Zeitpunkt wäre passend – er wurde Ende April gegen Kaution aus dem Gefängnis entlassen, um sich in Freiheit, aber unter Überwachung auf seinen Prozess vorzubereiten.

Aber vermutlich werden wir das niemals wissen. Der König der DAO, der nach einem Tag abgedankt hat, bleibt vorerst unbekannt.

Über Christoph Bergmann (2802 Artikel)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder ---

Kommentar verfassen

Entdecke mehr von BitcoinBlog.de - das Blog für Bitcoin und andere virtuelle Währungen

Jetzt abonnieren, um weiterzulesen und auf das gesamte Archiv zuzugreifen.

Weiterlesen