Ethereum откладывает форк Glamsterdam в Hoodi из-за рисков EIP-8037 и EIP-8038
cryptonewsФорк Glamsterdam в тестовой сети Hoodi Ethereum был отложен после того, как ChainSecurity отметила риски совместимости в EIP-8037 и EIP-8038.
Основные разработчики сейчас проверяют, нужны ли изменения в спецификации обновления. ChainSecurity выявила 13 реальных случаев.
Почему форк Hoodi был отложен
Исследователь Ethereum Тони Верштеттер поделился обновлением в X после того, как основные разработчики приостановили развертывание на прошлой неделе. Форк Glamsterdam планировался в Hoodi как этап тестирования.
Задержка последовала за отчетом ChainSecurity о том, как EIP-8037 взаимодействует с определенными контрактами. Разработчики провели выходные, оценивая масштаб проблемы, и Верштеттер сказал, что теперь картина хорошо понятна.
Контракты, которые жестко кодируют пересылаемый газ, уже были известны как подверженные изменениям цен. Например, запись состояния через SSTORE становится дороже по новым правилам.
Однако последняя находка связана с другой проблемой. Некоторые шаблоны кода полагаются на инвариант, который нарушает EIP-8037.
В своем посте в X Верштеттер объяснил новую проблему. Он написал: «Уже потраченный газ может вернуться в середине транзакции, поэтому gasleft() может увеличиться».
Контракты, которые предполагают, что использование газа только уменьшается, могут вести себя неожиданно. В результате код, построенный на прежнем поведении газа, может выйти из строя после активации изменения.
Случаи ChainSecurity взяты из реальных контрактов, а не из теоретических примеров. Поэтому разработчики рассматривают эти находки как практическую проблему совместимости для обновления. Соответственно, форк Glamsterdam остается на паузе, пока продолжается проверка.
Три проблемы с газом и следующие шаги
Верштеттер описал две проблемы, связанные с нарушенным инвариантом. В первой счетчик газа до и после переполняется, и транзакция откатывается.
Во второй неудачный подвызов возвращает газ, поэтому выполняется недостижимый путь. Транзакция выглядит успешной. Оба результата вызваны одним и тем же изменением в том, как газ возвращается во время транзакции.
Связанная, но отдельная проблема затрагивает измерение газа. Контракты, которые сравнивают GAS до и после вызова, могут занижать использование.
Это происходит потому, что резервуар газа состояния не виден во время выполнения. Поэтому инструменты и контракты, отслеживающие газ таким образом, могут сообщать цифры ниже фактического использования.
Верштеттер сказал, что задержка Hoodi «дала время, но не решит проблему». Задержка форка Glamsterdam дала участникам дополнительное время для изучения каждого затронутого шаблона.
На этой неделе участники планируют внимательно изучить контракты и убедиться, что ни один случай не пропущен. Он написал: «Теперь нужно решить, как действовать дальше».
Решение может потребовать лишь координации между dapps, основными разработчиками, аудиторами и операторами узлов. В худшем случае потребуются изменения самой спецификации.
Верштеттер призвал разработчиков приложений и аудиторов «проверить свои контракты на проблемы с EIP-8037/EIP-8038 и сообщить о них». Он также попросил читателей поделиться постом с другими разработчиками приложений.
Данный контент предназначен исключительно для информационных и образовательных целей и не является инвестиционным советом, связанным с BTCC. BTCC прилагает все усилия, но не может гарантировать правдивость, точность или оригинальность вышеприведенного контента.