Ethereum два года работал с эксплойтом, вызывающим отказ сети




Разработчики Ethereum Foundation раскрыли информацию об уязвимости, позволяющей провести DoS-атаку на блокчейн второй по капитализации криптовалюты.

A disclosure about the #Ethereum state problems, which we've been working on fixing for the past two years: Dodging a bullet: Ethereum State Problems

— 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
 
Верх Низ