Как считаются комиссии в сети Ethereum

21 November 2020

Тема высоких комиссий в Ethereum стала актуальной в 2020 году.  Рост популярности DeFi проектов усилил нагрузку на сеть Ethereum, увеличив количество транзакций, в том числе сложных – ввод/вывод средств на смарт-контракты. Помимо этого, эфириум является основной площадкой для создания новых криптовалют – около 4000 криптовалют и их производных работают на блокчейне Ethereum*.

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

Как рассчитываются

Ethereum работает на алгоритме PoW (Proof-of-Work), соответственно подтверждением транзакций и созданием новых блоков в сети занимаются майнеры и за это получают комиссию. Как рассчитывается комиссия за транзакцию:

Газ (Gas)

Комиссия за транзакцию измеряется в единицах gas (газ), количество которого зависит от сложности транзакции. Стандартная транзакция – это, например, перевод из кошелька в кошелёк монет ETH или токенов криптовалют, построенных на блокчейне Ethereum (токены стандарта ERC-20). При проведении такой транзакции расходует до 21 000 единиц газа.

Существуют более сложные транзакции, например, перевод средств в смарт-контракт, используемый в DeFi проекте. В таком случае расходуется несколько сотен тысяч единиц газа. Из личного опыта**, чтобы завести деньги на площадку Aave (сделать одну транзакцию) необходимо израсходовать 250 000 – 270 000 единиц газа, независимо от суммы транзакции. А для ввода средств в пул ликвидности на Uniswap потребуется 130 000 -190 000 единиц газа, независимо от суммы ввода.

Количество газа, используемого для транзакции, не зависит от суммы транзакции, а зависит от её типа.

Гвеи (Gwei) и ETH

Стоимость газа оценивается в gwei (гвей).

1 Gwei = 0,000000001 ETH (одна миллиардная).

Отправленная пользователем транзакция попадает в очередь (mempool) на подтверждение к майнерам. Майнеры подтверждают транзакцию и включают её в новый блок. Поскольку блок ограничен по размеру и майнеры получают вознаграждение за подтверждение каждой транзакции, то им выгоднее в первую очередь подтверждать транзакции с более высокой ценой за газ. Получается некий аукцион – для того, чтобы транзакция прошла быстрее, пользователь увеличивает цену за единицу газа.

Обычно при совершении транзакции кошелёк автоматически определяет цену за газ. Но, в зависимости от конкретной ситуации, пользователь может сам устанавливать цену на газ в своём кошельке – чем цена выше, тем транзакция пройдёт быстрее и наоборот. Чтобы взвешенно определить цену, воспользуемся следующим ресурсом https://www.ethgasstation.info:

Рис 1. Калькулятор стоимости газа
Рис 1. Калькулятор стоимости газа

Сайт анализирует цены на газ в реальном времени, во всей сети Ethereum и рекомендует цены, в зависимости от желаемой скорости проведения транзакций. Вводим цену за единицу газа, лимит газа и сайт отобразит сколько времени займёт обработка транзакции и размер комиссии.

Цена «Cheap» – это минимальная гарантированная цена, при которой транзакция точно получит подтверждение хотя бы у кого-то из майнеров и не застрянет. Цена ниже «cheap» приведёт к длительному подтверждению или вообще к «застреванию» транзакции. Застрявшую транзакцию можно будет или отменить (например, в MetaMask есть такая функция) или повторно отправлять по более высокой цене, в обоих случаях придётся заплатить дополнительную комиссию.

Цена «Fasten» – это цена, которую примет любой майнер как приоритетную, и транзакция пройдёт максимально быстро. Ставить цену выше этой – излишнее расходование средств, которое существенно не ускорит транзакцию.

Стоимость газа за прошедший период времени можно отследить на ресурсе https://ethereumprice.org/gas/:

Рис 2. Цены на газ за последнюю неделю (скрин от 20.11.2020)
Рис 2. Цены на газ за последнюю неделю (скрин от 20.11.2020)

Пример расчёта цены

Предположим, я из Ethereum-кошелька MetaMask хочу отправить 0,002 ETH кому-нибудь. Получаем такой экран:

Рис 3. Отправка 0,002 ETH из MetaMask
Рис 3. Отправка 0,002 ETH из MetaMask

Кошелёк предлагает использовать лимит в 21 000 газа. Цену за газ я выбираю самостоятельно = 35 гвеев за единицу – это та самая минимально гарантированная цена на этот момент, по которой транзакция пройдёт. Получаем такой расчёт комиссии:

21 000 газа *35 гвеев / 1 000 000 000 = 0,000735 ETH * 497 долларов (цена1 ETH) = 0,36 доллара.

Время проведения транзакции составит примерно 9 минут.

Скрин и расчёт просто для примера. Реально делать эту транзакцию не буду – бессмысленно переводит активов на 1 бакс и платить за это 0,36 доллара.

Ещё пара полезных ресурсов

https://etherscan.io – можно отследить транзакции, увидеть рекомендуемую среднюю цену на газ и другую информации по сети Ethereum.

https://bitinfocharts.com/ru/ethereum/ - наглядно представлена основная статистическая информация по Ethereum, в том числе есть график с размером комиссий за транзакции за всё время работы сети. Максимальных размеров комиссия достигала 02.09.2020 и составила 14,6 доллара за транзакцию:

Рис 4. График средней стоимости комиссий за транзакции за период в 3 года
Рис 4. График средней стоимости комиссий за транзакции за период в 3 года

В заключение

Создавая статьи про DeFi и Ethereum, каждый раз сталкивался с расчётом комиссий в сети и искал инфу по разным ресурсам. Эта статья как попытка собрать воедино всю информацию по теме комиссий в Ethereum🙂

Если увидели ошибки или есть что дополнить пишите в комментарии.

21.11.2020

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

Подписывайтесь на каналы и читайте про криптовалюты.

* https://www.coingecko.com/ru?asset_platform_id=ethereum&view=market

**статьи по теме: