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

Журнал: Большие вопросы: Выжил бы Bitcoin при 10-летнем отключении электроэнергии?








