Фонд Эфириума опубликовал информацию об уязвимости, устраненной в хардфорке Berlin. Уязвимость была обнаружена еще в 2019 году и могла привести к остановке блокчейна Эфириума.

Согласно статье в блоге Ethereum Foundation, два года назад была обнаружена уязвимость, которая представляла собой «серьезную угрозу для Эфириума» и была устранена после активации хардфорка Berlin в прошлом месяце. Угроза была «общеизвестным секретом», и разработчики утверждают, что однажды она была публично раскрыта по ошибке. После развертывания хардфорка Berlin Ethereum Foundation оценил уровень угрозы как достаточно низкий, что позволяет публично раскрыть информацию о ней:

«Важно, чтобы у сообщества была возможность понять причину изменений, которые негативно влияют на опыт использования сети, включая повышение цен на газ».

В статье разработчики объясняют, что состояние Ethereum формируется в дереве Патрисии-Меркла, концептуально сравнивая новые счета в сети Эфириума с новыми листьями дерева. С ростом сети Эфириума с октября 2016 года были увеличены расходы на газ для защиты от DDoS-атак, включая спорное предложение EIP-1884.

В 2019 году исследователи безопасности Эфириума Губерт Ритцдорф (Hubert Ritzdorf), Матиас Эгли (Matthias Egli) и Даниэль Перес (Daniel Perez) объединились, чтобы протестировать возможности уязвимости. Атака запускала случайные поисковые запросы в дереве, которые могут «привести к блокировкам в минутном диапазоне». В отчете исследователей говорится, что вызванные атакой задержки будут увеличиваться по мере роста состояния Эфириума, «что позволяет проводить эффективные DoS-атаки на сеть».

После того, как различные предложения разработчиков были отклонены в течение 2020 года, Виталик Бутерин объединился с Мартином Свенде (Martin Swende) для создания EIP-2929 и EIP-2930. Эти обновления подняли цены на газ «только для инструментов, к которым еще не было доступа», чтобы предотвратить атаку. EIP были развернуты в рамках обновления Berlin 15 апреля 2021 года. По оценкам разработчиков, обновление снизило эффективность уязвимости в 50 раз.

Напомним, что в апреле разработчик Bitcoin Core раскрыл информацию об уязвимости в более ранних версиях программного клиента. Ошибка была устранена в релизе Bitcoin Core 0.19.