Разработчики 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. Эксплойт позволял похищать средства и задерживать платежи.