Блокчейн Ethereum разделился на две конкурирующих цепи. Об этом в 17:17 по Москве объявил один из ведущих разработчиков криптовалюты Мартин Холст Свенде.
A consensus bug hit #ethereum mainnet today, exploiting the consensus-bug that was fixed in geth v1.10.8. Fortunately, most miners were already updated, and the correct chain is also the longest (canon)
PSA: Update to v1.10.8!
— M H (((Swende))) (@mhswende) August 27, 2021
По его словам, причиной разделения стала эксплуатация бага, о котором было объявлено ранее. Во вторник разработчики самого популярного Ethereum-клиента Geth, используемого 75% нод сети, выпустили срочный фикс и призвали всех операторов к скорейшему переходу на актуальную версию ПО. Разработчики не стали раскрывать детали уязвимости, чтобы дать возможность обновиться всем пользователям, однако хакер, зная о наличии проблемы, смог обнаружить ее. На это, в частности, указывает сообщение Свенде:
«Думаю, на этом заканчивается наш эксперимент по публичному раскрытию срочных исправлений».
В ноябре 2020 года в Geth тоже был исправлен серьезный баг, но тогда разработчики не стали акцентировать на нем внимание, чтобы не привлекать потенциальных злоумышленников. В результате многие операторы нод проигнорировали обновление, что впоследствии привело к масштабному сбою в работе сети Ethereum. Разработчиков тогда обвинили в том, что сбой стал результатом их действий, поскольку они не подчеркнули критичность обновления.
«В предыдущий раз, когда мы выпустили срочное обновление, люди разозлились на нас, потому что мы не объявили об этом. На этот раз мы решили поступить иначе. Посмотрим, какой вариант сработает лучше», — писал разработчик Geth Петер Силадьи вместе с анонсом новой версии.
Свенде также отмечает, что в последнем случае большинство майнеров использовало актуальную версию ПО, а «правильная» цепь оказалась длиннейшей, то есть пользователи по правилам консенсуса должны были продолжить следовать за ней.
Тем не менее, данные Ethernodes свидетельствуют о том, что на момент сегодняшнего сбоя 73% нод Geth использовало старое ПО. Другими словами, уязвимость по-прежнему затрагивает свыше половины всех существующих нод Ethereum. До стабилизации ситуации пользователям не рекомендуют совершать никаких транзакций, причем проблема затрагивает все сети, совместимые с виртуальной машиной Ethereum (EVM).
«Теперь, когда эксплойт проник в реальную сеть, он может быть воспроизведен в других сетях, таких как Polygon, BSC, xDAI и Görli, — пишет ведущий разработчик DeFi-проекта yearn.finance под ником banteg. – Будьте бдительны. Постарайтесь не совершать никаких экономически значимых транзакций».
UPD: Операторы нод Binance Smart Chain тоже сообщают о проблемах с синхронизацией. Это может быть свидетельством того, что баг уже был запущен в еще одной сети.
Основатель yearn.finance Андре Кронье поясняет, что сейчас допустимо осуществлять транзакции только в том случае, если пользователь уверен, что он находится в цепи, поддерживаемой последней версией Geth.
Также проблема наблюдается в старых версиях клиента Erigon (ранее Turbo-Geth).
Разработчик Тим Бейко назвал три майнинг-пула Ethereum, которые продолжили добавлять блоки в неправильную цепь. Это Flexpool.io, BTC.com и Binance Pool.
Update on this: 3 pools seem to be have been mining on the wrong Geth version: @flexpool_io (who reported the issue 🙏), @btccom_official and @binance.
We are getting in touch with the two latter ones. https://t.co/Sfq8YJywF7
— Tim Beiko | timbeiko.eth (@TimBeiko) August 27, 2021
Аналитик Игорь Игамбердиев подтвердил факт использования бага в сети Binance Smart Chain и выразил уверенность в том, что в сети Polygon он не применялся.
And this is BSC exploit txhttps://t.co/dlcw6VYbsR pic.twitter.com/WlUCrqkEIv
— Igor Igamberdiev (@FrankResearcher) August 27, 2021