ru
Назад к списку

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

source-logo  forklog.com 19 Май 2021 08:48, UTC

Разработчики 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.com