Donderdag laat in de avond ondervond de Ethereum blockchain een probleem waardoor blokken tijdelijk niet correct gevalideerd konden worden. Hoewel alles sindsdien weer normaal is, is dit wat we voorlopig weten over deze episode.
Blokken worden tijdelijk niet meer gefinaliseerd op Ethereum
Op het moment van schrijven was de exacte oorzaak nog niet bekend, maar gedurende ongeveer dertig minuten ondervond de Ethereum blockchain (ETH) een probleem waardoor blokken niet konden worden gefinaliseerd.
De bakenketen stopte ongeveer dertig minuten gelden met finaliseren. Ik weet nog niet waarom, maar in het algemeen is de keten ontworpen om hier tegen bestand te zijn, transacties zullen gewoon doorgaan en de finalisatie zal beginnen wanneer het probleem is opgelost. pic.twitter.com/utAS0uAWpG
– superphiz.eth ️ (@superphiz) Mei 11, 2023
Het is belangrijk om op te merken dat de blockchain niet gestopt is. Echter, gedurende 3 epochs, leed de consensuslaag aan een bug die lijkt op wat bekend staat als een “inactiviteitslek”.
Eenvoudiger gezegd, de blockchain gedroeg zich alsof veel validators offline waren.
Dit was niet het geval, maar feit is dat er tijdens deze periode een beperkt aantal certificaten werd uitgegeven door validators:

Afbeelding 1 – Tijdperken waarin zich een consensusbug in Ethereum voordeed
Een probleem met een stuk software dat wordt gebruikt
Om te functioneren is de Ethereum blockchain verdeeld in 2 pijlers: de uitvoeringslaag, die transacties mogelijk maakt, en de consensuslaag, die ervoor zorgt dat blokken consistent zijn. Voor deze twee pijlers kunnen validators verschillende software gebruiken, clients genaamd.
De Ethereum Foundation moedigt validators aan om de clients die ze gebruiken te diversifiëren, zodat als er een bug optreedt, de blockchain normaal blijft functioneren.
In de onderstaande afbeelding kunnen we zien dat de software die wordt gebruikt voor de consensuslaag correct is gediversifieerd, terwijl voor de uitvoeringslaag de Geth-client veel te veel vertegenwoordigd is:

Figuur 2 – Diversiteit van clients gebruikt door validators op Ethereum
Aangezien geen enkele consensuslaagclient door meer dan 50% van de validators wordt gebruikt, kan de bug van gisteravond geen blockchain shutdown of fork hebben veroorzaakt. Dat is in de veronderstelling dat het probleem inderdaad ontstond in één van de gebruikte softwarepakketten.
In dit geval wijst kernontwikkelaar Superphiz erop dat dit inactiviteitslekprobleem zelfs voorkomen had kunnen worden als geen enkele software meer dan 33% van de validators vertegenwoordigde:
Als een cliënt van de consensuslaag het verlies van finaliteit veroorzaakte:
* We hebben een fork afgewend door geen supermeerderheidscliënt te hebben
* We hadden het verlies van finaliteit helemaal kunnen voorkomen als geen enkele cliënt meer dan 33% had.
Ik ben trots op ons diversiteitswerk, maar we zijn nog niet klaar. https://t.co/TUtXnQu5hD
– superphiz.eth ️ (@superphiz) mei 11, 2023
Terence Tsao heeft van zijn kant aangegeven dat er een probleem is geïdentificeerd met de Prysm-client, hoewel we op dit moment niet kunnen zeggen of dit de bron is van de blokkering van de validatie :
Update van Prysm. We hebben gebieden geïdentificeerd waar het cachen van toestanden kan worden verbeterd. Met de verbeterde cache zou het knooppunt beter moeten presteren tijdens een degraded periode zoals voorheen.
Gezien de keten gestabiliseerd is, is er als staker / node operator geen actie nodig moment.
– terence.eth (@terencechain) mei 11, 2023
Het belangrijkste op dit moment is dat alles snel weer normaal is en dat er geen validators zijn beschadigd tijdens deze aflevering. In feite wordt slashing gebruikt om een deel van de ETH over te hevelen die verstopt is wanneer validators hun werk niet goed doen.
Het ontwikkelingsteam zal binnenkort een gedetailleerd rapport uitbrengen over wat er is gebeurd en dan kunnen we op deze informatie terugkomen.