Кратко:
- Предстоящее обновление Glamsterdam включает в себя ряд изменений стоимости газа. EIP-8037 и EIP-8038 (оба запланированы к включению) корректируют стоимость создания и доступа к состоянию таким образом, чтобы цены на газ точнее отражали реальную работу, требуемую для каждой операции.
- Повторное выполнение исторических транзакций мейннета по новому расписанию показывает, что небольшой набор смарт-контрактов опирается на предположения, которые меняются в новом расписании, что может привести к сбоям или ухудшению работы этих контрактов без превентивных обновлений.
- Большинство выявленных проблем устраняется увеличением лимита газа, и подавляющее большинство смарт-контрактов остаются затронутыми. Прямая связь с наиболее пострадавшими разработчиками уже ведется.
- Проверьте, будет ли затронут ваш смарт-контракт L1, на ethereum.github.io/repricing-impact/ и протестируйте исправления в тестнете Platåberget (glam-devnet-8).
Предыстория
Два EIP реализуют пересмотр цен, корректируя стоимость создания и доступа к состоянию так, чтобы цены на газ точнее отражали реальную работу, которую выполняет каждая операция:
- увеличивает и унифицирует стоимость создания нового состояния (новых аккаунтов, новых слотов хранения, развернутого байт-кода) и тарифицирует его отдельно, поддерживая устойчивый рост состояния по мере роста лимитов газа.
- увеличивает стоимость доступа к состоянию (SSTORE, SLOAD, доступ к холодным аккаунтам, EXTCODESIZE/EXTCODECOPY), чтобы отразить измеренную производительность этих операций при текущем размере состояния.
Цены на газ для операций с состоянием последний раз корректировались в хардфорке Berlin в 2021 году. С тех пор состояние Ethereum значительно выросло, и недавнее увеличение лимита газа ускорило этот рост.
Пересмотр цен на эти операции для отражения их реальной стоимости является обязательным условием для дальнейшего повышения лимита газа. Новое расписание получено из целевого показателя производительности, который поддерживает примерно 3-кратное увеличение базовой пропускной способности.
Влияние
Чтобы понять реальное влияние, мы воспроизвели исторические транзакции мейннета по новому расписанию и проанализировали, в чем именно возникают расхождения. Каждая транзакция попадает в один из четырех практических результатов:
- Без изменений: Идентичный результат и выполнение. Подавляющее большинство транзакций попадает сюда.
- Успешно с изменениями: Транзакция по-прежнему успешна, но объем использованного газа или другие детали отличаются.
- Исправляется увеличением лимита газа: Превышение лимита газа при исходном значении, но выполнение завершается при более высоком лимите. Исправляется увеличением лимита газа.
- Потенциально сломанный: Завершается ошибкой даже при значительно увеличенном лимите газа.
Контракты из последней группы обычно полагаются на захардкоженные предположения о газе, такие как фиксированные выплаты (transfer/send в Solidity на 2300 газа), захардкоженные значения газа в вызовах, логику с ветвлением по gasleft() или предварительно подписанные транзакции с фиксированными лимитами газа. Прямая связь с наиболее пострадавшими разработчиками уже ведется.
Действия по исправлению
Если вы поддерживаете контракты L1, вы можете проверить, может ли контракт пострадать, вставив адрес контракта в строку поиска затронутых контрактов здесь. Затронутые контракты отображаются с указанием их особых режимов сбоев и конкретного изменения цен, вызвавшего каждый из них.
- Если ваш контракт можно исправить увеличением лимита газа, обновите лимиты газа, предоставляемые вашим фронтендом, инфраструктурой или пользователями.
- Если ваш контракт потенциально сломан, изучите отмеченные места вызовов и протестируйте исправление. Тестовая сеть Platåberget (glam-devnet-8) работает по новому расписанию и уже доступна для тестирования.
- Даже если ваш контракт не указан в списке, проверьте весь код, в котором жестко заданы значения газа или используются ветвления по оставшемуся газу.
Если вы создаете кошельки, RPC-инфраструктуру или инструменты для нод, обновите оценку газа для нового расписания. Оба EIP требуют, чтобы eth_estimateGas и связанная обработка учитывали новые правила стоимости, а кэшированные константы газа будут занижать оценку и приводить к сбоям транзакций.
Если вы обычный пользователь, никаких действий предпринимать не нужно. Обновленные кошельки и инфраструктура справятся с этими изменениями.
Был составлен отчет о наиболее пострадавших объектах, и прямая работа с этими командами уже ведется.
Перспективы
Эти пересмотры цен существуют для обеспечения безопасного масштабирования Ethereum. Газ, отражающий реальные затраты ресурсов, позволяет лимитам газа в блоках продолжать расти без ухудшения работы сети для операторов нод. График пересмотра цен уже запущен в тестовых сетях devnet и будет развернут в публичных тестовых сетях перед активацией в мейннете. Командам настоятельно рекомендуется провести тестирование заранее.
Как и в случае с предыдущими обновлениями, об изменениях, влияющих на пользователей, будет заблаговременно сообщаться через этот блог и каналы сообщества. Вы также можете обратиться в Discord-сервер исследований и разработки Ethereum (канал evm-pricing) или в соответствующую группу в Telegram. Командам, тесно зависящим от дорожной карты протокола, рекомендуется следить за процессом ACD и ветками обсуждений для EIP-8037 и EIP-8038, где приветствуются любые вопросы.










