Erik Weijers, vor einem Jahr
Gestern konzentrierten sich die Menschen nicht nur auf den fallenden Ether-Preis, sondern auch auf die Beacon Chain. Dort fand eine sogenannte "Block-Reorganisation" statt, die nicht weniger als sieben Blöcke tief war. Solche Umstrukturierungen kommen auf Proof-of-Work-Chains gelegentlich vor, aber die Hoffnung war, dass sie auf der Proof-of-Stake-Chain von Ethereum der Vergangenheit angehören. Sollten wir besorgt sein?
Ethereums Beacon Chain ist die Parallelkette, auf der Proof-of-Stake gründlich getestet wird. Nach dem Merge in der (hoffentlich) zweiten Hälfte des Jahres 2022 wird Ethereum dann wirklich auf dem derzeitigen Proof-of-Stake-Testnetzwerk laufen. Es ist also noch Zeit, Schwachstellen zu entdecken. Die Block-Reorganisation war einer dieser Momente, in denen sich die Entwicklerinnen und Entwickler gegenseitig mit DMs versorgten: Was ist hier los? Kann das schaden? Es scheint nicht so.
Bei der Verkettung von Transaktionsblöcken ist es normal, dass es für eine kurze Zeit zu einem Fork kommt. Wie kann das passieren? Bei Proof-of-Work-Ketten wie Bitcoin liegt es daran, dass zwei Miner ihr "Puzzle" fast zur gleichen Zeit fertiggestellt haben und einen Block minen dürfen. Sie senden diesen Block an die Nodes. Wenn dies fast gleichzeitig geschieht, ist es wahrscheinlicher, dass einige Nodes den einen Block genehmigen und andere Nodes den anderen. Dann kommt es zu einem Fork (Spaltung). Diese wird in der Regel mit dem nächsten Block aufgelöst, so dass nur noch die Gewinnerkette übrig bleibt. Die Chance, dass eine fast gleichzeitige Blockerstellung noch einmal passiert, ist sehr gering - ganz zu schweigen davon, dass es drei oder vier Mal hintereinander passiert. (Diese Möglichkeit des Forkings ist der Grund, warum viele Krypto-Börsen und Wallets auf eine bestimmte Anzahl von Bestätigungen/Blöcken warten. Nur wenn eine Transaktion vier, fünf oder sechs Blöcke tief versteckt ist, ist die Wahrscheinlichkeit, dass sie rückgängig gemacht werden kann, nahezu null).
Wie konnte es passieren, dass die Beacon Chain von Ethereum diesen Konflikt für ganze sieben Blöcke hatte (die Blockzeit von Ethereum beträgt übrigens nur etwa 12 Sekunden)? Das hat mit den verschiedenen Ethereum-Clients (Versionen der Ethereum-Software) zu tun, die im Umlauf waren. Auf einigen Nodes liefen Clients, auf denen bereits eine Protokolländerung vorgenommen worden war - auf anderen war diese Aktualisierung noch nicht erfolgt.
Die betreffende Protokollaktualisierung hatte mit einer sogenannten Boost-Funktion zu tun. Diese sorgt dafür, dass schnell erstellte Blöcke besonders schnell verteilt werden - eben um zu verhindern, dass widersprüchliche Versionen der Chain im Umlauf sind. Da nicht jeder Client diese Boost-Funktion implementiert hatte, zogen verschiedene Nodes unterschiedliche Schlüsse darüber, was der richtige Block war, auf dem der Rest der Kette basieren sollte.
Das scheint der Fall gewesen zu sein. Der genaue Bericht wird zweifellos später folgen. Wie bereits erwähnt, ist das Auftreten von temporären Forks und anschließenden Reorganisationen an sich kein Problem. Und zweifelsohne werden alle Clients damit beginnen, diese Boost-Funktion zu implementieren, so dass diese Art der Blockumstrukturierung nicht mehr vorkommt.
Die Block-Reorganisation hatte nichts mit einem Angriff auf das System zu tun, sondern mit dem Versuch, die Ausgaben zu verdoppeln - es handelte sich nicht einmal um einen Fehler. Es war also nichts allzu Ernstes im Gange. Aber die Tatsache, dass diese Art von Ereignis von den Ethereum-Entwicklern nicht vorhergesehen wurde, sagt etwas über die Komplexität des Übergangs zum Proof-of-Stake aus. Es handelt sich um ein System der Transaktionsvalidierung, das viel, viel komplexer ist als Proof-of-Work. Die kommenden Monate und Jahre - auch nach dem Merge - werden zeigen, welche Überraschungen noch auf Lager sind.
Melden Sie sich an, um über unsere E-Mail-Updates auf dem Laufenden zu bleiben