Ve čtvrtek pozdě večer se v blockchainu Ethereum vyskytl problém, který dočasně znemožnil správnou validaci bloků. I když se od té doby vše vrátilo do normálu, zde je to, co o této epizodě prozatím víme
Bloky přestaly být v systému Ethereum dočasně finalizovány
V době psaní tohoto článku ještě nebyla sdělena přesná příčina, ale přibližně na třicet minut se v blockchainu Ethereum (ETH) vyskytl problém, který bránil finalizaci bloků.
Přibližně před třiceti minutami se přestal finalizovat řetězec majáků. Zatím nevím proč, ale obecně je řetězec navržen tak, aby byl vůči tomuto odolný, transakce budou pokračovat jako obvykle a finalizace se spustí, až bude problém vyřešen. pic.twitter.com/utAS0uAWpG
– superphiz.eth ️ (@superphiz) 11. května 2023
Je důležité zdůraznit, že blockchain se nezastavil. Během 3 epoch však došlo v konsensuální vrstvě k chybě podobné tomu, co je známé jako „únik nečinnosti“.
Zjednodušeně řečeno, blockchain se choval, jako by mnoho validátorů bylo offline.
Tak tomu sice nebylo, ale faktem je, že během tohoto období validátoři vydali omezený počet certifikátů:

Obrázek 1 – Epochy, ve kterých došlo k chybě konsensu na platformě Ethereum
Problém s používaným softwarem
Pro své fungování je blockchain Ethereum rozdělen do 2 pilířů: prováděcí vrstva, která umožňuje provádět transakce, a konsensuální vrstva, která zajišťuje konzistentnost bloků. Pro tyto dva pilíře mohou validátoři používat různý software nazývaný klienti.
Nadace Ethereum podporuje validátory, aby diverzifikovali klienty, které používají, aby v případě výskytu chyby blockchain nadále normálně fungoval.
Na obrázku níže vidíme, že software používaný pro vrstvu konsensu je správně diverzifikovaný, zatímco pro vrstvu provádění je až příliš dobře zastoupen klient Geth:

Obrázek 2 – Diverzita klientů používaných validátory na platformě Ethereum
Vzhledem k tomu, že žádného klienta konsensuální vrstvy nepoužívá více než 50 % validátorů, nemohla včerejší chyba způsobit vypnutí nebo rozvětvení blockchainu. Tedy za předpokladu, že problém skutečně vznikl v některém z používaných softwarových balíčků.
V takovém případě vývojář jádra Superphiz upozorňuje, že tomuto problému s únikem neaktivity by se dalo dokonce předejít, kdyby žádný software nepředstavoval více než 33 % validátorů:
Kdyby klient konsensuální vrstvy způsobil ztrátu finality:
* Odvrátili jsme rozštěpení tím, že jsme neměli klienta s nadpoloviční většinou.
* Ztrátě konečnosti jsme se mohli zcela vyhnout, pokud by žádný klient neměl více než 33 %.
Jsem hrdý na naši práci na diverzitě, ale ještě jsme neskončili. https://t.co/TUtXnQu5hD
– superphiz.eth ️ (@superphiz) 11. května 2023
Terence Tsao ze své strany uvedl, že byl zjištěn problém s klientem Prysm, ačkoli v tuto chvíli nemůžeme říci, zda je zdrojem zastavení ověřování bloků:
Aktualizace od společnosti Prysm. Identifikovali jsme oblasti, kde by bylo možné zlepšit ukládání stavu do mezipaměti. S vylepšenou mezipamětí by měl uzel fungovat lépe během zhoršené doby jako dříve.
Vzhledem k tomu, že se řetězec stabilizoval, není jako staker / provozovatel uzlu v tuto chvíli potřeba žádná akce.
– terence.eth (@terencechain) 11. května 2023
V tuto chvíli je nejdůležitější, že se vše rychle vrátilo do normálu a během této epizody nedošlo k žádnému proříznutí validátorů. Ve skutečnosti se slashing používá k odčerpání části ukrytých ETH, když validátory nedělají svou práci správně.
Podrobnou zprávu o tom, co se stalo, by měl vývojový tým poskytnout v nejbližší době a my se v té době můžeme k těmto informacím vrátit.