Газ в сети Эфир Gas в Ethereum — это мера «весa» вычислений и операций в сети Ethereum. Каждая операция в EVM стоит определённое количество gas, а пользователь платит за фактически израсходованный gas в ETH.
Именно через газ (gas) протокол измеряет нагрузку на сеть и назначает комиссию: чем сложнее транзакция и чем выше спрос на блоки, тем больше ETH нужно заплатить.
Зачем в Ethereum нужен gas
В Ethereum одна и та же монета ETH используется и как:
- средство оплаты комиссий;
- стейк валидаторов в Proof-of-Stake;
- актив для DeFi и хранения стоимости.
Чтобы не привязывать «цену операции» к самой монете напрямую, вводится отдельная единица — gas:
- gas измеряет, сколько ресурсов требует операция (чтение/запись в storage, хеширование, вызовы контрактов и т.д.);
- gas price (цена за единицу gas) показывает, сколько ETH пользователь готов заплатить за единицу нагрузки;
- итоговая комиссия = gas_used × эффективная цена gas.
Такое разделение позволяет:
- удерживать формат комиссий стабильным, даже если курс ETH к фиату сильно меняется;
- тонко управлять лимитами блока и приоритетом транзакций;
- заставить отправителей «платить за сложность», защищая сеть от спама и бесконечных вычислений.
Подробнее о газе в других EVM-сетях см. Gas в блокчейнах и EVM-сетях.
Поля gas в транзакции Ethereum
Современная транзакция в Ethereum (тип 2 после EIP-1559) содержит несколько газовых параметров.
- gas limit
Максимальное количество gas, которое пользователь разрешает потратить на эту транзакцию. Если во время выполнения газ закончится, транзакция откатывается с ошибкой out-of-gas, но уже потраченный gas не возвращается.
- maxFeePerGas
Максимальная цена за единицу gas, которую готов заплатить пользователь, с учётом base fee и чаевых. Это «общий потолок» цены gas.
- maxPriorityFeePerGas
Максимальный размер чаевых (tip) валидатору за единицу gas. Чаевые определяют приоритет транзакции относительно других.
- gas price
В «legacy»-транзакциях типа 0 задавалась одна цена gas. После EIP-1559 она остаётся в старом формате для обратной совместимости, но современные кошельки используют maxFeePerGas / maxPriorityFeePerGas.
Часть полей заполняет кошелёк автоматически, подбирая значения под текущую загрузку сети.
Как работает EIP-1559: base fee и чаевые
После обновления London комиссия в Ethereum делится на две части:
- base fee (базовая комиссия)
Общая для всех транзакций в блоке. Задаётся протоколом и сжигается (burn), то есть выводится из обращения. Base fee автоматически подстраивается от блока к блоку:
- если блоки переполнены — base fee растёт;
- если блоки полупустые — base fee снижается.
- priority fee (чаевые валидатору)
Доплата валидатору за включение транзакции. Пользователь задаёт максимум через maxPriorityFeePerGas, а фактическая чаевая может быть ниже.
Связка полей:
- пользователь указывает maxFeePerGas и maxPriorityFeePerGas;
- протокол знает текущую base fee для блока;
- эффективная цена gas для транзакции:
effectiveGasPrice = baseFee + min(maxPriorityFeePerGas, maxFeePerGas - baseFee)
Важно:
- если maxFeePerGas сильно больше base fee, лишнее не списывается, а остаётся на балансе отправителя;
- пользователь платит только за фактически использованный gas: gas_used × effectiveGasPrice;
- gas limit — это верхняя граница, а не гарантированная трата.
Как выбирается приоритет транзакции
Когда транзакция попадает в мемпул, валидаторы (или блок-строители) формируют блок:
- сортируют транзакции по эффективным чаевым (priority fee) и общей выгоде;
- учитывают ограничения по размеру блока и gas limit блока;
- часто используют инфраструктуру MEV (MEV-Boost и аналоги) для дополнительного дохода.
Упрощённо:
- транзакции с более высокой priority fee попадают в блок раньше;
- слишком низкая maxPriorityFeePerGas и/или maxFeePerGas может означать долгое ожидание в мемпуле.
Для пользователя это выглядит как выбор профиля комиссии в кошельке: «быстро», «стандартно», «экономно».
Gas, gwei и итоговая комиссия
В Ethereum:
- цена gas почти всегда указывается в gwei;
- 1 gwei = 10⁻⁹ ETH.
Формула комиссии:
fee (ETH) = gas_used × effectiveGasPrice
Пример:
- gas_used = 50 000
- effectiveGasPrice = 30 gwei = 30 × 10⁻⁹ ETH
fee = 50 000 × 30 × 10⁻⁹ = 0.0015 ETH
Часть этой суммы (base fee) сжигается, часть (priority fee) идёт валидатору.
Gas в L2-экосистеме Ethereum
В Layer-2 на Ethereum gas тоже присутствует, но:
- внутри L2 пользователь платит нативным токеном L2 (ETH или отдельным токеном сети);
- финальная стоимость включает:
- вычисления и хранение внутри L2;
- долю расходов на публикацию данных в L1 (особенно после EIP-4844 и blob-транзакций);
- при мостах между L1 и L2 дополнительно платится gas за операции депозита/вывода на обеих сторонах.
Поэтому «дешёвый gas на L2» — это результат вынесения части нагрузки с L1 и оптимизации публикации данных, а не отсутствие комиссии как таковой.
Типичные ошибки и мифы про gas в Ethereum
- «Если поставлю большой gas limit, спишут больше»
Нет. Протокол спишет ETH только за реально использованный gas. Повышенный лимит нужен, чтобы транзакция не упёрлась в out-of-gas из-за слишком низкой границы.
- «Gas — это токен, который можно хранить отдельно»
Gas — единица измерения, а не отдельная монета. Платёж всегда в ETH (или нативном токене конкретной L2-сети).
- «Комиссии забирают разработчики протокола»
В Ethereum base fee сжигается, priority fee получает валидатор или блок-строитель. dApp может брать свою надбавку (protocol fee), но это отдельный слой.
- «Можно отправить транзакцию без комиссии»
Формально — нет: любой вызов, который меняет состояние (перевод, взаимодействие со смарт-контрактом), требует gas и комиссии. Без оплаты транзакция просто не будет принята сетью.
Краткий чек-лист по настройке gas для пользователя
- Проверяйте сеть: используете ли вы правильную сеть (Ethereum L1, конкретный L2, тестнет).
- Не бойтесь ставить чуть завышенный gas limit — неиспользованный gas вернётся.
- Ориентируйтесь на подсказки кошелька по maxFeePerGas и maxPriorityFeePerGas, но в часы пик допускайте, что «экономный» профиль может долго висеть.
- Следите за итоговой суммой в ETH перед подтверждением: кошелёк обычно показывает прогноз комиссии.
- Для редких и критичных операций (мосты, крупные переводы) лучше выбрать более высокий приоритет, чтобы снизить риск долгого ожидания.
Частые вопросы (FAQ)
Куда уходит комиссия за gas в Ethereum? Base fee сжигается в протоколе, уменьшая общий оборот ETH. Priority fee (чаевые) получает валидатор или блок-строитель, который включил транзакцию в блок. Дополнительные «protocol fee» могут забирать сами dApp-протоколы.
Что будет, если выставить слишком низкую комиссию? Транзакция попадёт в мемпул и может долго ждать, пока не снизится нагрузка или пока валидатор не решит включить её. В крайних случаях узлы могут «забыть» её через время. В некоторых кошельках транзакцию можно заменить новой с более высокой комиссией.
Почему комиссии в Ethereum сильно меняются по дням и часам? Base fee зависит от заполненности блоков. Если одновременно много пользователей совершают сложные операции (DeFi, NFT, мем-коины), спрос на место в блоках растёт — вместе с ним растут base fee и готовность пользователей платить более высокую priority fee.
Почему операции со смарт-контрактами дороже обычных переводов ETH? Потому что контракт выполняет больше инструкций EVM, чаще обращается к storage и другим контрактам. Всё это потребляет больше gas, а значит — увеличивает итоговую комиссию.
