Blockchain/Niveau VII · Evolution/7.1 Ethereum: der Weltcomputer/Lektion 2
Konten und globaler Zustand
Von diskreten Münzen bis zu einem einzigen, veränderbaren globalen Zustand
MaterialienDas Ethereum Yellow Paper (G. Wood)Vitalik Buterins Whitepaper zu Ethereum (2013/2014)Zugang zu Etherscan oder einem anderen Ethereum-Blockexplorer
Neugier
- Warum macht die Erfassung von Reichtum als Sammlung unverbrauchter Ausgaben es schwierig, allgemein einsetzbare Programme zu schreiben?
- Welche mechanischen Folgen entstehen daraus, dass jede Transaktion das gesamte Speichermedium des Netzwerks lesen und schreiben darf?
- Wie verändert ein auf Konten basierendes Modell im Vergleich zu einer UTXO-Liste die Kosten für die Überprüfung der Historie?
Erkunden
- Bitcoin misst den Wert anhand von nicht verbrauchten Transaktionsausgaben, also UTXOs. Jede Transaktion verbraucht bestimmte Eingänge und erzeugt neue Ausgänge; die Validierung überprüft nur die ausgegebenen Münzen (Lektion 2.2.1). Dieses Modell ist lokal und diskret. Ethereum, das im Juli 2015 von Vitalik Buterin sowie Mitbegründern wie Gavin Wood ins Leben gerufen wurde, verwendet eine auf Konten basierende Zustandsmaschine. Jede Adresse besitzt einen Saldo, der direkt aktualisiert wird. Die gesamte Geschichte des Netzwerks komprimiert sich in ein einziges globales Zustandsobjekt: die aktuellen Saldos aller Konten sowie die Speicherpuffer aller implementierten Verträge.
- In diesem Modell gibt es zwei Kontotypen: externe Konten (EOAs), die durch Private Keys gesteuert werden, und Vertragskonten, die durch Code gesteuert werden. Ein EOA initiiert Transaktionen; ein Vertrag führt Logik nur aus, wenn er aufgerufen wird. Die Zustandsübergangsfunktion nimmt den aktuellen globalen Zustand sowie eine Transaktion entgegen und erzeugt anschließend einen neuen globalen Zustand. Da jeder Knoten diesen Übergang deterministisch vom selben Ausgangspunkt aus berechnet, entsteht Konsens ohne Vertrauen. Diese Struktur macht allgemeine Berechnungen möglich, da jedes Konto beliebige Daten in seinem Speicher speichern kann.
- Die Ausdrucksfähigkeit des Account-Modells ermöglicht komplexe Anwendungen wie dezentralisierte Börsen und Kreditprotokolle. Ein Vertrag kann einen Wert von Milliarden haben und auf der Grundlage weltweiter Bedingungen komplexe Logiken ausführen. Diese Macht führt jedoch auch zu Schwachstellen. Da der Zustand veränderlich und geteilt ist, kann ein einziger Fehler im Code eines Vertrags sein gesamtes Guthaben aufbrauchen oder mitverknüpfte Verträge beschädigen. Die Re-Entrancy-Schwachstelle, die bei dem Hack von The DAO (Juni 2016) ausgenutzt wurde, zeigte, wie ein lokaler Fehler den globalen Zustand beeinflussen kann und somit zu einer communitygetriebenen Fork führt.
- Das Wachstum des Zustands ist eine inhärente Folge dieses Designs. Auch die UTXO-Liste von Bitcoin wächst, doch jeder Eintrag ist klein und wird bei Verwendung gelöscht; der Speicher für Kontrakte in Ethereum hingegen akkumuliert sich. Jede `SSTORE`-Operation fügt Daten hinzu, die so lange bestehen bleiben, bis sie ausdrücklich auf Null gesetzt werden – was ebenfalls Energie kostet. Dieses unbegrenzte Wachstum macht den Betrieb eines Full Nodes in Bezug auf Speicherplatz und Arbeitsspeicher immer aufwendiger. Die Knoten müssen den gesamten globalen Zustand beibehalten, um Transaktionen zu validieren – was einen Kompromiss zwischen rechnerischer Leistungsfähigkeit und Überprüfungskosten darstellt.
- Das Ethereum Yellow Paper formalisiert dies als eine deterministische Zustandsübergangsfunktion. Die EVM verarbeitet Anweisungen auf einer Stackmaschine – dabei ändern Operationen wie `ADD` oder `SLOAD` den lokalen Ausführungskontext und aktualisieren möglicherweise gleichzeitig die globale Kontostorage-Struktur. Diese Architektur ermöglicht Turing-Vollständigkeit, erfordert jedoch Gas, um eine Abschluss der Ausführung zu gewährleisten. Jede Operation verbraucht Gas, wodurch unendliche Schleifen verhindert werden und die Rechenausgaben einer Transaktion im Verhältnis zum Gaslimit des Blocks begrenzt bleiben.
- Öffnen Sie einen Block-Explorer wie Etherscan und prüfen Sie eine kürzliche Interaktion mit einem Vertrag. Schauen Sie sich die Registerkarte „Storage“ auf der Vertragsseite an; dort werden Schlüssel-Wert-Paare aufgelistet, die den dauerhaften Zustand des Kontos bilden. Beobachten Sie, wie sich diese Werte nach jeder Transaktion, die diesen Adressen zugeordnet ist, ändern. Diese Ansicht zeigt die konkrete Realität des globalen Zustands: Der Code wird nicht nur ausgeführt, sondern auch gespeichert – seine Daten bleiben über Transaktionen hinweg bestehen und wachsen im Laufe der Zeit.
Kernfakten
- Ethereum verwendet ein auf Konten basierendes Modell, bei dem die Saldo direkt aktualisiert werden, im Gegensatz zum UTXO-System von Bitcoin.
- Der globale Zustand umfasst alle Kontostände sowie die Vertragsdaten, die jede Transaktion lesen oder schreiben kann.
- Vertragskonten werden durch Codes gesteuert; von Dritten gehaltene Konten werden durch Private Keys gesteuert.
- Das Wachstum des Staates ist unbegrenzt, da der vertragliche Speicher unbefristet besteht und die Anforderungen an die Hardware der Knoten erhöht.
- Ein einziger Fehler in einem Smart Contract kann aufgrund der veränderbaren Natur des globalen Zustands sein gesamtes Guthaben aufbrauchen.
- Die EVM führt auf jedem Knoten deterministisch aus und gewährleistet so durch identische Zustandsübergänge Konsens.
Übung neun, sechs, drei, eins
9SammelnListen Sie 9 spezifische Unterschiede zwischen Bitcoins UTXO-Modell und Ethereums auf Konten basierender Zustandsmaschine hinsichtlich der Datenstruktur, des Validierungsumfangs sowie des Speicheraufwuchs.
6GruppierenGruppieren Sie diese 9 Elemente in 6 Kategorien: Datenerhaltung, Rechenauslastung, Sicherheitsaspekte, Ressourcenverbrauch der Knoten, Konsensmechanismen und Entwicklererfahrung.
3VerdichtenReduzieren Sie die 6 Cluster auf 3 Hauptgründe dafür, warum das Account-Modell Rechenarbeiten für allgemeine Zwecke ermöglicht – auf Kosten einer erhöhten Zustumsgröße.
1KristallisierenDer veränderliche globale Zustand ermöglicht komplexe Wechselwirkungen zwischen Verträgen, die in einem UTXO-System schwierig sind.
Faktcheck
Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.