Инцидент после Fusaka: Как сбой в клиенте Prysm привел к снижению валидаторской активности Ethereum на 25%

Вскоре после активации Fusaka в популярном клиенте по консенсусу Prysm произошел сбой, который затронул часть валидаторов сети Ethereum.

В версии клиента v7.0.0 была выявлена ошибка, из-за которой при обработке устаревших подтверждений генерировались неактуальные состояния блокчейна.

Как сообщил ведущий разработчик Теренс Цао, это нарушило нормальное функционирование узлов, использующих данный клиент. Разработчики предложили временное решение, чтобы отключить проблемную функцию.

Тем не менее, на эпохе 411 448 ключевые показатели сети резко снизились. Лишь 75% узлов подписывали актуальные заголовки блоков, а уровень участия в консенсусе упал до 74,7%. Ethereum оказался на грани серьезного сбоя, поскольку до полной остановки финализации блоков оставалось менее девяти процентных пунктов.

На данный момент (эпоха 411 760) работа сети стабилизировалась. Показатели почти вернулись к предыдущее уровню:

Перед инцидентом эти значения стабильно превышали 99%.

Снижение участия в консенсусе примерно соответствует доле валидаторов, использующих клиент Prysm. На 3 декабря этот показатель составлял 22,71%, а сейчас — 15,65%.

Согласно правилам консенсуса Ethereum, сеть теряет финализацию, если участие валидаторов в голосовании оказывается ниже критической отметки — двух третей от общего застейканного эфира.

В таком состоянии новые блоки могут создаваться, но цепочка перестает быть необратимо утвержденной, что увеличивает риск реорганизации истории транзакций. Потеря финализации привела бы к каскадному сбою во всей экосистеме. Возможные последствия могут быть серьезными.

Такой сценарий не является гипотетическим. В мае 2023 года Ethereum уже сталкивался с проблемами финализации — дважды за один день. Причиной тогда стали ошибки в обработке данных в клиентах Prysm и Teku.

Текущий инцидент выглядит относительно локальным, но исторически риск был значительно выше. Осенью 2021 года Prysm контролировал более 66% узлов, и сбой в нем мог бы парализовать всю сеть.

К январю 2022 года его доля возросла до 68,1%, что оставляло сеть в уязвимом положении.

Несмотря на некоторые улучшения, Ethereum пока далек от безопасного распределения клиентов. Критический порог в 33% для одного клиента считается важным. На данный момент ведущую позицию занимает Lighthouse с долей 52,55%.

«Мы избежали катастрофы лишь благодаря удаче. Если бы ошибка произошла в Lighthouse, сеть могла бы потерять финализацию», — прокомментировал эксперт по Ethereum Энтони Сассано.

Также стоит напомнить, что в начале сентября сбой произошел в работе клиента Reth от Paradigm, что привело к остановке синхронизации узлов, использующих данное ПО.