Blockchain/Niveau VI · Nach Bitcoin/6.3 Ethereum und Smart Contracts/Lektion 1
Das Ethereum-Whitepaper und die EVM
Ein Zustandsautomat, der auf jedem Node läuft und mit Gas betrieben wird
MaterialienEine Kopie des Ethereum-Whitepapers (2014)Das Ethereum Yellow Paper (Gavin Wood, 2014)Zugang zu einem Block-Explorer wie Etherscan
Neugier
- Warum muss ein auf Tausenden von Maschinen replizierter Computer für jede einzelne Anweisung eine Gebühr verlangen?
- Was geht kaputt, wenn der auf diesen Maschinen laufende Code ohne Strafe endlos in einer Schleife laufen kann?
- Wie können zwei verschiedene Kontomodelle – UTXOs und direkt aktualisierte Guthaben – dasselbe Vermögen unterschiedlich darstellen?
Erkunden
- Vitalik Buterin, damals neunzehn, entwarf Ende 2013 das Ethereum-Whitepaper und schlug darin statt einer bestimmten Währung eine universell einsetzbare Rechenplattform vor. Das im Januar 2014 öffentlich angekündigte Projekt versammelte Mitgründer wie Gavin Wood, Joseph Lubin, Charles Hoskinson, Anthony Di Iorio und Mihai Alisie. Von Juli bis August 2014 lief ein Crowdsale, der etwa 31.500 BTC für das Vorhaben einbrachte. Das Netzwerk startete offiziell am 30. Juli 2015 und markierte den Wandel von Bitcoins begrenzter Skriptfähigkeit zu einer vollständig programmierbaren Umgebung, in der Entwickler komplexe Anwendungen direkt on-chain bauen konnten.
- Der Kern dieser Architektur ist die Ethereum Virtual Machine (EVM), eine Turing-vollständige Zustandsmaschine, die auf jedem Full Node repliziert wird. Im Gegensatz zum UTXO-Modell von Bitcoin, das einzelne nicht ausgegebene Outputs erfasst, verwendet Ethereum ein Kontomodell, bei dem Guthaben direkt aktualisiert werden. Jedes Konto – ob durch einen privaten Schlüssel oder durch Code gesteuert – führt eine Nonce und ein Guthaben. Wenn eine Transaktion ausgeführt wird, verarbeitet die EVM sie deterministisch; jeder Node berechnet eigenständig dasselbe Ergebnis, wodurch Konsens entsteht, ohne dass die Teilnehmer einander vertrauen müssen.
- Smart Contracts sind Programme, die in Hochsprachen wie Solidity geschrieben und zu Low-Level-Opcodes kompiliert werden, die die EVM ausführt. Diese Contracts vereinen Wert und Logik zugleich. Ein Contract kann Ether halten, bedingte Trades ausführen oder Governance-Abstimmungen auf Grundlage von Eingaben anderer Konten verwalten. Da die Ausführung deterministisch ist und viele Contracts ihren Quellcode veröffentlichen, kann jeder die Logik prüfen, bevor er mit ihnen interagiert. Diese Transparenz macht in vielen Finanzanwendungen vertrauenswürdige Vermittler überflüssig, da die Regeln durch Software und nicht durch menschliches Ermessen durchgesetzt werden.
- Um Endlosschleifen und Denial-of-Service-Angriffe zu verhindern, verbraucht jede EVM-Operation „Gas“ – eine Recheneinheit, die in Ether bezahlt wird. Der Absender legt im Voraus ein Gaslimit fest; wenn die Ausführung diesen Treibstoff aufbraucht, werden die Zustandsänderungen rückgängig gemacht, das verbrauchte Gas wird aber dennoch abgezogen. Diese wirtschaftliche Beschränkung zwingt Entwickler, effizienten Code zu schreiben, und schützt das Netzwerk vor bösartigen oder fehlerhaften Contracts, die sonst die Chain lahmlegen könnten. Die Gaspreise steigen und fallen mit der Nachfrage; ursprünglich gaben die Nutzer einfach Gebote ab, seit 2021 passt sich eine vom Protokoll festgelegte Grundgebühr automatisch an, zuzüglich Tips (eine spätere Lektion).
- Die Designentscheidungen der EVM spiegeln einen Zielkonflikt zwischen Ausdrucksstärke und Sicherheit wider. Turing-Vollständigkeit ermöglicht beliebige Berechnungen, bringt aber Komplexität mit sich, in der sich Schwachstellen verbergen können. Das Kontomodell macht manche Programme einfacher als UTXOs, doch Contracts, die einander aufrufen, müssen sorgfältig geschrieben werden, um Fehler wie Reentrancy zu vermeiden – die Schwachstelle hinter dem Hack von The DAO (eine spätere Lektion). Die Standardisierung der EVM ermöglicht ein riesiges Ökosystem an Tools und Auditoren, die mit genau diesem Befehlssatz vertraut sind.
- Öffnen Sie einen Block-Explorer wie Etherscan und sehen Sie sich eine beliebige aktuelle Transaktion an, mit der ein Smart Contract deployt wurde. Achten Sie auf den Status „Contract Creation“ und auf das verbrauchte Gas im Vergleich zum Gaslimit. Beachten Sie, dass die Eingabedaten der Transaktion den kompilierten Bytecode enthalten, der an der neuen Adresse gespeichert wird. Dieser konkrete Schritt zeigt die mechanische Realität eines Deployments: Der Code wird hochgeladen, von jedem Node verifiziert und in der Zustandsmaschine der Chain verankert – bereit zur Ausführung bei künftigen Interaktionen.
Kernfakten
- Vitalik Buterin schrieb das Ethereum-Whitepaper Ende 2013; das Projekt wurde im Januar 2014 angekündigt.
- Der Crowdsale im Juli/August 2014 brachte etwa 31.500 BTC für den Entwicklungsfonds von Ethereum ein.
- Das Ethereum-Mainnet startete am 30. Juli 2015 und führte eine Turing-vollständige virtuelle Maschine ein.
- Jede EVM-Operation verbraucht Gas, das in Ether bezahlt wird, um Endlosschleifen zu verhindern und die Terminierung sicherzustellen.
- Ethereum verwendet ein Kontomodell, bei dem Guthaben direkt aktualisiert werden – im Unterschied zum UTXO-System von Bitcoin.
- Smart Contracts werden typischerweise in Solidity geschrieben, das zu deterministischem EVM-Bytecode kompiliert wird.
Übung neun, sechs, drei, eins
9SammelnListen Sie 9 technische Einschränkungen oder Designentscheidungen im Ethereum-Whitepaper auf, die sich vom Bitcoin-Protokoll unterscheiden.
6GruppierenGruppieren Sie diese 9 Elemente in 6 Kategorien nach ihrem Einfluss: Zustandsverwaltung, Sicherheit, Ausführungskosten, Sprachunterstützung, Konsens und Governance.
3VerdichtenReduzieren Sie die 6 Cluster auf 3 zentrale Gründe, warum Turing-Vollständigkeit einen Gasmechanismus erfordert.
1KristallisierenSchreiben Sie 1 Satz, der erklärt, wie die deterministische Natur der EVM einen globalen Konsens über Zustandsübergänge sicherstellt.
Faktcheck
Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.