Понятие "gas", или русскоязычный эквивалент "газ" (хотя правильный перевод — "бензин"), является сложным для понимания обычных владельцев криптовалюты. Поэтому сегодня мы разберемся в том, что этот газ в терминах эфира собой представляет и какие функции он выполняет.
Для начала вспомним о том, как выполняются транзакции в сети Bitcoin. Здесь все тривиально: скорость напрямую зависит от размера комиссии, которая измеряется в биткоинах же. Больше комиссия — быстрее выполняется транзакция, меньше — медленнее. Эта простота связана с тем, что биткоин — это первая криптовалюта, которая задумывалась как пиринговая (распределенная) платежная система. И только.
Сеть Ethereum же — это нечто большее. Это не просто группа компьютеров, поддерживающих криптовалютные транзакции. Её можно представить в виде огромного компьютера, который способен выполнять вычисления, отличающиеся от того же майнинга. Такой распределенный "компьютер" действительно существует и называется "Ethereum Virtual Machine" (сокращенно — EVM), или виртуальная машина Ethereum. С помощью EVM можно выполнять абсолютно любые программы, написанные на каком-либо языке программирования (в частности, на специальном языке Solidity). Этими программами могут быть смарт-контракты (алгоритмы, помогающие заключать автоматические сделки с криптовалютой) или вообще всё что угодно — вплоть до полноценных игр.
Если проще и понятнее, то Ethereum — это платформа, на которой можно выполнять любые программы. Однако если было бы позволено всем и каждому просто так выполнять любые программы в EVM, то сеть быстро бы перегрузилась и стала неэффективной. Как же справиться с этой проблемой? Легко — достаточно сделать выполнение таких программ платными, а в качестве оплаты брать тот самый газ.
Кстати, именно по этой причине программа-кошелек от разработчиков Ethereum и использует ощутимую часть ресурсов компьютера: она выполняет программы в виртуальной
машине EVM.
Случаи использования газа
Рассмотрим основные операции, которые могут выполняться в сети Ethereum:
— Перевод монет Ethereum, сокращенно — ETH
— Создание программы или смарт-контракта, его запись в блокчейн
— Выполнение программы или смарт-контракта.
Все эти операции — платные, оплачиваются они газом. И величина оплаты напрямую зависит от сложности этой операции.
Например, любой перевод монет ETH можно совершить за 21 000 газа. Если же говорить о создании и выполнении программ (смарт-контрактов) — то всё зависит от конкретного случая. Стоимость выполнения программы зависит от того, что она делает. Если она выполняет множество операций, цена будет существенной. При этом запись в блокчейн стоит во много раз дороже, чем та же математическая операция (скажем, сложение чисел).
В технической документации Ethereum подробно описана стоимость различных операций. Обычным владельцам криптовалюты это знать необязательно, это интересно, прежде всего, программистам или трейдерам.
Подробнее о транзакциях в Ethereum
Напомним, транзакция — это передача монеток ETH от одного владельца другому, или же выполнение программы или смарт-контракта в сети Ethereum.
Абсолютно любая транзакция в сети Ethereum должна содержать такие данные:
— Адрес кошелька получателя
— Сумма перевода
— Лимит газа, или максимальное количество газа, которое отправитель готов заплатить за транзакцию
— Дополнительная информация
Транзакцию, разумеется, выполняет какой-то майнер (то есть, условно говоря, какой-то компьютер из сети Ethereum обрабатывает ваш платёж или запускает смарт-контракт). Количество газа, которое соответствует сложности вашей программы, переводится в эфир и перечисляется майнеру в качестве вознаграждения за проделанную работу.
Лимит газа необходим, чтобы не обанкротить человека, создавшего смарт-контракт, если он допустил какую-либо ошибку в своей программе. Представьте, что в результате ошибки программиста программа будет выполняться очень долго. В таком случае, с него должно будет списаться очень большое количество газа, возможно — все средства, что у него имеются. Если установлен лимит газа, можно избежать таких ситуаций.
При этом если в качестве лимита указано 100 000 газа, а для выполнения потребовалось 10 000, то списано будет только нужное количество газа. С другой стороны, если указан лимит в 100 000, а потребовалось всего лишь на единицу больше, то есть 100 001 газа, то весь он потратится и возвращён не будет. Грустно, но это правда. Поэтому за такими вещами необходимо следить.
Стоимость газа
Выше было много сказано о газе, но до сих пор ни слова о том, сколько стоит газ.
Для начала важно усвоить вот что: в эфире есть свои "копейки" (или "центы", если вам угодно) — то есть мелкие части монеток ETH. Вот какие бывают части:
1 эфир (ETH) = 1000000000000000000 wei (вэй) = 1000000000 gigawei (гигавэй, то есть миллиард вэй) = 1000000 szabo (сабо) = 1000 finney (финни)
Примечание: такие странные названия связаны с тем, что дробные доли эфира названы в честь Вэй Дая (англ. Wei Dai), Хэла Финни (англ. Hal Finney) и Ника Сабо (англ. Nick Szabo). Все эти люди — важные персоны мира криптовалют.
Поcкольку вэй — это ну очень маленькая часть монетки ETH, удобнее всего оперировать гигавэями — миллиардами вэев.
С этим разобрались, возвращаемся к газу.
Итак, цена газа… назначается владельцем эфира самостоятельно! Да, в зависимости от используемого вами кошелька, вы можете сами выбрать стоимость единицы газа в рамках определенного диапазона. Например, в кошельке MyEtherWallet вы можете указать стоимость 1 газа в рамках от 1 до 60 гигавэев.
Теперь пример. Если вы хотите переслать эфир с одного кошелька на другой, вам нужно заплатить фиксированную цену в 21 000 газа (об этом уже было упомянуто выше). Если вы укажете цену газа в 30 гигавэев, то за транзакцию вы заплатите 21 000 * 0.00000003 = 0.00063 ETH, что по нынешнему курсу равно где-то $ 0.7. Дорого? Вы всегда можете указать меньшую стоимость единицы газа. Только помните, что есть очередь транзакций, и первыми в этой очереди находятся те из них, которые имеют наибольшую комиссию.
Если вы новичок и не можете подобрать стоимость газа интуитивно, то воспользуйтесь сервисом ETH Gas Station. Он поможет вам с подбором.
Кстати, не выставляйте слишком большую цену на газ — в этом нет особого смысла! Транзакции в Ethereum выполняются куда быстрее, чем в сети Bitcoin. Некоторые этого не понимают и выставляют большую стоимость газа, о чем потом очень сильно жалеют. Например, в 2016 году один человек совершил транзакцию, заплатив в качестве комиссии 761 ETH. По курсу 2016 года это было около $6000, но если пересчитать размер комиссии, пользуясь современным курсом, она составила бы $927 500. Уму непостижимо! Если не верите, то вот вам доказательство:
https://etherscan.io/tx/0xeda3bf566ae21fbc7bbfcb805d73181b0037036d700d57695e28f1e9bfe0d69c.