Перейти к содержимому
← Все статьи

Почему неуспешная Ethereum-транзакция всё равно списывает gas?

Неуспешная Ethereum-транзакция всё равно расходует gas, потому что валидаторы уже выполнили вычисления, прежде чем контракт вызвал revert или исчерпал лимит. Изменения состояния откатываются, но проделанную работу отменить нельзя. Пользователь платит за фактически использованный gas; неиспользованный остаток лимита возвращается, кроме сценария полного out-of-gas.

Вычислительная машина откатывает транзакцию, сохраняя израсходованное топливо

Неуспешная Ethereum-транзакция всё равно расходует gas, потому что валидаторы уже выполнили вычисления, прежде чем контракт вызвал revert или исчерпал лимит. Изменения состояния откатываются, но проделанную работу отменить нельзя. Пользователь платит за фактически использованный gas; неиспользованный остаток лимита возвращается, кроме сценария полного out-of-gas.

За какую работу платит отправитель?

Каждая инструкция EVM имеет стоимость: чтение и изменение storage, проверка подписи, создание событий и внешние вызовы. Узлы повторяют вычисление, чтобы согласиться с результатом. Комиссия делает массовый запуск бесполезных или бесконечных программ дорогим и тем самым защищает ограниченное пространство блока.

Что именно отменяет revert?

Revert возвращает контракты и балансы к состоянию до вызова, но nonce внешней транзакции и комиссия остаются. Ethereum.org прямо указывает, что gas fee платится независимо от успеха. Если контракт сам вызвал revert после части логики, пользователь оплачивает выполненные шаги до остановки.

Чем gas limit отличается от фактической комиссии?

Gas limit — максимум единиц работы, который отправитель разрешает. Если операция закончилась раньше, неиспользованный запас не оплачивается; итог равен gas used, умноженному на эффективную цену. При out-of-gas исполнение упирается в лимит, откатывается и обычно потребляет весь предоставленный объём.

Где ограничения и риски?

Simulation может пройти на старом состоянии, а реальная транзакция — упасть после изменения цены, allowance или nonce. Неверный slippage, закрытый mint и front-running тоже вызывают revert. Перед дорогим вызовом полезны свежая симуляция, понятная причина ошибки и разумный limit; простое увеличение gas не исправляет логическую ошибку контракта.

Какие ключевые выводы?

  • Revert отменяет состояние, но не вычислительную работу.
  • Gas защищает сеть от спама и бесконечных вычислений.
  • Неиспользованный gas limit обычно не списывается.
  • Out-of-gas способен израсходовать весь выделенный лимит.
  • Simulation снижает риск, но не гарантирует успех в будущем блоке.

Источники

  • Ethereum gas
  • EVM revert
  • Transaction failure

Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Торговля на криптовалютном рынке связана с риском потери средств; результаты на исторических данных не гарантируют результатов в будущем.

Читайте дальше

Что такое разблокировка токенов и почему цена реагирует на неё ещё до самой даты?

Проверьте стратегию на своих данных

ACARO - терминал, который исполняет стратегию на вашем собственном биржевом счёте. Подбор параметров и бэктест на истории входят в подписку.

Смотреть тарифы