Перейти к содержанию

Базовая комиссия EIP-1559: формула, лимиты и стоимость транзакции

Разберитесь, как Ethereum рассчитывает базовую комиссию EIP-1559 по газу родительского блока, как лимиты задают фактическую цену и как проверить стоимость.

Обновлено

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

Краткий ответ

Базовая комиссия EIP-1559 — установленная протоколом минимальная цена единицы газа исполнения в блоке Ethereum. Она растёт, если родительский блок использовал газ выше цели, падает ниже цели и не меняется на цели. Базовая часть платы за использованный газ сжигается, а не перечисляется валидатору.

У каждого блока одно значение base_fee_per_gas, известное до исполнения его транзакций. При коэффициенте эластичности Ethereum 2 цель равна половине лимита газа блока: краткие всплески поглощаются, а среднее использование возвращается к цели.

Транзакция типа 2 задаёт max_fee_per_gas и max_priority_fee_per_gas. Первое ограничивает общую цену газа, второе — чаевые валидатору. Высокий максимум не списывается целиком: оплачиваются базовая комиссия и разрешённые чаевые за фактически использованный газ.

Сетевая плата
0,000462 native
Фиатный эквивалент
1,39 $
Базовая плата
22 gwei

Выходные данные представляют собой образовательные аппроксимации. Они исключают правила места проведения, налоги, задержку, поведение оракула и другие параметры, специфичные для протокола, если они не указаны.

Как это работает

1. Рассчитать базовую комиссию следующего блока

Пусть B — базовая комиссия родительского блока, G — использованный газ, а T = parent gas limit / 2 — цель. Ethereum применяет целочисленную арифметику:

  • На цели: G = T, поэтому B_next = B.
  • Выше цели: B_next = B + max(floor(B * (G - T) / T / 8), 1 wei).
  • Ниже цели: B_next = B - floor(B * (T - G) / T / 8).

Для полного родительского блока G = 2T: максимальный рост за шаг равен 12.5%; пустой блок снижает до 12.5%. Минимум 1 wei лишь не даёт округлить положительный прирост до нуля.

2. Применить лимиты транзакции

Для включённой транзакции типа 2 фактические чаевые и цена равны:

  • effective_priority_fee = min(max_priority_fee_per_gas, max_fee_per_gas - base_fee_per_gas)
  • effective_gas_price = base_fee_per_gas + effective_priority_fee
  • transaction_fee = gas_used * effective_gas_price

Транзакцию нельзя включить при max_fee_per_gas < base_fee_per_gas. Если максимум не вмещает запрошенные чаевые, они уменьшаются. Базовая часть сжигается, приоритетная поступает получателю комиссий блока.

3. Сверить квитанцию

Возьмите baseFeePerGas из блока, а gasUsed и effectiveGasPrice — из квитанции. Проверьте gasUsed * effectiveGasPrice по изменению баланса. Неиспользованный газ не оплачивается, а запас под max_fee_per_gas не является отдельным платежом.

Расчётный пример

Пусть цель родительского блока 15,000,000 gas, использован полный лимит 30,000,000 gas, а базовая комиссия 30 gwei. Максимальный шаг 30 gwei * 12.5% = 3.75 gwei; следующая комиссия 33.75 gwei (без детали округления меньше 1 wei).

Теперь перевод использует 21,000 gas при max_fee_per_gas = 50 gwei и max_priority_fee_per_gas = 2 gwei:

  • Фактическая приоритетная комиссия: min(2, 50 - 33.75) = 2 gwei.
  • Фактическая цена газа: 33.75 + 2 = 35.75 gwei.
  • Общая комиссия: 21,000 * 35.75 = 750,750 gwei = 0.00075075 ETH.
  • Сожжённая базовая комиссия: 21,000 * 33.75 = 708,750 gwei = 0.00070875 ETH.
  • Чаевые валидатору: 21,000 * 2 = 42,000 gwei = 0.000042 ETH.

Максимум 50 gwei — это предел, не списываемая цена. Если базовая комиссия до включения превысит 50 gwei, транзакция останется недопустимой до снижения комиссии или замены с большим пределом.

Риски

  • Оценка кошелька использует недавние блоки; всплеск спроса может поднять комиссию до включения.
  • Низкий max_fee_per_gas оставляет транзакцию в ожидании; излишне высокий предел расширяет разрешение, хотя обычно не списывается целиком.
  • Откат исполнения всё равно расходует газ, поэтому неудачное действие может сжечь базовую комиссию и заплатить чаевые.
  • Большие чаевые могут повысить приоритет, но не гарантируют позицию, успех или финальность.
  • Данные кошелька, RPC, обозревателя или узла могут устареть; сверяйте блок и квитанцию вместе.
  • Параметры основной сети не описывают любой роллап или сеть наподобие EIP-1559; эластичность, знаменатель, минимумы и доплаты могут отличаться.
  • Сжигание базовой комиссии не гарантирует сокращения предложения ETH; важны общие выпуск и сжигание.
  • Не путайте gas_limit, лимит и цель газа блока, gas_used, цену газа и общую комиссию.

Распространённые заблуждения

1. Текущий блок определяет собственную базовую комиссию

Использование газа родительского блока определяет следующую комиссию; в текущем блоке она уже закреплена в заголовке.

2. Любой блок выше цели повышает комиссию на 12.5%

Изменение пропорционально отклонению от цели. 12.5% — максимум при полном лимите и стандартных параметрах.

3. max_fee_per_gas всегда списывается полностью

Это предел. Фактическая цена складывается из базовой и разрешённой приоритетной комиссий, ограничивается пределом и умножается на использованный газ.

4. Валидатор получает всю комиссию за газ

Базовая часть сжигается. Доход валидатора за исполнение — фактическая приоритетная комиссия, а не вся цена.

5. Сжигание базовой комиссии делает каждую транзакцию дефляционной

Транзакция сжигает ETH, но общее предложение падает лишь тогда, когда совокупное сжигание превышает совокупный выпуск.

Похожие темы

Источники

Навигация

Поиск по вики...