Am späten Donnerstagabend trat in der Ethereum-Blockchain ein Problem auf, das vorübergehend verhinderte, dass Blöcke korrekt validiert werden konnten. Inzwischen ist zwar alles wieder normal, doch hier ist, was wir bislang über diese Episode wissen.
Blöcke konnten vorübergehend nicht mehr auf Ethereum finalisiert werden
Bis zum Zeitpunkt des Verfassens dieser Zeilen war die genaue Ursache noch nicht bekannt, aber für etwa 30 Minuten trat in der Ethereum (ETH)-Blockchain ein Problem auf, das die Fertigstellung von Blöcken verhinderte.
The beacon chain stopped finalizing about thirty minutes ago. Ich weiß noch nicht, warum, aber im Allgemeinen ist die Kette darauf ausgelegt, dagegen resilient zu sein, Transaktionen werden wie gewohnt fortgesetzt und die Fertigstellung wird angekurbelt, sobald das Problem behoben ist. pic.twitter.com/utAS0uAWpG
– superphiz.eth ️ (@superphiz) May 11, 2023
Es ist wichtig zu erwähnen, dass die Blockchain nicht zum Stillstand gekommen ist. Nur erlitt die Konsensschicht während drei Epochs einen ähnlichen Fehler wie das, was als „Inaktivitätsleck“ bezeichnet wird.
Vereinfacht ausgedrückt verhielt sich die Blockchain so, als wären viele Validatoren offline gewesen.
Dies war jedoch nicht der Fall, sondern Tatsache ist, dass während dieser Zeit eine begrenzte Anzahl von Bescheinigungen von Validatoren ausgestellt wurde:

Abbildung 1 – Epochs, bei denen ein Konsensus-Bug auf Ethereum aufgetreten ist
Ein Problem mit einer verwendeten Software?
Um zu funktionieren, ist die Ethereum-Blockchain in zwei Säulen unterteilt: die Ausführungsschicht, die insbesondere Transaktionen ermöglicht, und die Konsensschicht, die die Konformität der Blöcke sicherstellen wird. Für diese beiden Säulen können die Validatoren verschiedene Software, sogenannte Clients, verwenden.
Die Ethereum Foundation ermutigt die Validatoren, die verwendeten Clients zu diversifizieren, damit die Blockchain im Falle eines Fehlers weiterhin normal funktioniert.
In der folgenden Abbildung können wir sehen, dass die für die Konsensschicht verwendete Software korrekt diversifiziert ist, während für die Ausführungsschicht der Geth-Client viel zu stark vertreten ist:

Abbildung 2 – Vielfalt der von den Validatoren verwendeten Clients auf Ethereum
Da kein Client der Konsensschicht von mehr als 50 % der Validatoren verwendet wird, kann der Fehler von heute Nacht nicht zu einem Stillstand der Blockchain oder einer Blockchain-Fork geführt haben. Vorausgesetzt, das Problem liegt tatsächlich bei einer der verwendeten Software.
Für diesen Fall stellt der Kernentwickler Superphiz klar, dass das Problem des Inaktivitätslecks sogar hätte vermieden werden können, wenn keine Software mehr als 33 % der Validatoren repräsentiert hätte:
Wenn ein Konsensschicht-Client den Verlust der Endgültigkeit verursachte:
* Wir haben einen Fork verhindert, indem wir keinen Supermajority-Client hatten.
* Wir hätten den Verlust der Endgültigkeit vollständig vermeiden können, wenn kein Client mehr als 33 % gehabt hätte.
I’m proud of our diversity work, but we’re not done. https://t.co/TUtXnQu5hD
– superphiz.eth ️ (@superphiz) May 11, 2023
Terence Tsao berichtete seinerseits, dass ein Problem im Prysm-Client identifiziert worden sei, obwohl wir derzeit nicht sagen können, ob dies tatsächlich die Quelle für den Stopp der Blockvalidierung ist:
Update von Prysm. Wir haben Bereiche identifiziert, in denen das State Caching verbessert werden könnte. Mit dem verbesserten Cache sollte der Knoten während einer degradierten Zeit besser funktionieren als zuvor.
Given the chain has stabilized, as a staker / node operator, there’s no action required moment.
– terence.eth (@terencechain) May 11, 2023
Das Wichtigste in diesem Moment ist, dass alles schnell wieder zur Normalität zurückkehrte und dass während dieser Episode kein Validator „geslasht“ wurde. Slashing wird nämlich eingesetzt, um einen Teil der gestackten ETHs abzuschöpfen, wenn die Validatoren ihre Arbeit nicht ordnungsgemäß erledigen.
Ein detaillierter Bericht über die Geschehnisse wird in Kürze vom Entwicklungsteam vorgelegt, und wir können dann auf diese Informationen zurückkommen.