Technical analysis & news on Blockchain & Cryptocurrencies | Coincronica
Dienstleistungen Nachrichten

Zwei Smart Contracts wirken zusammen und produzieren eine Schwäche, durch die ein Angreifer rund 26 Millionen Dollar erbeutet

Erneut sorgt ein DeFi-Hack für Unruhe. Ein Hacker konnte von den Plattformen UniSwap und Lendf.me Token im Wert von gut 26 Millionen Dollar stehlen. Der Grund war ein unerwartetes Zusammenspiel zweiter Smart Contracts. Der Vorfall und seine Folgen zeigen, dass die dezentralen Finanzen auf Ethereum gar nicht mal so anders sind, als das, was wir bereits kennen – und dass das womöglich eine gute Nachricht ist.

Uniswap und Lendf.me wurden gehackt. Die beiden Plattformen zählen zu den Apps für dezentralisierte Finanzen (DeFi). Mit insgesamt etwas mehr als 26 Millionen Dollar ist der Schaden des Hacks verhältnismäßig moderat. Wesentlich gravierender ist allerdings, was der Hack über die DeFis im Allgemeinen aussagt. Man könnte ihn eine Götterdämmerung nennen.

Was ist passiert?

Wie so oft ist es ausgesprochen kompliziert, zu erklären, was genau passiert ist. Eventuell deutet dies auf eines der größten Probleme der DeFis hin: Keiner versteht, was die Wallets unter der Benutzeroberfläche machen.

Beginnen wir mit Uniswap. Das ist eine Art dezentrale Börse. User können Smart Contracts auf der Ethereum-Blockchain benutzen, um Ether und alle Arten von Token auf Ethereum zu tauschen. Zugleich können User Liquidität bereitstellen, indem sie Ether oder Token in einem „Liquidity Pool“ hinterlegen. Dafür erhalten sie dann einen Anteil an den Handelsgebühren. Auf diese Weise wird Uniswap zu einer DAO (dezentrale autonome Organisation), über die man Token wechseln kann. Es ist ein ziemlich cleveres Konzept, das Uniswap im Ranking der DeFi mit mehr als 40 Millionen Dollar in den Smart Contracts auf den fünften Platz gebracht hat.

Am Vormittag des 18. Aprils nutzte ein Hacker einen Exploit im Smart Contract von Uniswap aus, der vor allem die imBTC-Token betraf. Das sind auf Bitcoin notierte Token auf der Ethereum-Blockchain. Nachdem Tokenlon, der Herausgeber der imBTC-Token, über den Hack informiert wurde, setzte er den Transfer der imBTC-Token kurzzeitig aus. Nach einem Austausch mit Partnern wie Lendf.me aktivierte Tokenlon den Transfer am frühen Abend jedoch wieder.

Allerdings schlug der Hacker am Vormittag des folgenden Tages wieder zu. Diesmal informierte Lendf.me den Token-Herausgeber über einen sehr ähnlichen Angriff. Lendf.me ist ein „dezentraler Geldmarkt“: User können Stablecoins leihen und verleihen und dafür Zinsen bezahlen oder erhalten. Lendf.me ist Teil des dForce-Ökosystems, da die gesamte Bandbreite der üblichen DeFi-Anwendungen abdeckt: Ein Stablecoin, ein eigenes Token, eine dezentrale Plattform für den Tausch von Token, Derivate und eben auch „Lending“ mit Lendfm.me.

Während UniSwap noch glimpflich davon kam, verlief der Hack bei Lendf.me schwer. Der Hacker konnte Assets im Wert von rund 25 Millionen Dollar aus dem Smart Contract herausziehen. Der Hacker hat dabei imBTC von anderen Usern abgezogen und diese über Lendf.me benutzt, um sich andere Token zu leihen. Dabei hat er sich ein Portfolio aufgebaut, das zum Teil aus tokenisierten Ether sowie einem bunten Korb von Dollar-basierten Stablecoins besteht. Einen Teil der Token hat er dann auf Compound – einer weiteren Lending-DeFi – verliehen oder als Kollateral genutzt, um sich andere Token zu leihen, einen anderen hat er über dezentrale Börsen gegen Token wie Maker, BAT, KNC oder Link getauscht. Offenbar glaubt der Hacker an DeFi, obwohl es ihm gelungen ist, das System zu hacken.

Lendf.me hat die Webseite, über die die Dapp lief, abgeschaltet. Tokenlon hat erneut den Transfer der imBTC-Token ausgesetzt. Mindao Yang von dForce zeigt sich persönlich betroffen – auch Token von ihm wurden gestohlen – und bekennt: „Dieser Angriff war mein Versagen. Ich habe ihn zwar nicht ausgeführt, aber ich hätte ihn erahnen und Vorkehrungen dagegen treffen müssen.“ Er werde alles tun, was er könne, um die Opfer zu entschädigen. dForce ist bereit, mit dem Angreifer zu verhandeln, und hat bereits die Polizei in verschiedenen Ländern, die Herausgeber von Token sowie Börsen informiert, um die gestohlenen Token auf eine Blacklist zu setzen, so dass es für den Hacker schwierig wird, sie gegen andere Krypto- und Fiatwährungen zu tauschen.

Aber warum ist das passiert?

Die wirklich schwierige Frage ist nun: Warum konnte das passieren? Für jeden, der mit DeFis arbeitet, dürfte dies entscheidend sein. Denn nur wenn man weiß, weshalb etwas geschieht, hat man eine Chance, zu verhindern, dass es erneut geschieht.

Eine Ursache liegt in jedem Fall im imBTC-Token. Schließlich spielte dieses in beiden Hacks eine zentrale Rolle. imBTC ist ein ERC777-Token. Das ist ein Nachfolger des weit verbreiteten ERC20-Tokens, das einige neue Funktionen einführt. Das ERC777-Token-Protokoll gilt als sicher. Dennoch gab es offenbar einen Hack.

Das Problem ist, dass das ERC777-Token nur „an sich“ sicher ist. Wenn man es falsch anwendet, kann es zu Problemen kommen. Und sowohl Uniswap als auch Lendf.me haben offenbar in der Implementierung von ERC777 einen kleinen Fehler gemacht. Eine Github-Seite beschreibt diesen Exploit auf eine sehr technische Weise: Wenn das Token durch einen anderen Smart Contract gesendet wird, wird dieser Smart Contract aufgerufen, nachdem er Ethereum erhalten hat, aber noch bevor er sein Token-Guthaben geändert hat. Das klingt nach einem nebensächlichen Detail, ermöglicht aber den sogenannten „Reentry-Angriff„: Jemand kann bei einem Tausch von Token gegen Ether den Ether-Preis manipulieren, indem er den Smart Contract den Preis in Ether neu kalkulieren lässt, nachdem die Ether abgezogen sind, aber noch während die Token da sind. Damit kann der Angreifer die Preises eines solchen Tausches manipulieren.

Bei einer dezentralen Börse wie UniSwap kann der Hacker damit Schaden anrichten. Allerdings hält sich dieser in Grenzen. Bei einem Geldmarkt wie Lendf.me dagegen kann der Hacker mit dem Reentry-Angriff seine eigenen Kollaterals in den Aufzeichnungen des Smart Contracts erhöhen. Er kann dem Smart Contract also vorgaukeln, dass er mehr imBTC-Token besitzt, als er tatsächlich hat. Diese kann er dann als Kolleral benutzen, um sich verschiedene andere Token zu leihen. Dieser Angriff ist sehr viel verheerender als der auf UniSwap und hat dem Hacker dementsprechend auch mehr als 25 Millionen Dollar eingebracht.

Wie Mindao Yang schreibt, hätte dForce einen solchen Angriff voraussehen sollen. Allerdings ist auch nachvollziehbar, weshalb er es nicht vorausgesehen hat. Die ERC777-Token gelten als sicher, und das Protokoll des Lending-Marktes an sich scheint auch sicher zu sein. Eine Unsicherheit schleicht sich erst ein, wenn zwei Komponenten zusammenkommen und etwas machen, was man nicht erwartet hätte. Der Vorfall zeigt damit, dass man nicht „einfach mal so“ einen Smart Contract für eine DeFi aufbauen kann. Es reicht nicht aus, die Sicherheit des eigenen Contracts zu kennen.

Im heutigen Ökosystem der DeFi wirken verschiedene Smart Contracts zusammen: Ein Contract erschafft einen Stablecoin, ein anderer baut einen Geldmarkt auf, bei dem man sich diesen leihen kann, und ein dritter schafft eine Börse, wo man auf den Stablecoin Zinsen erhält oder diesen gegen andere Token tauschen kann. Alles ist miteinander verflochten, und das Zusammenwirken der Smart Contracts kann Folgen haben, die extrem schwer vorauszuahnen sind.

Was für einen Entwickler beängstigend ist, dürfte für einen User noch erschreckender sein. Es ist für Normalsterbliche in keinster Weise zu erahnen, welche komplizierten Monster im Hintergründ wüten, wenn er sich einen Stablecoin in die Wallet packt und mittels der DeFi-Dapps verzinst. Das Risiko ist immer dabei.

Das Nachspiel

Nicht weniger interessant als der Hack ist das, was danach passiert ist.

Lendf.me ist weiterhin offline. Die Webseite dient als Tor zu der Dapp. Ich kenne den Smart Contract nicht genau, aber es wäre denkbar, dass der Contract ohne eine Signatur, die nur die Webseite bilden kann, nicht funktioniert. Damit wird die Dapp nicht „unaufhaltbar“, wie es sich Smart Contracts auf der Blockchain eigentlich auf die Brust schreiben. Sie kann, wie jede andere Plattform auch, von den Betreibern abgeschaltet werden. Dasselbe trifft auf die imBTC-Token zu: Deren Herausgeber, tokenlon, konnte Transaktionen mit ihnen einfach aussetzen. Auch hier haben die Smart Contracts die „unaufhaltbare Macht der Blockchain“ suspendiert.

Die Erträge des Hackers bestehen aus verschiedenen Token, und ein Teil davon hat er durch dezentrale Börsen gewechselt oder mithilfe einer anderen Lending-Dapp verliehen oder als Kollateral benutzt, um sich andere Token zu leihen. Hier machen die Smart Contracts offenbar, was sie machen sollen: Sie sind unaufhaltbar, selbst dann, wenn es ein kollektives Interesse daran gibt, sie aufzuhalten. Ob dies auf alle Token zutrifft, oder nur auf einen Teil, ist schwer zu sagen. So sind die von der Börse Huobi herausgegebenen Dollar-Token auf Ethereum nur auf Huobi einzulösen. Dort dürften die erbeuteten Token mittlerweile auf einer Blacklist stehen, was sie quasi wertlos macht.

Allerdings scheint es zu wirken, dass dForce die Polizei, die Börsen sowie die anderen Akteure im Ökosystem informiert hat. Diese haben die gehackten Token auf Blacklistst gesetzt – oder drohen, das zu tun – womit es für den Hacker sehr schwierig wird, sie gegen „saubere“ Coins zu wechseln. Damit ist es dForce offenbar geglückt, einen Verhandlungsdruck aufzubauen. Der Hacker hat dForce kontaktiert, und diese haben begonnen, mit ihm über die Rückgabe der Coins zu verhandeln. Als erstes Kommunikationsinstrument wurde dabei ein Feld in den Transaktionen des Lendf.me-Smart Contracts benutzt, in welches man kurze Nachrichten schreiben kann.

Wie es aussieht, scheinen die Verhandlungen recht zügig zu einem Abschluss gekommen zu sein. Der Hacker hat bereits die ersten Chargen an Dollar-Token zurückgezahlt.

Dem etablierten Finanzsystem ähnlicher als gedacht

Die DeFis zeigen sich in dieser Affäre gar nicht mal so anders als das normale Finanzsystem. Die hohen Zinsen, die man für Stablecoins in Smart Contracts bekommt – etwa 10 Prozent im Jahr – sind nicht gottgegeben, sondern spiegeln ein Risiko wieder. Dieses Risiko ist weniger ökonomisch – das wird durch die Kollaterale weitgehend eliminiert – sondern technisch. Es kann immer sein, dass die Smart Contracts im Zusammenspiel etwas machen, das keiner erwartet hätte.

Auch sind die meisten Token nicht so unaufhaltbar, wie man es sich vorstellt. So wie im normalen Finanzsystem lassen sich Guthaben einfrieren oder Transaktionen abschalten. Bei den imToken hat dies vermutlich verhindert, dass es noch deutlich größere Verluste gab. Auch dass etwa die Huobi-Dollar kontrollierbar sind, und es auch bei anderen ERC-Token die Funktion gibt, Transaktionen zu unterbinden, dürfte den Betroffenen geholfen haben, einen Teil ihrer verlorenen Token wieder zu erhalten.

Für die DeFis könnte dies die Götterdämmerung sein, weil sie doch nicht so anders sind als das, was wir bereits haben. Es könnte aber auch der Ritterschlag sein, weil die Methoden, mit denen man üblicherweise mit unerwünschten Vorfällen umgeht, auch hier greifen. Gleichzeitig reduzieren sie Risiken durch zentrale Parteien weiterhin und schaffen eine Transparenz, die im alten Finanzsystem gar nicht denkbar war.

Related posts

Dezentrale Börse UniSwap mit Rekord-Handelsvolumen – ähnlich hoch wie auf Börse Stuttgart

Kathrin Jung

Bug in Bitcoin Cash (BCH): Vorsicht vor SegWit-Adressen

Kathrin Jung

„Es gibt eigentlich keine kompletten Laien auf der Veranstaltung“

Kathrin Jung