В клиенте Prysm сети Ethereum обнаружилась ошибка, из‑за которой участие в сети снизилось до 75%, а валидаторы потеряли 382 ETH. Сбой произошел из‑за исчерпания ресурсов узлов.
Компания Prysm сообщила: причина проблемы с валидацией узлов Ethereum, затронувшей ее клиент в начале месяца, — ошибка, появившаяся в тестовой сети за месяц до обновления Fusaka.
Разработчик Ethereum Теренс Цао в воскресенье опубликовал пост‑анализ инцидента с клиентом Prysm в основной сети Fusaka, который повлиял на работу сети 4 декабря.
В сообщении указано: узлы Prysm столкнулись с «исчерпанием ресурсов» при обработке аттестаций от несинхронизированных узлов. Это заставило Prysm повторно обрабатывать блоки прошлых эпох и пересчитывать ресурсоемкие переходы состояний, что существенно снизило производительность из‑за чрезмерной нагрузки.
Пост‑анализ показал: ошибка присутствовала в тестовых сетях за месяц до инцидента, но не срабатывала.
«Ошибка была внесена в Prysm PR 15965 и развернута в тестовых сетях за месяц до инцидента — без срабатывания триггера», — указано в отчете.
Тестовые сети предназначены для выявления ошибок, но не гарантируют их обнаружение.
В мае 2023 года — через месяц после хардфорка Shanghai — разработчики Ethereum столкнулись с проблемой: сеть временно потеряла финализацию транзакций примерно на 25 минут, а на следующий день — более чем на час. Затем блокчейн восстановился самостоятельно.
Prysm обновлен
Вместо использования текущего состояния головы цепочки Prysm регенерировал предыдущие состояния с нуля, создавая огромную вычислительную нагрузку.
Более 42 эпох сеть сталкивалась с 18,5% пропущенных слотов, участие снизилось до 75%, а валидаторы потеряли около 382 ETH в виде вознаграждений за аттестации.
Операторам узлов рекомендовали применить временное решение, пока разработчики работали над обновлением для клиентов Prysm.
Разнообразие клиентов спасло ситуацию
Инцидент мог быть гораздо серьезнее, если бы затронул доминирующий клиент консенсуса Ethereum — Lighthouse, отметили разработчики.
Prysm от Offchain Labs — второй по величине клиент Ethereum с долей 17,6%, согласно ClientDiversity.
«Разнообразие клиентов предотвратило заметное влияние на пользователей Ethereum. Клиент с долей более трети сети вызвал бы временную потерю финализации и больше пропущенных блоков», — подчеркнули эксперты.
Однако инцидент показал: Lighthouse опасно близок к порогу в две трети, при котором ошибка в одном клиенте может финализировать недействительный блокчейн.
Сейчас доля Lighthouse составляет 52,6% — ниже примерно 56% на момент инцидента.

Разработчики Ethereum настаивают на увеличении разнообразия клиентов. Источник: ClientDiversity.






" 











