Gas — разбираемся с комиссиями в системе Ethereum
Как мы узнали из предыдущей статьи, майнеры Эфириума принимают в качестве оплаты за обработку и помещение транзакций в новый блок «Газ». Если в биткоине процесс комиссионного вознаграждения довольно понятный (отправь средства, заплати комиссию, дождись одобрения, получи), то у эфира он устроен несколько иначе.
Газ (Gas) — это единица исчисления, которая используется для расчета и оплаты комиссии за определенное действие или транзакцию.
Основной принцип остается неизменным — заплатил больше — транзакция пройдет быстрее. Но эфир создавался не как платежная система, а как инструмент для создания децентрализованных приложений (DApps), в котором любая операция управляется через смарт-контракты — особый алгоритм, который представляет из себя цепочку условий для выполнения определенного действия. Следовательно, для того чтобы перевести средства с одного адреса на другой создается смарт-контракт, в котором кроме размера комиссионного вознаграждения (Газа) нам необходимо указать и другие параметры.
Параметры для расчета комиссии
Первый из них — Gas Limit или Лимит Газа — максимальное количество Газа, которое может у вас списаться при проведении транзакции или выполнении какого-либо цикла операций.
Необходимо запомнить, что стандартный лимит Газа для совершения одного перевода ETH на другой адрес 21 000 Gas!
Т.е. если вы будете использовать кошелек эфириума только для совершения платежей — этот параметр всегда будет оставаться неизменным, т.к. все транзакции обрабатываются стандартным смарт-контрактом для отправки, одинаковым для всех.
Но иногда, для участия в ICO необходимо увеличить этот параметр, чтобы купленные токены могли вернуться на ваш адрес. В таком случае не следует экспериментировать — необходимо обратиться к указанным на официальном сайте проекта контактным лицам и узнать у них рекомендуемый размер параметра Gas Limit.
Чтобы понять, что произойдет если мы ошибемся при выборе лимита, рассмотрим все на примере:
Для участия в ICO мы хотим отправить на адрес кошелька проекта некоторую сумму ETH. Для транзакции мы установили параметр Gas Limit на 100 000. Теперь есть два варианта:
- В смарт-контракте проекта был прописан лимит в 50 000. Следовательно, нашего газа хватит и транзакция будет успешно включена в блокчейн.
- В смарт-контракте проекта был прописан лимит в 125 000. Нам не хватит наших ста тысяч, чтобы покрыть эту сумму, а значит они просто полностью истратятся, но транзакция проведена не будет. При этом в нашем кошельке отобразится ошибка:
“Insufficient funds. Account you try to send transaction from does not have enough funds. Required xxx and got: xx. Недостаточно газа для проведения транзакции…”
Отправленные средства вернутся обратно в наш кошелек за вычетом стоимости потраченного Газа — 100 000.
Возникает резонный вопрос: почему разработчики сделали все именно так?
Лимит Газа является одной из функций защиты от ошибок. Как мы уже говорили, Эфир — это платформа в первую очередь ориентированная на разработчиков. Довольно часто в приложениях необходимо запускать большие циклы операций. Вот именно для того, чтобы в результате ошибки алгоритма пользователь не потерял крупную сумму и существует Gas Limit.
Gas Price — цена Газа.
Gas Price — это стоимость одной единицы Газа в Gwei. Здесь все интереснее. Этот параметр в Эфириуме периодически меняется в зависимости от загруженности сети. Лучше разбираться с этим на конкретном примере и рассчитаем комиссию для транзакции, а заодно узнаем больше о микродолях эфира.
Начнем с того, что проверим текущую стоимость газа на сайте https://ethstats.net/
На момент написания статьи ситуация обстояла так: 1 GAS = 4 Gwei.
И тут мы сталкиваемся с новым препятствием — что такое Gwei?
Gwei — это одна из микродолей Эфира. Если выразить численно, то 1ETH = 1 000 000 000 Gwei.
Следовательно, 4 Gwei = 0,000000004 ETH
Формула для расчета комиссии выглядит так:
Gas Limit X Gas Price = комиссия, ETH
Подставляем значения:
21000 Х 0,000000004 = 0,000084 ETH = $0.039
Теперь мы знаем, что стандартная комиссия в сети на текущий момент равна 0,000084 ETH или $0.039.
Естественно, что никто не захочет каждый раз считать комиссию — у нас тут не Академия наук. Есть удобные сервисы, на которых данный расчет производится в автоматическом режиме. Один из самых удобных — https://ethgasstation.info/
После перехода на сайт, нас встретит уже готовый расчет.
Не обязательно платить за транзакцию $0,039 — минимальное безопасное значение выделено на скриншоте зеленым цветом и составляет $0,019 или 2 Gwei — такое вознаграждение гарантирует успешное одобрение транзакции и включение в блокчейн. Правда при этом пострадает скорость: при стандартной стоимости в 95% случаев транзакция дойдет за 1-3 минуты, а при минимальной — более 30. При текущих значениях комиссии — экономить глупо.
Для тех, кого цифры не интересуют, есть другой сервис— https://www.etherchain.org/tools/gasPriceOracle. На этой странице рассчитывается примерное время прохождения транзакций при различных значениях Gas.
Самый быстрый вариант потребует от нас оплаты 41 Gwei ($0,3895), а весь процесс одобрения займет 15–30 секунд.