MSTR Cat

Blockchain/Niveau VI · Nach Bitcoin/6.3 Ethereum und Smart Contracts/Lektion 3

Der DAO-Hack und Ethereum Classic

Der Reentrancy-Bug, der eine Chain spaltete und die Debatte um Unveränderlichkeit prägte

MaterialienEine Block-Explorer-Schnittstelle (z. B. Etherscan)Der Quellcode des Smart Contracts von The DAO (Version vor dem Fork)Ein Notizbuch zur Erfassung von Änderungen der Zustandsvariablen

Neugier

  1. Warum ermöglicht eine Codezeile, die vor der Aktualisierung des Zustands ausgeführt wird, es einem Angreifer, wiederholt Gelder abzuziehen?
  2. Was passiert, wenn eine Community dafür stimmt, die Geschichte umzuschreiben, statt sie zu bewahren?
  3. Wer hat die letzte Entscheidungsgewalt: der Konsensmechanismus oder die Entwickler, die ihn pflegen?

Erkunden

  1. The DAO startete im April 2016 als autonomer Risikokapitalfonds und sammelte etwa 12,7 Millionen ETH von über 11.000 Investoren ein. Dieser Betrag entsprach rund 14 % des gesamten damals im Umlauf befindlichen Ethers. Das Projekt lief vollständig über Smart Contracts, sodass die Token-Holder ohne zentrale Verwaltung oder klassische Unternehmensführungsstrukturen darüber abstimmen konnten, welche Projekte finanziert werden.
  2. Am 17. Juni 2016 nutzte ein Angreifer eine Reentrancy-Schwachstelle in der Split-Funktion von The DAO aus. Dieser Bug ermöglichte es, den Contract erneut aufzurufen, bevor sein interner Saldo aktualisiert war. Der Angreifer zog etwa 3,6 Millionen ETH in eine „Child DAO“ ab, wo eine Haltefrist von 28 Tagen die Mittel einfror. Dieser Exploit zeigte, dass Turing-vollständige Maschinen komplexe Risiken bei der Zustandsverwaltung mit sich bringen, die es in einfacheren Systemen wie Bitcoin nicht gibt.
  3. Die Ethereum-Community stand sofort vor einem Dilemma: die Unveränderlichkeit des Ledgers respektieren oder die Investoren vor einem kritischen Codefehler schützen? Die Entwickler argumentierten, der Bug sei ein Implementierungsfehler und kein beabsichtigtes Verhalten, und gesperrt bleibende Mittel würden das Vertrauen in den Nutzen der Plattform untergraben. Kritiker hielten dagegen, dass eine Änderung der Chain-Historie das Kernversprechen des dezentralen Konsenses verletze und einen gefährlichen Präzedenzfall für künftige Governance-Eingriffe schaffe.
  4. Am 20. Juli 2016 führte Ethereum bei Block 1.920.000 einen Hard Fork durch, um den Angriff rückgängig zu machen und die Mittel in einen Rückerstattungs-Contract zu verschieben. Die Token-Holder von The DAO konnten ihr Ether anschließend aus diesem Contract zurückholen. Eine Minderheit lehnte diesen Eingriff ab und betrieb weiterhin Mining auf der ursprünglichen, unveränderten Chain. Diese Gruppe bildete Ethereum Classic (ETC) und hielt strikt am Prinzip „Code is Law“ fest – keine Instanz solle die Macht haben, die Geschichte umzuschreiben.
  5. Der Fork schuf aus einem einzigen Ledger zwei parallele Realitäten. Während sich Ethereum zu einer bedeutenden Smart-Contract-Plattform weiterentwickelte, blieb Ethereum Classic ein kleineres Netzwerk, das vor allem als philosophisches Statement zur Dezentralisierung diente. Der Vorfall beeinflusste die weitere Protokollentwicklung über Kryptowährungen hinweg.
  6. Schlagen Sie Block 1.920.000 in einem Ethereum-Explorer und in einem Ethereum-Classic-Explorer nach: Die beiden Chains sind bis Block 1.919.999 identisch und unterscheiden sich ab Block 1.920.000. Der Fork hat das Ether von The DAO nicht per Transaktion verschoben; die neue Client-Software nahm bei diesem Block eine irreguläre Zustandsänderung vor, weshalb die Rückabwicklung im Code und nicht in einer Transaktionsliste auftaucht.

Kernfakten

  • The DAO sammelte etwa 12,7 Millionen ETH ein – rund 14 % des gesamten zum Start im Umlauf befindlichen Ethers.
  • Ein Reentrancy-Bug ermöglichte es einem Angreifer am 17. Juni 2016, etwa 3,6 Millionen ETH in eine Child DAO abzuziehen.
  • Ethereum führte am 20. Juli 2016 bei Block 1.920.000 einen Hard Fork durch, um den Angriff rückgängig zu machen und die Mittel zurückzugeben.
  • Eine Minderheit betrieb weiterhin Mining auf der ursprünglichen Chain, aus der Ethereum Classic (ETC) wurde, und berief sich dabei auf „Code is Law“.
  • Durch den Fork besaßen die Holder sowohl ETH auf der neuen Chain als auch ETC auf der alten.
  • Der Vorfall löste anhaltende Debatten über Unveränderlichkeit, die Autorität der Entwickler sowie die Definition von Konsens aus.

Übung neun, sechs, drei, eins

9SammelnListen Sie 9 Fälle auf, in denen ein Software-Update oder eine Protokolländerung bestehende Nutzerdaten oder die Transaktionshistorie verändert hat. Notieren Sie, wer die Änderung veranlasst hat und welche Begründung angegeben wurde.
6GruppierenGruppieren Sie die 9 in 6 Kategorien, je nachdem, ob die Änderung eine Fehlerbehebung, eine Funktionserweiterung, ein sicherheitsbedingter Rollback, ein Konsens-Upgrade, ein Hard Fork oder ein Soft Fork war.
3VerdichtenReduzieren Sie die 6 auf 3 Arten von Autoritäten, die letztendlich über diese Änderungen entschieden haben.
1KristallisierenSchreiben Sie 1 Satz darüber, was „Code is Law“ verspricht und was dabei geopfert wird, wenn der Code versagt.

Faktcheck

Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.

In der interaktiven Akademie öffnen →

EN PT ES ZH JA KO RU FR MS