Газ и комиссии
Последнее редактирование: , Invalid DateTime
Газ необходим сети Ethereum. Это топливо, которое поддерживает его работу, словно бензин для автомобиля.
Прежде чем начать
Чтобы лучше понять эту страницу, мы рекомендуем вам сначала ознакомиться с транзакциями и EVM.
Что такое газ?
Газ — это единица для измерения объема вычислительных усилий, необходимых для выполнения определенных операций в сети Ethereum.
Поскольку для выполнения каждой транзакции Ethereum требуются вычислительные ресурсы, каждая транзакция требует комиссии. Газ — это комиссия, необходимая для успешного проведения транзакции в Ethereum.
(opens in a new tab)
Источник адаптированной диаграммы: Ethereum EVM illustrated(opens in a new tab)
По сути, комиссии за газ оплачиваются в валюте Ethereum, эфире (ETH). Цены на газ указаны в Gwei, который сам по себе является единицей ETH — каждый Gwei равен 0,000000001 ETH (10-9 ETH). Например, вместо того, чтобы говорить, что ваш газ стоит 0,000000001 эфира, вы можете сказать, что ваш газ стоит 1 Gwei. Само слово gwei означает giga-wei и равно 1 000 000 000 wei. Сам Wei (названный в честь Вэй Дая(opens in a new tab), создателя b-money(opens in a new tab)) является самой маленькой единицей ETH.
До обновления «Лондон»
Способ расчета комиссии за транзакции в сети Ethereum изменился с обновлением «Лондон» в августе 2021 года. Вот краткое описание того, как все работало:
Допустим, Алисе пришлось заплатить Бобу 1 ETH. В сделке лимит газа составляет 21 000 единиц, а цена газа со ставляет 200 gwei.
Общая сумма комиссии была бы следующей: Gas units (limit) * Gas price per unit
, то есть 21,000 * 200 = 4,200,000 gwei
(0,0042 ETH)
Когда Алиса отправит деньги, со счета Алисы будет списано 1,0042 ETH. Бобу будет начислен 1,0000 ETH. Майнер получит 0,0042 ETH.
В этом видео приведен краткий обзор газа и причин его существования:
После обновления «Лондон»
Обновление «Лондон» было реализовано 5 августа 2021 года, чтобы сделать транзакции в Ethereum более предсказуемыми для пользователей за счет пересмотра механизма комиссий за транзакции Ethereum. Высокоуровневые улучшения, представленные в этом изменении, включают лучшее прогнозирование транзакционных комиссий, более быструю обработку транзакций в целом, а также компенсацию выпуска новых ETH за счет сжигания доли транзакционных комиссий.
Начиная с обновления сети «Лондон», каждый блок имеет базовую комиссию, минимальную стоимость на каждую единицу газа для включения в этот блок, рассчитываемые сетью на основе спроса на пространство в блоке. Поскольку базовая комиссия в составе транзакционной комиссии сжигается, ожидается, что пользователи будут устанавливать доплату (комиссию за приоритет) в своих транзакциях. Доплата компенсирует майнерам выполнение и распростран ение пользовательских транзакций в блоках и, как ожидается, будет установлена автоматически большинством кошельков.
Расчет полной комиссии за транзакцию выполняется следующим образом: Gas units (limit) * (Base fee + Tip)
Допустим, Джордан должен заплатить Тейлору 1 ETH. В транзакции лимит газа составляет 21 000 единиц, а базовая комиссия — 100 gwei. Джордан включил доплату в 10 gwei.
Использую приведенную выше формулу, мы можем рассчитать это как 21,000 * (100 + 10) = 2,310,000 gwei
(или 0,00231 ETH).
Когда Джордан отправляет деньги, 1,00231 ETH будет списано с аккаунта Джордана. Тэйлору будет начислено 1,0000 ETH. Майнер получит доплату в 0,00021 ETH. Базовая комиссия в 0,0021 ETH будет сожжена.
Кроме того, Джордан может установить максимальную комиссию (maxFeePerGas
) для транзакции. Разница между максимальной и фактической комиссией возвращается Джордану, т. е. refund = max fee - (base fee + priority fee)
. Джоржан может установить максимальную сумму для оплаты транзакции и не беспокоиться о переплате сверх базовой комиссии при выполнении транзакции.
Размер блоков
До обновления «Лондон» у Ethereum были блоки фиксированного размера. В периоды высокого спроса в сети эти блоки заполнялись полностью. В результате пользователям часто приходилось ожидать снижения высокого спроса на включение в блок, что снижало удобство для пользователя.
С обновлением «Лондон» появились блоки Ethereum переменного размера. Каждый блок имеет целевой размер 15 миллионов газа, но размер блоков будет увеличиваться или уменьшаться в соответствии с потребностями сети, вплоть до предела блока в 30 миллионов газа (в 2 раза больше целевого размера блока). Проток ол достигает равновесного размера блока в 15 миллионов в среднем через процесс tâtonnement. Это означает, что если размер блока больше, чем размер целевого блока, протокол увеличит базовую комиссию за следующий блок. Аналогичным образом протокол уменьшит базовую комиссию, если размер блока меньше, чем размер целевого блока. Сумма, на которую корректируется базовая комиссия, пропорциональна тому, насколько текущий размер блока отличается от целевого. Подробнее о блоках.
Базовая комиссия
У каждого блока есть базовая комиссия, которая действует как стартовая цена. Чтобы иметь право на включение в блок, предлагаемая цена за газ должна быть по крайней мере равна базовой комиссии. Базовая комиссия рассчитывается независимо от текущего блока и вместо этого определяется блоками до этого, что делает комиссии за транзакции более предсказуемыми для пользователей. Когда блок добыт, эта базовая комиссия «сжигается» и исключается из обращения.
Базовая комиссия рассчитывается по формуле, которая сравнивает размер предыдущего блока (количество газа, использованного для всех транзакций) с целевым размером. Базовая комиссия увеличится максимум на 12,5 % за блок, если размер целевого блока превышен. Этот экспоненциальный рост делает экономически нецелесообразным, чтобы размер блока оставался высоким на неопределенный срок.
Номер блока | Включенный газ | Увеличение комиссии | Текущая базовая комиссия |
---|---|---|---|
1 | 15 млн | 0 % | 100 gwei |
2 | 30 млн | 0 % | 100 gwei |
3 | 30 млн | 12,5 % | 112,5 gwei |
4 | 30 млн | 12,5 % | 126,6 gwei |
5 | 30 млн | 12,5 % | 142,4 gwei |
6 | 30 млн | 12,5 % | 160,2 gwei |
7 | 30 млн | 12,5 % | 180,2 gwei |
8 | 30 млн | 12,5 % | 202,7 gwei |
По сравнению с рынком аукциона газа до обновления «Лондон», это изменение механизма платы за транзакции делает прогноз комиссий более надежным. Согласно приведенной выше таблице для добавления транзакции в блок номер 9 кошелек позволит пользователю понять, что maximum base fee, которая будет добавлена к следующему блоку, составляет current base fee * 112.5%
или 202.8 gwei * 112.5% = 228.1 gwei
.
Также важно отметить, что маловероятно, что мы увидим расширенные всплески полных блоков из-за скорости, с которой базовая комиссия увеличивается при переходе к полному блоку.
Номер блока | В ключенный газ | Увеличение комиссии | Текущая базовая комиссия |
---|---|---|---|
30 | 30 млн | 12,5 % | 2705,6 gwei |
... | ... | 12,5 % | ... |
50 | 30 млн | 12,5 % | 28531,3 gwei |
... | ... | 12,5 % | ... |
100 | 30 млн | 12,5 % | 10302608,6 gwei |
Приоритетная комиссия (чаевые)
До обновления «Лондон» майнеры получали полную комиссию за газ от любой транзакции, включенной в блок.
С введенным сожжением базовой комиссии обновление «Лондон» добавило приоритетную плату (чаевые), чтобы стимулировать майнеров включать транзакцию в блок. Без чаевых майнеры сочли бы экономически выгодным добывать пустые блоки, поскольку они получали бы такое же вознаграждение за блок. В нормальных условиях небольшие чаевые дают майнерам минимальный стимул для включения транзакции. Для транзакций, выполнение которых должно быть раньше других транзакций в том же блоке, потребуются более высокие чаевые, чтобы попытаться превзойти конкурирующие предложения.
Максимальная комиссия
Чтобы выполнить транзакцию в сети, пользователи могут указать максимальный лимит, который они готовы заплатить за выполнение своей транзакции. Этот необязательный параметр называется maxFeePerGas
. Для выполнения транзакции максимальная комиссия должна превышать совокупность базовой комиссии и чаев ых. Отправителю транзакции возвращается разница между максимальной комиссией и совокупностью базовой комиссии и чаевых.
Расчет комиссии
Одним из основных преимуществ обновления «Лондон» является увеличение удобства пользователя при установке комиссий за транзакции. Для кошельков, которые поддерживают обновление, вместо того, чтобы явно указывать, сколько вы готовы заплатить за проведение транзакции, поставщики кошельков автоматически устанавливают рекомендуемую комиссию за транзакцию (базовая комиссия + рекомендуемая приоритетная комиссия), чтобы уменьшить сложность использования их кошельков пользователями.
EIP-1559
Внедрение EIP-1559(opens in a new tab) в обновлении «Лондон» сделало механизм комиссии за транзакцию более сложным, чем предыдущий аукцион цен на газ, но его преимущество заключается в том, что плата за газ стала более предсказуемой, что привело к более эффективному рынку комиссий за транзакции. Пользователи могут отправлять транзакции с maxFeePerGas
в соответствии с тем, сколько они готовы заплатить за выполнение транзакции, зная, что они не заплатят больше, чем рыночная цена за газ (baseFeePerGas
), и получат любое дополнительное, за вычетом своих чаевых, возмещение.
В этом видео рассказывается об EIP-1559 и его преимуществах:
Если вам интересно, вы можете прочитать точные спецификации EIP-1559(opens in a new tab).
Продолжайте исследовать тему с помощью этих ресурсов по EIP-1559(opens in a new tab).
Зачем нужны газовые комиссии?
Простыми словами, комиссия за газ помогает поддерживать безопасность сети Ethereum. Требуя плату за каждое вычисление, выполняемое в сети, мы не позволяем злоумышленникам расс ылать спам в сети. Чтобы избежать случайных или неблагоприятных бесконечных циклов или других вычислительных потерь в коде, каждой транзакции требуется установить ограничение на количество вычислительных шагов выполнения кода, которые она может использовать. Основной единицей вычислений является «газ».
Хотя транзакция включает лимит, любой газ, не использованный в транзакции, возвращается пользователю (т. е. возвращается max fee - (base fee + tip)
).
(opens in a new tab)
Источник адаптированной диаграммы: Ethereum EVM illustrated(opens in a new tab)
Что такое лимит газа?
Лимит газа — максимальное количество газа, которое вы готовы потратить при транзакции. Более сложные транзакции с использованием умных контрактов требуют больше вычислительной работы, поэтому им требуются более высокий лимит газа, чем простому платежу. Для стандартного перевода ETH предусматривается лимит в 21 000 единиц газа.
Например, если вы установите лимит газа в 50 000 для простого перевода ETH, EVM использует 21 000, а вам вернутся оставшиеся 29 000. Однако если вы укажете слишком мало газа, например лимит в 20 000 для простого перевода ETH, EVM израсходует ваши 20 000 единиц газа при попытке выполнить транзакцию, но не завершит ее. Затем EVM возвращает все изменения, но, поскольку майнер уже выполнил работу на 20 000 единиц газа, этот газ не вернется.
Почему газовая комиссия может быть такой высокой?
Высокая газовая комиссия связана с популярностью Ethereum. Выполнение любой операции на Ethereum требует потребления газа, и размер этого газа для каждого блока ограничено. Комиссии включают в себя расчеты, хранение или управление данными, передачу токенов, при этом потребляя различное количество единиц «газа». По мере того, как функциональность децентрализованных приложений становится все более обширной, количество операций, выполняемых умным контрактом, также растет, а это означает, что последующие транзакции занимают все новые и новые места в блоке ограниченного размера. Если спрос слишком велик, пользователи должны предложить больше чаевых, чтобы попытаться превзойти ставки других пользователей. Чем выше чаевые, тем выше вероятность того, что ваша транзакция попадет в следующий блок.
На самом деле сама по себе цена на газ не определяет, сколько мы должны заплатить за конкретную транзакцию. Чтобы рассчитать комиссию за транзакцию, мы должны умножить используемый газ на комиссию за транзакцию, которая измеряется в gwei.
Инициативы по снижению затрат газа
Обновления масштабируемости Ethereum должны в конечном итоге решить некоторые проблемы с платой за газ, что, в свою очередь, позволит платформе обрабатывать тысячи транзакций в секунду и глобально масштабироваться.
Масштабирование слоя 2 — это основная инициатива, направленная на значительное снижение затрат газа, удобство работы польз ователей и масштабируемость. Подробнее о масштабировании слоя 2.
Новая модель доказательства владения, введенная в сети Beacon Chain, должна снизить высокое энергопотребление и зависимость от специализированного оборудования. Эта цепь позволит децентрализованной сети Ethereum согласовывать и обеспечивать безопасность сети, ограничивая при этом потребление энергии, требуя вместо этого финансовые обязательства.
Любой, у кого есть не менее 32 ETH, может вложить их и стать валидатором, ответственным за обработку транзакций, проверку и предложение новых блоков для добавления в цепочку. Пользователи, у которых меньше 32 ETH, могут присоединиться к пулам стейкинг.
Стратегии снижения затрат на газ
Если вы хотите снизить затраты на газ для вашего ETH, вы можете установить чаевые, чтобы указать уровень приоритета вашей транзакции. Майнеры будут «работать» и выполнять транзакции, которые предлагают более высокие чаевые за газ, поскольку именно они получат чаевые, которые вы заплатите, и будут менее склонны к выполнению транзакций с низкими чаевыми.
Если вы хотите отслеживать газовые цены, чтобы отправлять ETH дешевле, вы можете использовать множество различных инструментов, таких как:
Etherscan(opens in a new tab) — средство оценки газовых цен на транзакции
Blocknative ETH Gas Estimator(opens in a new tab) — расширение Chrome для о ценки газа, поддерживающее как устаревшие транзакции типа 0, так и транзакции типа 2 EIP-1559.
ETH Gas Station(opens in a new tab) — ориентированные на потребителя метрики для рынка газа Ethereum
Калькулятор газовых комиссий Cryptoneur(opens in a new tab) — рассчитывает газовые комиссии в местной валюте для различных типов транзакций в основной сети, Arbitrum и Polygon.
Связанные инструменты
- Bloxy Gas Analytics(opens in a new tab) — статистика газа в сети Ethereum
- Газовая платформа Blocknative(opens in a new tab) — API для оценки газа на основе глобальных данных мемпула Blocknative
Дополнительные ресурсы
- Объяснение газа в Ethereum(opens in a new tab)
- Снижение потребления газа в ваших умных контр актах(opens in a new tab)
- Доказательство владения и доказательство работы(opens in a new tab)