Die Bugs des Monats: Von Liquid bis Balancer und von Ravencoin bis Bitcoin Gold

Erinnert durch seine Färbung und sein tiefes Brummen zunächst an eine ungewöhnlich aufdringliche Hornisse, ist aber ein friedlicher, freundlicher und tappsiger Käfer. Der Junikäfer treibt derzeit wieder sein Unwesen. Bild von Rolf Dietrich Brecher via flickr.com. Lizenz: Creative Commons

Im Lauf der letzten Wochen gab es einige interessante Bugs und Angriffe bei Kryptowährungen: Bei Ravencoin schürft ein Miner Coins, die es nicht geben dürfte und bei Bitcoin Gold wehrt einen 51-Prozent-Angriff ab. Die Liquid-Sidechains bucht derweil Bitcoins ungeplant unter die Kontrolle von Blockstream, während sich Hacker an Schwächen in den DeFis Balancor und UniSwap bereichern. Wir haben also einen kunterbunten Strauss an Bugs.

Bugs geschehen täglich. Wo Code und Computer sind, da kommt es auch zu Fehlern, die manchmal ausgenutzt und manchmal einfach so gemeldet werden. Speziell wird es aber, wenn es da einen Bug gibt, wo es eigentlich keinen geben darf – bei Blockchains. Und darüber gibt es aus den letzten Wochen einiges zu berichten.

Ravencoin: Fehler erlaubt es Miner, mehr als den vorgesehenen Coinbase-Reward abzusahnen

Bei Kryptowährungen reguliert das Protokoll die Schöpfung neuer Coins durch Miner, die sich diese üblicherweise durch die sogenannte „Coinbase-Transaktion“ gutschreiben dürfen. Dieses von Bitcoin eingeführte Modell wurde von den meisten Kryptowährungen übernommen, einschließlich Ravencoin, einem eher uninteressanten Altcoin, der relativ ähnlich wie Bitcoin ist und nur kleine Parameter wie die Blockintervalle oder den Mining-Algorithmus geändert hat. Anfang Juli haben die Ravencoin-Entwickler nun einen „Vorfall“ (Incident) gemeldet:

Dem Team wurde eine „Verletzlichkeit“ (Vulnerability) mitgeteilt, „die von Unbekannten genutzt wurde, um RVN“ – die nativen Token von Ravencoin – „zu minen, die über die Coinbase von 5000 RVN je Block hinausgehen.“ Der Bug nutzte eine Code-Änderung aus, die aus der Community eingebracht wurde. Die Entwickler haben versucht, den Bug zu schließen, ohne es an die große Glocke zu hängen, um weitere Vorfälle zu verhindern. Durch den Fehler wurden RVN-Coins gemined, „die nicht existieren sollten“ und daher die Gesamtanzahl aller jemals verfügbaren RVN erhöht haben.

Die Entwickler haben die Polizei informiert und arbeiten mit ihr zusammen, um den Fall aufzuklären. Eine Fork, die die Coins wieder auslöscht, kommt allerdings nicht in Frage. Denn „die RVN wurden zu einer Börse gesendet und gehandelt, daher sind sie mit anderen RVN gemischt und jeder Versuch, sie im Einverständnis mit Minern und der Community zu verbrennen, würde irreparablen Schaden an unschuldigen Opfern anrichten.“

Liquid-Sidechain: Fehler übergibt Blockstream vorübergehend die Kontrolle über 870 Bitcoins

Die Liquid-Sidechain von Blockstream soll helfen, Bitcoin zu skalieren, indem sie Bitcoins auf der „Mainchain“ einfriert und auf einer anderen Blockchchain als L-BTC wiederbelebt, die von einem Konsortium von Börsen und anderen Unternehmen betrieben wird. Es gibt bei Liquid eine Art Notfallprogramm, das es erlaubt, Bitcoins nach Ablauf einer bestimmten Zeit mit Notfallschlüsseln zu bergen. Diese Notfallschlüssel sind im Besitz von Blockstream.

Der Ethereum-Entwickler James Prestwitch stieß Ende Juni zufällig darauf, dass dieser Mechanismus einen Fehler hatte. Nachdem eine Transaktion 2015 Blöcke alt wurde – das entspricht bei Liquid einigen Tagen – startete das Notfallprogramm und „die Liquid-Notfall-Operateure können 870 Bitcoin stehlen“. Prestwitch hat dies „nur zufällig“ gefunden und fragt daher, wie oft dies wohl gewöhnlich vorkomme.

Kurz darauf hat der CEO von Blockstream, Adam Back, ein Statement dazu veröffentlicht: Das Problem sei durch eine Inkonsistenz der Timelocks der verschiedenen Akteure in Liquid verursacht. Durch sie werden die Timelocks erneuert, nachdem sie ausgelaufen sind, anstatt zuvor. Gewöhnlich erstrecke sich dies nur über einen kurzen Zeitraum, aber es könne wie vor kurzem auch passieren, dass dies 40 Minuten andauere.

Das Problem sei schon bekannt, doch der Fix habe sich wegen Corona verzögert. Am dritten Juli schließlich wurde er auf die Knoten der Liquid-Föderation eingespielt.

Bitcoin Gold: Entwickler wehren weiteren 51-Prozent-Angriff durch Checkpoints ab

Bitcoin Gold (BTG) ist eine Fork von Bitcoin, die recht kurz nach der Fork von Bitcoin Cash (BCH) entstand. Im Vergleich zu BCH und Bitcoin SV ist sie aber relativ bedeutungslos. Anders als diese beiden populäreren Forks hat sie den Mining-Algorithmus von Bitcoin so geändert, dass die Miner Grafikkarten anstatt Asics verwenden können. Dies sollte die Blokchain eigentlich dezentraler und sicherer machen – resultierte aber in der Vergangenheit bereits in einem 51-Prozent-Angriff.

Ein 51-Prozent-Angriff ist sozusagen DIE Schwäche von Bitcoin: Wenn ein Miner mehr als 51 Prozent der Hashpower aufbringt, kann er geheim eine alternative Blockchain minen und diese dann durchsetzen. Auf diese Weise kann er Bitcoins an jemanden senden, diese aber auch nach einer Bestätigung an sich zurücküberweisen. Dieser Angriff ist schon längst bekannt; die Sicherheit von Bitcoin basiert darauf, dass mehr als die Hälfe der Miner ehrlich sind.

Am 1. Juli erlitt Bitcoin Gold erneut einen solchen Angriff. Anders als beim letzten Mal haben die Entwickler aber prompt reagiert und den Hacker auflaufen lassen: Sie haben am 2. Juli eine neue Version der Node-Software veröffentlicht, die einen Checkpoint setzt: Ein Block, der von einem als ehrlich bekannten Pool am 2. Juli gemined wurde, gilt als verbindlich. Das bedeutet, dass ein Angreifer ihn nicht länger durch einen anderen Block ersetzen kann, selbst wenn dieser mit mehr Hashpower erzeugt wurde. Die neue Version wurde an die Börsen und Miner verteilt, die zunächst Ein- und Auszahlungen aussetzten. Da die neue Version aber zunächst noch nicht öffentlich war, haben die Angreifer weiter an ihrer alternativen Kette gearbeitet, die am 10. Juli bereits 1300 Blöcke lang war. Damit haben sie lediglich Ressourcen vergeudet, ohne durch den Angriff etwas zu gewinnen.

Balancer-Liquidity-Pools verlieren mehr als 500.000 Dollar

Balancer gehört zur Familie der Dezentralen Finanzen (DeFi) auf Ethereum. Es handelt sich um einen automatischen Market-Maker, der durch Pools Liquidität für andere DeFis bündelt und damit den Teilnehmern Zinsen auszahlen kann. Ende Juni hat die Börse 1inch darüber berichtet, wie zwei Pools mindestens 500.000 Dollar durch einen Bug verloren haben.

Die Exploits wurden durch je eine Ethereum-Transaktion ausgelöst, die verschiedene Aktionen mit verschiedenen Smart Contracts verbunden haben und so komplex waren, dass jede von ihnen beinah 90 Prozent des für einen Block verfügbaren Gases verbraucht haben. Falls Sie den folgenden Angriff nicht verstehen, macht das nichts – das geht so gut wie jedem so:

Die Hacker haben zunächst von der dezentralen Börse dYdX einen Kredit von 104.000 WETH genommen. WETH sind „wrapped“ Ether. Das bedeutet, sie sind ein Token, das von einigen Smart Contracts benutzt werden kann. Diese WETH haben die Hacker dann genutzt, um sie 24 Mal nacheinander gegen STA-Token zu tauschen. Dies hat die STA-Vorräte des Liquidity-Pools aufgebraucht, was durch einen Fehler im Transfer-Mechanismus des Pool-Smart-Contracts möglich wurde.

Danach hat der Angreifer wiederholt die STA gegen WETH getauscht. Aufgrund der Transfergebühren des Pools hat dieser niemals STA erhalten, aber die WETH freigegeben. Anschließend hat der Angreifer den Kredit von 104.000 WETH zurückgezahlt und seinen Anteil im Balancer-Pool durch die Einzahlung von STA-Token drastisch erhöht, um dann schließlich als letzten Schritt durch Uniswap die Balancer-Pool-Token gegen 136.000 STA zu tauschen und diese gegen 109.000 WETH. So hat er wohl einen Gewinn von 5.000 Ether abgesahnt.

Der Angriff ist dermaßen kompliziert, dass einem schwindlig wird. Es ist kaum vorstellbar, wie man sich so etwas ausdenken kann – und noch viel schwieriger, wie man so etwas vorplanen und verhindern soll.

Angreifer spamt Ethereum-Netzwerk, um auf UniSwap in wenigen Minuten mehrere tausend Ether zu erbeuten

Auch im letzten der Bugs des Monats geht es um ein DeFi: Um Uniswap, das bereits im Zuge des Balancer-Bugs genutzt wurde. Ob es sich hier tatsächlich um einen Bug oder „nur“ um das Ausnutzen einer speziellen Marktsituation handelt, ist nicht ganz eindeutig. Das folgende ist passiert:

Der Gründer der Cybersecurity-Firma PepperSec, Roman Storm, tweetete, dass jemand eine Million Dollar in 30 Minuten auf UniSwap gemacht habe. Dies sei durch drei Schritte möglich geworden: Erstens habe auf die Nachricht gewartet, dass bZrX auf Uniswap gelistet wird. bZrX ist das Token des bZr-Netzwerks, das ebenfalls ein DeFi-Protokoll darstellt. Zweitens hat der Angreifer einen Smart Contract geschrieben, der die Token auf Uniswap kauft. Drittens hat er das Ethereum-Netzwerk mit Transaktionen gespamt, so dass die anderen nicht mithandeln konnten, da ihre Transaktionen scheiterten. Kurz darauf hat er die Token wieder verkauft.

So gelang es ihm, nach einer Einzahlung von 650 Ether innerhalb von dreißig Minuten bei 2680 Ether und 300.000 bZrX-Token zu stehen.

Der Angreifer hat sicherlich nicht ganz nach den Regeln gespielt, so wie sie gedacht wurden, und er hat sich in kürzester Zeit erheblich bereichert. Aber handelt es sich dabei um einen Bug? Oder lediglich um ein noch nicht ganz reifes Protokoll? Oder gar nur um das clevere Ausnutzen von Marktmechanismen, wie sie vermutlich auch im Aktienmarkt immer wieder vorkommen?

Ob so oder so oder so: Wie schon der Balancer-Angriff zeigt dieser, dass die DeFis zahlreiche extrem kompexe Angriffe ermöglichen, die höchste technische Komplexität mit ökonomischen Szenarien und Angriffen auf das gesamte Ethereum-Netzwerk verbinden.

Über Christoph Bergmann (1877 Beiträge)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder. Christoph hat vor kurzem ein Buch geschrieben: Bitcoin: Die verrückte Geschichte vom Aufstieg eines neuen Geldes. Das Buch stellt Bitcoin in seiner ganzen Pracht dar. Ihr könnt es direkt auf der Webseite Bitcoin-Buch.org bestellen - natürlich auch mit Bitcoin - oder auch per Amazon. Natürlich freuen wir uns auch über Spenden in Bitcoin, Bitcoin Cash oder Bitcoin SV an die folgende Adresse: 1BergmanNpFqZwALMRe8GHJqGhtEFD3xMw. Wer will, kann uns auch Hier mit Lightning spenden. Tipps für Stories sind an christoph.bergmann@mailbox.org immer erwünscht. Wer dies privat machen möchte, sollte meinen PGP-Schlüssel verwenden.

2 Kommentare zu Die Bugs des Monats: Von Liquid bis Balancer und von Ravencoin bis Bitcoin Gold

  1. „Der Angreifer hat sicherlich nicht ganz nach den Regeln gespielt, so wie sie gedacht wurden, und er hat sich in kürzester Zeit erheblich bereichert. Aber handelt es sich dabei um einen Bug? Oder lediglich um ein noch nicht ganz reifes Protokoll? Oder gar nur um das clevere Ausnutzen von Marktmechanismen, wie sie vermutlich auch im Aktienmarkt immer wieder vorkommen?“

    Das ist aber schön gesagt, muss man bei etwas dabei sein, nur weil es heiß und neu ist. Wenn man es icht versteht sollte man diesem Spieltisch jedenfalls fern bleiben!

  2. Paul Janowitz // 20. Juli 2020 um 18:39 // Antworten

    Ravencoin ist leider nicht zu helfen, der Bug wurde durch einen komplett neuen Github Account eingeschleust, der bis heute nur diesen einen einzigen Pull Request überhaupt eingereicht hat. Die Ravencoin Devs haben diesen auch noch abgesegnet ohne genau zu prüfen, obwohl er direkt den Consensus-Code betrifft.

    Bei Blockstreams scammy Liquid wundert mich nichts mehr, der Bug wird natürlich u.A. von Adam Back heruntergespielt.

    Bitcoin Gold… Dass es das noch gibt. Mit ihrem Scamfork, in dem sie sich Mal eben 10% der Coins „zwischengemined“ haben für die ach so starke Entwicklungsleistung.

    DeFi ist definitiv noch seeeeehr jung und man sollte da imho sehr vorsichtig sein, wie viel man da reinsteckt. Zum einen sind die Contracts teils sehr komplex, dazu kommen externe Oracle Anbindungen hinzu, die fehleranfällig sind und eben noch die Ethereum Blockchain die aus allen Kapazitäten platzt und dringend eine Lösung benötigt, die sich ewig verzögert. Ob Ethereum 2.0 dann alle Erwartungen erfüllen kann, wird sich zeigen, auch ob es keine neuen Angriffsflächen in DeFi öffnet, wenn sich die Gas Preise verschieben etc…

    Den wohl größten „Bug“ hast Du aber vergessen: Den Twitter Bug, mit dem die Hacker Zugriff auf wohl alle Konten gehabt haben und über die Konten von Elon Musk über Bill Gates zu Kayne West wurde ein recht plumper Scam verbreitet, dass man seine Bitcoin verdoppeln könnte. Das war sogar ziemlich erfolgreich und die Hacker konnten wohl Bitcoin im Wert mehrerer Millionen Dollar erbeuten…

Schreiben Sie einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Wechseln )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Wechseln )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Wechseln )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Wechseln )

Verbinde mit %s