Ethereum два года работал с эксплойтом, вызывающим отказ сети
Разработчики Ethereum Foundation раскрыли информацию об уязвимости, позволяющей провести DoS-атаку на блокчейн второй по капитализации криптовалюты.
A disclosure about the #Ethereum state problems, which we’ve been working on fixing for the past two years: https://t.co/GQBh0rFYKf
— M H (((Swende))) (@mhswende) May 18, 2021
Уязвимость обнаружили еще в марте 2019 года, но устранить ее удалось лишь с активацией хардфорка Berlin в апреле 2021 года.
По словам разработчиков, уязвимость была «общеизвестным секретом» — ранее ее публично раскрыли по ошибке. После апрельского обновления уровень угрозы снизился достаточно, чтобы рассказать о ней детально.
«Важно, чтобы сообщество могло понять причины изменений, негативно влияющих на пользовательский опыт, таких как повышение стоимости газа», — говорится в сообщении.
Разработчики объяснили, что состояние Ethereum фиксируется с помощью дерева хешей [Merkle Patricia Tree]. Каждый «лист» этого дерева — аккаунт в сети, поэтому с ростом блокчейна структура становится более плотной.
Между корневым хешем и счетами пользователей есть несколько «промежуточных» нод. Для обращения к конкретному адресу системе необходимо выполнить 8-9 операций.
Низкая стоимость этих транзакций и развитие сети создали риски DoS-атаки. Для ее реализации достаточно запустить поиск по несуществующим адресам.
Для решения этой проблемы разработчики изменили алгоритм расчета стоимости газа и интегрировали в клиент Geth механизм динамических снимков состояния [dynamic state snapshots]. Такие снимки представляют собой вторичную структуру данных для хранения состояния сети в формате плоских файлов.
С активацией Berlin эффективность атаки упала в 50 раз.
Напомним, в сентябре 2020 года разработчик Storj Брейдон Фуллер рассказал о серьезной уязвимости в программном обеспечении Bitcoin Core. Эксплойт позволял похищать средства и задерживать платежи.
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!