В сообществе Ethereum идет обсуждение методов раскрытия критических уязвимостей, после того как на этой неделе в сети криптовалюты произошел «неанонсированный хард форк», временно нарушивший работу критически значимых сервисов.
Согласно техническому описанию произошедшего в блоге Ethereum Foundation, вектор DoS-атаки был намеренно активирован пользователем в рамках тестирования предполагаемой уязвимости, что привело к возникновению побочной цепи на 30 блоков.
Разработчики клиента Geth, используемого большинством нод Ethereum и содержавшего уязвимость, исправили проблему в начале октября, однако она продолжает присутствовать в более ранних версиях ПО. Теперь разработчики пытаются переосмыслить подход к раскрытию уязвимостей, чтобы избежать подобных ситуаций в дальнейшем.
Обычно в ПО с открытым кодом принято «своевременно уведомлять тех, кого затрагивает уязвимость», заявил основатель Summa Джеймс Прествич в разговоре с CoinDesk. Другими словами, Geth должны были уведомить пользователей о возможных затруднениях, пояснил он.
Тем не менее, при работе с блокчейн-сетями такое раскрытие уязвимостей может привести к неблагоприятным последствиям для других пользователей, так как криптовалюты представляют собой механизмы финансовых расчетов.
В пятницу в ходе конференц-звонка ведущих разработчиков Ethereum Мика Золту и глава команды Geth Петер Силадьи выступили против создания списка уведомлений о критических уязвимостях. Золту заявил, что такой список станет причиной неравных условий для проектов, а Силадьи отметил, что любое раскрытие уязвимости подвергает систему риску.
Так, предварительное раскрытие бага сервису Infura, предоставляющему инфраструктуру для множества проектов на блокчейне Ethereum, позволило бы ему получить необоснованное преимущество перед конкурентами. Кроме того, такая информация может попасть к злоумышленникам.
Силадьи считает, что в дальнейшем разработчикам следует придерживаться действующего подхода, то есть не распространять информацию о багах в консенсусе. При этом он признал, что Geth следовало уведомить пользователей о наличии уязвимости в более ранних версиях клиента.
«Раскрытие уязвимостей – это сложная тема. В приоритете должна оставаться безопасность пользователей», – добавил Прествич.