Как устроены комиссии за газ Ethereum: базовая комиссия, приоритетная комиссия и лимит газа
Разберитесь, что означают единицы газа, лимит газа, базовая и приоритетная комиссии, а также максимальная комиссия, и рассчитайте фактическую стоимость транзакции в Ethereum.
В этом руководствеГаз измеряет вычисления, а не сумму перевода
Краткое резюме
Комиссия за газ в Ethereum рассчитывается как фактически использованный транзакцией объём газа, умноженный на эффективную цену газа в блоке, куда она включена. Протокол задаёт базовую комиссию и сжигает её; приоритетная комиссия может достаться валидатору. Максимальная комиссия — это предел цены, а не обязательно та цена, которую вы заплатите.
Газ измеряет вычисления, а не сумму перевода
В Ethereum газ — единица измерения вычислений, необходимых EVM для обработки транзакции. Обычный перевод ETH требует сравнительно мало операций; перевод токена или выполнение нескольких условий смарт-контракта может потребовать больше. Поэтому две транзакции с одинаковой суммой ETH могут использовать разный объём газа, если выполняют разную работу.
Единицы газа показывают объём работы. Цена газа показывает, сколько ETH вы предлагаете за одну единицу. Их произведение и есть комиссия. Лимит газа задаёт максимальное число единиц, которое может израсходовать транзакция, а maxFeePerGas ограничивает цену одной единицы. Это разные поля, а не взаимозаменяемые варианты одной «максимальной комиссии».
Здесь рассматривается обычная транзакция EIP-1559 в основной сети Ethereum. В других блокчейнах и сетях второго уровня могут быть иные модели комиссий, активы для оплаты и подписи полей. Не переносите термины Ethereum на каждую сеть автоматически. Руководство Ethereum.org по газу и описание транзакций определяют эти поля.
Использование газа зависит от операций транзакции
EVM назначает стоимость газа вычислениям и изменениям состояния. Вызов контракта может включать выполнение функции, чтение или запись хранилища и запись событий — дополнительные операции, не нужные простому переводу. Чем больше операций или длиннее путь выполнения, тем больше газа может потребоваться. Использованный газ не рассчитывается умножением суммы отправляемого ETH или рыночной цены токена.
Перевод ETH, перевод токена и вызов dApp выполняют разные операции. Вызовы контрактов могут запускать дополнительные функции и читать или менять данные в хранилище, поэтому для них может потребоваться больше газа, чем для простого перевода. В квитанции включённой транзакции указано фактически использованное количество газа.
Ethereum.org приводит 21 000 gas как пример стандартного перевода ETH. Это ориентир для простого перевода, а не универсальный лимит для вызовов контрактов: нужный объём работы зависит от выполняемых функций и обращений к хранилищу.
Сетевой газ также отличается от комиссии сервиса за вывод. Биржа может добавить операционный сбор или применить собственный тариф. Ончейн-газ оплачивает вычисления, которые обрабатывает сеть. Если экран вывода показывает одну сумму, проверьте, объединены ли в ней комиссия платформы и сетевые расходы.
Лимит газа и использованный газ — разные значения
Лимит газа (gasLimit) — максимальное число единиц газа, которое разрешено израсходовать транзакции. Использованный газ (gasUsed) — объём, фактически потраченный к завершению выполнения. Увеличение лимита не означает автоматическую оплату каждой единицы в нём. Для включённой транзакции комиссия рассчитывается по фактическому расходу и эффективной цене газа; неиспользованные единицы лимита не расходуются.
Если сама транзакция исчерпает газ во время выполнения, весь лимит газа будет израсходован и транзакция завершится ошибкой. Изменения состояния будут отменены, но вычисления всё равно обойдутся в комиссию. Более высокий лимит позволяет выполнить больше работы, но повышает максимальные возможные расходы на газ: gasLimit × maxFeePerGas. Фактическое списание по-прежнему зависит от использованного газа и эффективной цены.
Лимит газа — это потолок, а не прогноз фактического расхода. Он не является ценой единицы газа, и повышение цены не восполнит недостаток единиц. Если вы не понимаете, что выполняет вызов, изучите официальные рекомендации кошелька или приложения, а не меняйте лимит наугад.
Базовая комиссия меняется вместе со спросом на место в блоке
В транзакции EIP-1559 базовая комиссия — установленная протоколом цена единицы газа для блока. Максимальная комиссия транзакции должна покрывать базовую комиссию блока, в который она будет включена. Протокол корректирует базовую комиссию от блока к блоку в зависимости от того, насколько использованный в предыдущем блоке газ отклонялся от целевого уровня. Она может расти или снижаться и не является постоянным тарифом.
Часть комиссии, соответствующая базовой комиссии за фактически использованный газ, сжигается. Валидаторы не получают её как чаевые. Базовая комиссия меняется от блока к блоку, поэтому ожидающая транзакция может попасть в блок с другой базовой комиссией, чем в момент её отправки.
Gwei — малая единица ETH: 1 gwei равен 0,000000001 ETH. Более высокая цена газа увеличивает стоимость в ETH даже при неизменном расходе газа. Больший расход газа увеличивает стоимость даже при неизменной цене единицы. Оба фактора меняют комиссию в ETH независимо от долларовой цены ETH.
Приоритетная комиссия — чаевые, которые могут ускорить включение
Приоритетная комиссия — чаевые за единицу газа, предлагаемые валидатору, включающему транзакцию. Пользователи конкурируют за ограниченное место в блоке, поэтому при прочих равных более крупные чаевые могут сделать транзакцию привлекательнее. Они показывают срочность, но не гарантируют включение в конкретный блок или к определённому времени.
Высокое значение priority fee на экране не означает, что транзакции нужно больше единиц газа. Приоритетная комиссия меняет цену единицы, а лимит газа ограничивает допустимый объём работы. Сложный вызов контракта может завершиться ошибкой из-за нехватки газа даже с высокими чаевыми. И наоборот, достаточного числа единиц газа мало, если ценовой предел не покрывает базовую комиссию блока.
При выборе транзакций валидаторы учитывают занятость блока и другие условия. Базовая комиссия и доступное место в блоке меняются со временем, поэтому большие чаевые не гарантируют включение к определённому времени. В спецификации EIP-1559 базовая и приоритетная комиссии выполняют разные функции, а их совокупная эффективная цена ограничена максимальной комиссией.
Максимальная комиссия — предел цены, а не фактическая цена
maxFeePerGas — наибольшая цена одной единицы газа, которую вы готовы покрыть. maxPriorityFeePerGas — максимальные чаевые за единицу. При включении транзакции эффективная цена складывается из базовой комиссии и той части чаевых, которая укладывается в оба ограничения. Применённые чаевые ограничены меньшим из значений maxPriorityFeePerGas и maxFeePerGas - baseFee, поэтому эффективная цена не превышает максимальную комиссию.
Например, максимальная комиссия равна 30 gwei, максимальные чаевые — 2 gwei, а базовая комиссия блока — 18 gwei. Возможные чаевые составят 2 gwei, а эффективная цена — 20 gwei. Транзакция не заплатит автоматически 30 gwei только потому, что это установленный максимум. Если базовая комиссия вырастет до 31 gwei, лимита в 30 gwei не хватит для включения в этот блок.
По мере приближения базовой комиссии к максимальной для чаевых остаётся меньше места. Даже при лимите чаевых в 5 gwei, если разница maxFeePerGas - baseFee составляет всего 1 gwei, применённые чаевые не превысят 1 gwei. Сопоставляйте оба предела с текущей базовой комиссией.

Разберём пример расчёта комиссии
Следующие значения условны и показывают только арифметику. Предположим, лимит газа транзакции равен 30 000 единиц, использовано 24 000 единиц, базовая комиссия блока — 18 gwei, максимальные чаевые — 2 gwei, а максимальная комиссия — 30 gwei. Применённые чаевые: min(2, 30 - 18) = 2 gwei, поэтому эффективная цена равна 18 + 2 = 20 gwei.
Фактическая комиссия за газ: 24 000 × 20 = 480 000 gwei. Поскольку 1 ETH равен 1 000 000 000 gwei, это 0,00048 ETH. Часть базовой комиссии: 24 000 × 18 = 432 000 gwei, или 0,000432 ETH. Чаевые: 24 000 × 2 = 48 000 gwei, или 0,000048 ETH. Вместе эти части дают фактическую комиссию 0,00048 ETH.
Произведение полного лимита газа и максимальной цены единицы — 30 000 × 30 = 900 000 gwei, или 0,0009 ETH, — это верхняя граница стоимости газа при таких настройках, если полностью использовать и лимит, и максимальную цену единицы. В нашем примере это не фактическая комиссия. ETH, отправляемый получателю, оплачивается отдельно от газа. Не считайте этот предел фиксированным списанием или комиссию процентом от перевода. Это учебные числа, а не текущая котировка.
Неудачная транзакция всё равно может расходовать газ
Не считайте, что сообщение «ошибка» в кошельке означает возврат комиссии за газ. Если транзакция включена в блок и выполнение в EVM началось, а затем откатилось, изменения состояния могут быть отменены, но за использованный газ всё равно взимается комиссия. Если сама транзакция исчерпает газ во время выполнения, будет израсходован весь лимит газа. Вычисления состоялись, даже если желаемый результат не получен.
Ситуация, когда транзакция не проходит проверку до включения в блок, отличается. Например, перевод ETH, отправленный с лимитом ниже необходимого, может быть отклонён до попадания в блок; в таком случае газ на выполнение не расходуется. «Отклонена до включения» и «включена, затем отменена во время выполнения» — разные состояния.
Проверьте по хэшу транзакции её статус, использованный газ, эффективную цену газа и результат выполнения. Краткого сообщения об ошибке в кошельке может быть недостаточно для определения причины. Ethereum.org также отличает отклонение при проверке до включения от исчерпания газа во время выполнения.
Отдельно проверяйте лимит, цену и сумму перевода
Перед подписью проверьте сеть и выясните, является ли транзакция простым переводом или вызовом контракта. Кошелёк может показывать оценку комиссии, лимит газа, оценку базовой комиссии, предел приоритетной комиссии, предел максимальной комиссии и отправляемую сумму ETH или токенов. Это разные значения. Если на экране указана только максимальная стоимость газа, откройте подробности и выясните, какое ограничение имеется в виду, вместо того чтобы считать эту сумму гарантированным списанием.
Автоматические оценки кошелька помогают отправлять транзакции без ручной настройки полей комиссии. Но они основаны на оценке состояния сети в данный момент и не гарантируют срок включения или итоговую стоимость. Низкий предел цены может заставить транзакцию ждать; бессистемное повышение лимита или чаевых может увеличить возможные расходы и не решить исходную проблему. Изучите текущие параметры и подписывайте транзакцию, только если понимаете её.
Здесь рассматривается стандартный путь транзакции в основной сети Ethereum. У сети второго уровня или другого блокчейна могут быть отдельные комиссии за данные, другой актив для оплаты или иные правила расчёта. Не применяйте формулу Ethereum к другой сети, не проверив её документацию. О сети назначения и адресе читайте в памятке по переводу криптовалюты, а об отдельном разрешении контракта на использование токенов — в руководстве по разрешениям токенов.
Частые вопросы
Q1Почему неудачная транзакция всё ещё может стоить ETH?
Если транзакция была включена в блок и выполнение началось, вычисления могут израсходовать газ, даже если изменения состояния отменились. Проверьте хэш транзакции, чтобы отличить ошибку выполнения от отклонения до включения.
Q2maxFeePerGas — это фактическая цена газа, которую показывает кошелёк?
Нет. Это предел цены за одну единицу. Эффективная цена складывается из базовой комиссии включившего транзакцию блока и чаевых, которые укладываются в ограничения, поэтому транзакция может обойтись дешевле максимума.
Q3За газ в основной сети Ethereum платят в ETH?
В стандартных транзакциях основной сети Ethereum газ оплачивается в эфире — нативном активе сети. Если кошелёк показывает другой токен или спонсора, проверьте, не используется ли отдельный механизм оплаты комиссий. В других сетях правила могут отличаться.
Источники и дополнительное чтение
Сообщить о проблеме
Мы подготовим письмо со ссылкой на эту статью. Mark получит сообщение только после отправки
Быстрая проверка
Прочитали руководство? Проверьте себя в 3 вопросах
Вопрос 01
Что означает gasLimit?
Выберите ответ, чтобы увидеть объяснение