Баг в коде клиентов Ethereum сделал 13% нод непригодными для использования

Проблема с клиентами Parity-Ethereum и OpenEthereum может привести к еще большей централизации сети, что негативно скажется на безопасности блокчейна.

Код клиентов Parity-Ethereum и OpenEthereum версий 2.7 и выше содержит ошибку, которая не позволяет нодам под управлением этого ПО синхронизироваться с последним добытым в сети блоком. Как передает Coindesk, критический баг фактически сделал 13% нод блокчейна Ethereum непригодными для использования, что в очередной раз указывает на одну из основных проблем сети — на централизацию клиентов.

Читайте Bloomchain через любимые соцсети: Telegram, VKFB

Проблему можно решить, если запустить повторную синхронизацию нод на более ранних версиях программного обеспечения. Однако, по словам разработчика Лиама Аарона, для «некоторых конфигураций» нод синхронизация может занять несколько месяцев. 

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

Примером того, как многообразие клиентов позволяет защитить сеть от злонамеренной атаки, является так называемый «шанхайский инцидент» 2016 года. Тогда блокчейн Ethereum подверглась массированной DDoS-атаке — неизвестный использовал недавно обнаруженную уязвимость в языке программирования Go, на котором реализован клиент от Geth, чтобы замедлить транзакции. В результате клиенты Geth моментально отключились от сети, тогда как ноды под управлением Parity-Ethereum продолжали работать.

Читайте также: Parity переведет свой клиент для Ethereum на модель обслуживания DAO

Однако сейчас сеть является слишком централизованной, поэтому такая защита может и не сработать. Практически 80% узлов работают под управлением вышеупомянутого клиента Geth, который поддерживает организация Ethereum Foundation. Такая зависимость считается возможным вектором атаки — во многом именно поэтому разработчикам пришлось перенести запланированный на июль хардфорк Berlin.

«Основная причина [отложить хардфорк] заключается в том, чтобы уменьшить зависимость от Geth и избежать ситуации, в которой отказ одного клиента повредит всю сеть. В настоящее время на Geth ложится слишком большая нагрузка, так как безотказность его работы слишком важна», — сказал тогда один из разработчиков Алексей Ахунов.

Предполагалось, что до осени другие менее крупные клиенты получат более широкое распространение в сети. Однако за два месяца ситуация не изменилась — Geth по-прежнему доминирует над остальными клиентами. 

Интересно, что, по информации Coindesk, клиент Parity-Ethereum не соответствует текущим спецификациям сети. Более того, для разработчиков это не является секретом. Так, например, менеджер OpenEthereum Марсело Руис де Олана в разговоре с изданием сказал, что его команда обнаружила в клиенте как неразрешимые, так и «очень серьезные проблемы, влияющие на использование памяти и диска». 

← Назад Поделиться: