Разработчики Ethereum отложили обновление Glamsterdam на тестовой сети Hoodi после того, как исследователи из компании ChainSecurity выявили серьёзные уязвимости. Проблема касается двух предложений — EIP-7037 и EIP-7038, которые меняют правила расходования комиссий в блокчейне и могут ослабить защиту от целого класса атак.
Что угрожает контрактам
Суть проблемы в том, что при новых правилах комиссии могут быть возвращены контракту даже после того, как операция не удалась. Это позволит коду продолжить работу в ситуациях, когда ранее он остановился бы. Смарт-контракты часто полагаются на контроль за количеством оставшихся комиссий как на механизм безопасности.
Исследователи предупредили, что Glamsterdam может открыть дверь для так называемых атак с недостаточной комиссией. В таких атаках злоумышленник намеренно выделяет мало комиссий, чтобы легитимная операция не прошла. После обновления контракт может записать неудачную операцию, а затем оказать её невозможно повторить — например, заблокировав право пользователя на повторную попытку.
ChainSecurity выявила 13 реальных примеров смарт-контрактов, которые потенциально подвергаются риску, и координирует раскрытие информации с их разработчиками.
Сроки и дальнейшие шаги
Обновление было запланировано на Hoodi на 26 октября, но отложено на неопределённый срок. Ethereum Foundation первоначально рассматривала внедрение Glamsterdam в основную сеть в начале декабря, но теперь сроки неясны — всё зависит от результатов тестирования.
ChainSecurity рекомендовала разработчикам срочно проверить свои контракты, хотя саму компания не раскрыла детали об уязвимых проектах. Исследователи также уточнили, что не все защиты от недостатка комиссий сломаются: некоторые по-прежнему будут работать, но потребуют переосмысления с учётом новых правил.