ru
Назад к списку

Как рассчитываются комиссии Ethereum с EIP-1559: базовая, приоритетная, максимальная

source-logo  ttrcoin.com 17 Сентябрь 2021 22:03, UTC

В августе в блокчейне Ethereum состоялось обновление London. Его ключевым элементом стало предложение EIP-1559, благодаря которому криптовалюта перешла с аукционной модели расчета комиссий на гибридную. В результате было добавлено несколько понятий и механик, с которыми прежде пользователям сталкиваться не приходилось. Обзор изменений приводит Blocknative.


Новая терминология для транзакций в EIP-1559

Для начала напомним: EIP-1559 изменил как механизм расчета комиссий, так и их получателя. Вместо одной лишь цены газа (Gas Price) пользователям теперь нужно обращать внимание на три отдельных параметра:

  • Базовая комиссия (Base Fee) – устанавливается сетью и впоследствии сжигается;
  • Максимальная комиссия за приоритетность (Max Priority Fee) – выставляется по желанию пользователем и выплачивается напрямую майнерам;
  • Максимальная комиссия на единицу газа (Max Fee Per Gas) – отражает абсолютный максимум, который готов заплатить пользователь для включения своей транзакции в блок. В дальнейшем для простоты и краткости эта комиссия будет называться просто максимальной (Max Fee).

Транзакции с новыми параметрами называются транзакциями второго типа (Type 2), тогда как старые транзакции, где указывается только цена газа, тоже продолжают поддерживаться и называются транзакциями нулевого типа (Type 0). Заметим, что EIP-1559 не меняет лимит газа (Gas Limit), то есть максимальный объем газа, который разрешено израсходовать отдельной транзакции.


Как определяется базовая комиссия

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

К примеру:

  • Если последний блок был заполнен на 50%, базовая комиссия не изменится.
  • Если последний блок был заполнен на 100%, базовая комиссия в следующем блоке увеличится на максимально допустимую величину в 12,5%.
  • Если последний блок был заполнен больше чем на 50%, но меньше чем на 100%, базовая комиссия увеличится, но меньше чем на 12,5%.
  • Если последний блок был заполнен на 0%, то есть фактически был пустым, базовая комиссия снизится на максимально допустимую величину в 12,5%.
  • Если последний блок не был пустым, но был заполнен меньше чем на 50%, базовая комиссия снизится, но меньше чем на 12,5%.

Этот новый механизм призван сгладить колебания комиссий и предотвратить резкие скачки стоимости обработки транзакций. Разбирая базовую комиссию, важно усвоить: она на 100% автоматизирована и считывается непосредственно из сети.


Как выставляется комиссия за приоритетность

Комиссия за приоритетность, также часто называемая чаевыми для майнеров – это добровольная дополнительная комиссия, которая выплачивается напрямую майнеру, чтобы мотивировать его к скорейшему добавлению транзакции в блок. Хотя данная комиссия считается добровольной, по текущим оценкам транзакция должна сопровождаться чаевыми как минимум на 2 GWEI, чтобы майнеры рассмотрели ее для включения в блок.

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

Максимальная комиссия за приоритетность отражает сумму, которую пользователь максимально готов заплатить майнеру. Тем не менее, может произойти так, что вы выставите одну максимальную комиссию за приоритетность, но майнер получит меньше этой суммы. Так бывает в случаях, когда часть чаевых для майнера поглощается базовой комиссией при выставлении слишком низкого ограничения на сумму двух этих комиссий (максимальную комиссию). Следует ожидать, что такая транзакция будет менее привлекательной для майнера, чем изначально предполагал пользователь.


Как рассчитывается максимальная комиссия

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

  • Минимальная стоимость обработки транзакции соответствует текущей базовой комиссии.
  • Но что будет, если базовая комиссия вырастет, пока транзакция ожидает подтверждения? В таком случае выставленная комиссия окажется ниже текущих требований сети, и транзакция может застрять или выдать ошибку. Это нежелательный сценарий.
  • Таким образом, для более надежного включения транзакций в блоки рекомендуется выставлять максимальную комиссию, исходя из того, что базовая комиссия вырастет. Но насколько?
  • Blocknative используют следующую формулу: Максимальная комиссия = (2 * базовая комиссия) + максимальная комиссия за приоритетность.

Удвоение базовой комиссии гарантирует, что транзакция будет соответствовать требованиям для включения в блоки на протяжении шести последовательных заполненных на 100% блоков. Таблица ниже иллюстрирует данный сценарий.


Пример: Почему комиссия может стать недостаточной

Предположим, вы отправляете транзакцию с выпуском первого блока, когда базовая комиссия равна 100 GWEI. Вы выставляете максимальную комиссию за приоритетность в 2 GWEI, а максимальная комиссия с учетом рекомендации выше будет составлять (2 * 100 + 2) или 202 GWEI.

Но что, если, пока вы будете отправлять транзакцию, произойдет крупный NFT-дроп, и спрос на сетевые ресурсы резко возрастет. Внезапно каждый блок начинает заполняться на 100%, поэтому базовая комиссия увеличивается на максимальные 12,5% с каждым блоком.

В результате базовая комиссия за семь блоков вырастет следующим образом:



Как видите, потребуется шесть последовательных заполненных на 100% блоков, чтобы базовая комиссия выросла вдвое – в данном случае от 100 GWEI до 202,7 GWEI. На практике это означает, что, выставляя максимальную комиссию согласно рекомендациям, вы защищаете транзакцию от падения ниже требований сети по крайней мере на шесть блоков.

Но если комиссия не будет расти? В таком случае реальная комиссия окажется меньше указанной пользователем максимальной.

  • Транзакция была отправлена с первым блоком в таблице, когда базовая комиссия составляла 100 GWEI. Максимальная комиссия за приоритетность была выставлена в 2 GWEI, а общая максимально допустимая комиссия составила 202 GWEI.
  • Транзакция подтвердилась в четвертом блоке, когда базовая комиссия составляла 142,4 GWEI.
  • Комиссия уплачивается на основании фактической базовой комиссии в момент подтверждения транзакции + максимальная комиссия за приоритетность. Таким образом, в данном случае общая комиссия составила 144,4 GWEI за единицу газа.
  • Это на 57,6 GWEI меньше указанной пользователем максимальной комиссии. Эти 57,6 GWEI за единицу газа остаются в кошельке пользователя.
  • Максимальная комиссия не выводится из кошелька пользователя, чтобы затем частично вернуться, как можно было бы предположить. Она представляет собой максимально авторизованную сумму, которая может быть списана с кошелька пользователя.
  • Если транзакция не попала в блокчейн к шестому блоку, она больше не будет рассматриваться для добавления, так как максимальная комиссия в 202 GWEI окажется ниже базовой в 202,7 GWEI.

А что произойдет, если пользователь не оставит запас безопасности и просто выставит максимальную комиссию в 102 GWEI?

  • Транзакция будет рассматриваться для добавления в первый блок, так как максимальная комиссия все еще превышает базовую в 100 GWEI.
  • Однако уже ко второму блоку она не будет соответствовать требованиям по базовой комиссии, которая поднимется до 112,5 GWEI.
  • Транзакция будет оставаться в состоянии ожидания, пока базовая комиссия не опустится ниже 102 GWEI.
  • Если сеть перегружена, транзакция может быть отклонена.


Это объясняет, почему расчет максимальной комиссии в EIP-1559 может быть неочевидным:

  • В большинстве случаев реальная комиссия будет ниже максимальной;
  • Но иногда, особенно в периоды повышенных нагрузок, будет сниматься полностью максимальная комиссия.
  • Если выставить максимальную комиссию слишком близко к базовой, есть риск, что очень скоро транзакция перестанет удовлетворять требованиям для включения в блокчейн.
  • Чтобы избежать возможных затруднений, рекомендуется выставлять максимальную комиссию с запасом.


EIP-1559 в MetaMask

По умолчанию в версии 10.0.0 и выше MetaMask автоматически выставляет максимальную комиссию за приоритетность. Ее можно изменить при помощи кнопки «EDIT». Она открывает окно, в котором можно настроить комиссию от низкой до высокой с соответствующим временем подтверждения транзакции.




Чтобы вручную выставить лимит газа, максимальную комиссию за приоритетность и просто максимальную комиссию, следует перейти на вкладку «Advanced Options».



Рекомендуемые значения стоимости газа для выставления вручную с учетом максимальной комиссии за приоритетность и возможного увеличения базовой комиссии можно посмотреть на сайте Blocknative.

ttrcoin.com