Ethereum má na svém kontě další split – tentokrát kvůli bugu v kódu kategorizovaném jako “high severity issue (závažný problém)“. Postiženi jsou uživatelé využívající klienta Geth (Go Ethereum). Dle vyjádření Go Etherea na Githubu chyba v kódu způsobila, že node běžící na staré verzi (před opravou) nemůže zapisovat nové bloky do chainu. Chyba dostala označení CVE-2021-39137.
Na opravu chyby vydali vývojáři Geth opravu, tzv. hotfix, s označením Hades Gamma (verze v1.10.8). Oprava byla publikována v úterý 24. 8. v 9:08. Go Ethereum ji publikovalo též na svém twitteru:
Go Ethereum přitom nespecifikovalo podstatu hrozby, a to záměrně. Cílem bylo zamezení možného útoku a poskytnutí dostatečného času uživatelům pro aktualizaci klienta.
Tato chyba byla objevena 18. srpna software developerem Guido Wrankenem ze společnosti The Telos Foundation, která prováděla audit verze Ethereum Virtual Machine.
Dle ethernodes.org používá Geth až 74,5 % uživatelů. Všichni tito uživatelé byli okamžitě pobídnuti ke stažení aktualizace.
Trochu zarážející je, že v době psaní článku používá verzi 1.10.8 pouze necelých 45 % uživatelů. Zbylá procenta využívají staršího klienta, který má bug neopravený.
Používaní neopraveného klienta má za následek zapisování transakcí na síť využívající staré verze Gethu – jinými slovy, na fork. Díky tomu hrozí nebezpečí dvojité útraty, kdy se jednotky v určitých případech dají utratit dvakrát. To může útočník zneužít například tak, že provede transakci z jednoho chainu, hodnota bilance je ale následně přepsána z vedlejšího.
Pomalé tempo aktualizace uživatelů způsobilo split Etherea
Vydaný hotfix funguje pouze na aktualizovaných těžebních uzlech. Dle vyjádření vývojářů na twitteru ohrožuje bug veškeré verze Gethu podporující London hard fork, protože je chyba starší než tento fork.
Kvůli pomalé reakci uživatelů při stahování hotfixů můžeme u Etherea od včerejšího dne pozorovat split. Díky povaze hotfixu a bugu vznikl fork Etherea, do kterého jsou zapisovány transakce ze starého Gethu.
Andre Cronje, zakladatel Yearn.Finance, na svém profilu napsal, že by lidé neměli provádět žádné transakce, pokud si nejsou stoprocentně jistí plně funkčním a aktualizovaným Gethem. Podle Andreho je v tuto chvíli nejlepším řešením procházka na čerstvém vzduchu.
https://twitter.com/AndreCronjeTech/status/1431259003150012419
Splitu zásadně přispěly 3 velké těžební pooly, které svou aktualizaci neprovedly včas a těžily tak na nesprávné verzi Gethu:
- Flexpool,
- Binance pool, a
- BTC.com
Tohoto problému si všiml Tim Beiko, který to oznámil na svém twitteru. Flexpool, dle vyjádření Tima, také oznámil tento problém a proto ho ihned samostatně začal řešit. V 19:06 hodin včera večer zároveň informoval o tom, že BTC.com již klienta aktualizoval a že Binance pool je stále ještě v procesu aktualizace. Je zajímavé, že velká burza jako Binance stále využívá starého klienta i pár dní po vydání hotfixu.
Objevení bugu na sidechainech
Jelikož je bug zakomponován v základu EVM, je možné, že budou ovlivněny i všechny ostatní chainy kompatibilní s Ethereum Virtual Machine. Na BNB Smart Chain a Huobi ECO Chain byl bug rovněž již objeven.
Na Polygonu podle dostupných informací problémy pozorovány nebyly. Dle vyjádření Polygonu si většina validátorů aktualizovala veškeré Geth klienty, moduly jako Heimdall a Bor využívají tím pádem nejnovější verzi.
Polygon však celou síť stále monitoruje a nabádá všechny své uživatele pro instalaci hotfixu jako “security update”.
Přístupy Gethu k oznamování hotfixů
Split Etherea kvůli Gethu v posledních dnech nebyl prvním případem, kdy k něčemu takovému došlo. Podobné situace jsme mohli být svědky v říjnu roku 2020, kdy byl vydán fix Post Mortem (v1.9.17). Geth tou dobou veřejnost o vydání informoval velmi chabě a proto se našlo větší množství validátorů využívajících v té době starého klienta. Kvůli tomu rovněž vznikl dočasný chain split.
Vypadá to, že se Geth z chyby poučil, a při současné situaci se rozhodl veřejnost tlačit do aktualizací ihned po vydání hotfixu. Zároveň se jim povedlo vyhnout bližšímu popisu události. Uživatelé si naštěstí stahují hotfix v rychlejším tempu, než v minulém roce.
Péter Szilágyi na svém profilu napsal, že se nyní rozhodli pro odlišný přístup, který očividně zafungoval.
Ačkoliv byla část uzlů odkloněna od hlavní sítě, podle posledních informací je chain forku kratší než mainnet a síť je tudíž stabilní.
Dle dalších vyjádření na twitteru developerů Gethu oznámení veřejnosti funguje a chain Etherea u nejnovějšího Gethu je skutečně nejdelší. Oproti starému chainu ale nemá zas tak velký náskok – stále si však klienta stihla většina těžařů aktualizovat včas.
Ethereum momentálně funguje normálně a nezbývá než čekat na zbylé uživatele, včetně velkých společností jako Binance, až si své klienty zaktualizují a transakce budou zapisovány do správného chainu.
Diskuze (0 komentářů)
Tento článek zatím nikdo neokomentoval. Přihlašte se a buďte první! Napište svůj názor a zahajte diskuzi.