- Руководство по газу
- Виртуальная машина Ethereum и газ
- Компоненты газа
- Почему существует газ?
- Взгляд на перспективу
- Что такое газ в Ethereum, gas limit и gas station + другие валюты
- Читайте в статье
- Gas в Ethereum
- Зачем нужен газ?
- Что такое Gas?
- Gas Limit
- Комиссия в транзакции
- Gas Station — актуальная цена на gas
- Что делать, если для транзакции мало газа?
- Газ для разработчиков смарт-контракта
- Ethereum Classic
- NEO Block GAS
- Другие криптопроекты с «рабочими» токенами
Руководство по газу
Руководство по газу, его предназначению, его нюансам и его пользе в блокчейне Ethereum.
С 1 по 3 января 2018 года средняя стоимость выполнения транзакции в блокчейне Ethereum выросла на 187%. Причина была связана с увеличением цены на «газ», единицы измерения, используемой для представления стоимости выполнения операций в Ethereum. Увеличение сетевого трафика в начале января стало толчком к росту цены на газ, так как люди боролись за то, чтобы их транзакции были приоритетными. Газ, как мы выясним, является фундаментальным и полезным элементом блокчейна Ethereum. Однако все это пока вызывает вопросы и остается непонятным, особенно для тех, кто только начинает совершать сделки в блокчейне.
Если мы сравним (на очень высоком уровне) газ в сети Ethereum с комиссией за транзакцию, которую компания-эмитент кредитной карты взимает за использование карты, мы увидим путаницу и потенциальные проблемы, вызванные концепцией и волатильностью газа и цены на газ. Клиенты в настоящее время никогда напрямую не имеют дела с комиссией за транзакции, выполняемые с помощью кредитной карты. Стоимость относительно стандартная, определяется компанией, выпустившей кредитную карту; она скрыта в стоимости товара или услуги и не может быть ненадлежащим образом использована в случае потери ваших денег и аннулирования операции.
Сила блокчейн-технологии заключается в отсутствии центрального органа, который определяет размер комиссий, штрафов и может по своему желанию блокировать любую транзакцию, тем самым эффективно устраняя людей из потребительской экономики. Однако обращение к любому лицу, участвующему в экономике распределенного реестра, независимо от его прошлого, опыта, частоты использования или причины использования блокчейна, с просьбой разобраться в технической части работы газа для обеспечения выполнения (и выполнения оперативно) проводимых этим лицом транзакций, не является масштабируемым пользовательским опытом. В долгосрочной перспективе разработчики приложений найдут способы упростить взаимодействие пользователя с газом, чтобы повысить качество обслуживания клиентов и снизить риск аннулирования сделок. Между тем, однако, очень важно, чтобы мы понимали базовые функции газа, его полезность и причину или причины его существования.
Виртуальная машина Ethereum и газ
Обсуждение газа требует разъяснения, что такое виртуальная машина Ethereum (EVM). На высоком уровне EVM – это среда, в которой смарт-контракты исполняются в блокчейне. Каждый узел в сети Ethereum запускает блокчейн Ethereum, и вместе они образуют EVM, или полный по Тьюрингу мировой компьютер. В рамках EVM смарт-контракты выполняются с помощью серии операций. Другими словами, транзакция в блокчейне Ethereum может инициировать смарт-контракт, который состоит из серии последовательных операций, все из которых происходят в пределах EVM.
В блокчейне Ethereum каждая операция (многие из которых могут быть объединены для создания единого уникального смарт-контракта или транзакции) требует определенного количества вычислительной энергии или работы. Поскольку майнеры должны использовать энергию для выполнения этих операций, была создана единица измерения для мониторинга и компенсации майнерам усилий, которые они затрачивают на выполнение транзакций и смарт-контрактов. Эта единица измерения называется ГАЗ. Газ – это единица измерения, уникальная для блокчейна Ethereum, которая измеряет вычислительную работу, необходимую для выполнения транзакций или смарт-контрактов в пределах EVM. Чем больше энергии требуется для выполнения операции (т.е. более сложный код), тем больше газа требуется.
Сам по себе газ не «существует». Другими словами, им нельзя владеть; и ни у кого не может быть токена «газ». Скорее, значение каждой единицы газа выражается в ETH. Например, операция может стоить 3 газа, что может быть эквивалентно 0,00004 ETH. Итак, если газ измеряется в ETH, тогда почему мы не можем убрать газ и выражать цену каждой операции непосредственно в ETH? Ценовая волатильность эфира не является секретом (в том же временном периоде с 1 по 3 января цена выросла на 25%). Однако вычислительная энергия, необходимая для выполнения конкретной операции, остается постоянной. Например, стоимость газа при выполнении операции «дополнение» в Ethereum 1 января была такой же, как и 3 января, независимо от стоимости эфира.
Таким образом, концепция газа существует для того, чтобы отделить вычислительную стоимость выполнения операции от рыночной стоимости эфира. Стоимость газа (т.е. необходимой энергии) операции остается постоянной независимо от волатильности цен. Стоимость газа не так легко изменить; однако, легко изменить, сколько эфира представляет каждая единица газа. Поэтому, если цена эфира сильно повышается, то сеть может уменьшить количество эфира, которое представляет каждая единица газа для того, чтобы сохранить неизменной стоимость, которую участник платит за газ.
Компоненты газа
Грубо говоря, газ можно разделить на три понятия: стоимость газа, цену газа и предел газа:
Стоимость газа представляет собой единицы газа, необходимые для выполнения каждой операции. Стоимость газа каждой операции в блокчейне Ethereum была предопределена в «желтой книге». Например, стоимость газа при выполнении операции «дополнение» составляет 3 газа и останется таковой независимо от стоимости эфира в долларах США. Это уточнение дает более полное представление о том, почему мы используем газ вместо того, чтобы напрямую связывать эфир со стоимостью выполнения операции. В то время как количество газа, необходимое для выполнения одной операции, не может быть легко изменено сетью, цена газа в эфире может легко реагировать на волатильность эфира или на сетевой трафик.
Цена газа – это стоимость единицы газа в эфире. Цена на газ измеряется в «Gwei». Один Gwei составляет 1 миллиард Wei, а Wei – самая маленькая единица эфира. Сайты, такие как ethgasstation.info, размещают среднюю цену на газ в сети, но пользователи, возможно, захотят установить более высокую цену на газ для своей сделки, которая будет приоритетной для майнеров. Майнеры удерживают газ (или, точнее, тот эфир, который платит участник, который представляет газ), который пользователь привязывает к транзакции. Поэтому они будут отдавать приоритет той транзакции, которая имеет более высокую цену на газ, связанную с ней, по сравнению с другими транзакциями с более низкой ценой на газ.
Предел газа – это максимальное количество газа, которое вы готовы потратить на ту или иную сделку. Предел газа может быть и, как правило, больше, чем фактическое количество газа, необходимое для сделки. Если пользователь указывает слишком низкий предел газа (т.е. операции внутри сделки в совокупности требуют больше газа, чем пользователь привязывает к транзакции), то майнер будет завершать сделку до тех пор, пока газ не будет израсходован. На этом этапе майнер будет продолжать взимать комиссию (поскольку он потратил время и энергию на выполнение как можно большего количества операций), и если транзакция будет неудачной, в блокчейне сохранится запись о транзакции как о «неудавшейся». Пределы газа существуют для защиты пользователей и майнеров от потери средств (для пользователей) и энергии (для майнеров) от ошибочных кодов или вредоносных атак.
Почему существует газ?
Компоненты газа, его полезность и потенциальные подводные камни для неопытного пользователя вызывают вопрос: почему газ вообще существует? Грубо говоря, газ существует в блокчейне Ethereum для решения трех задач: финансовой, теоретической и вычислительной.
Финансовая цель газа состоит в том, чтобы стимулировать майнеров на использование их времени и энергии для выполнения транзакций и смарт-контрактов. Более сложные операции требуют больше вычислений, и, следовательно, больше газа. Если пользователь хочет, чтобы его сделка была приоритетной, он или она может установить более высокую цену на газ, что, вероятно, убедит майнеров обработать эту транзакцию первой. Газ в качестве компенсации за энергию станет более важным после реализации доказательства доли. Поскольку майнеры больше не будут получать эфир в качестве вознаграждения за майнинг существующего блока, финансовое вознаграждение за расходование энергии в блокчейне будет поступать от обработки транзакций.
Теоретическая цель заключается в согласовании механизмов стимулирования участников в сети. По большей части теория о блокчейне занимается тем, чтобы выяснить, как минимизировать вредные или злонамеренные действия злоумышленников в доверительной среде. Газ частично решает эту проблему путем выравнивания экономических стимулов между пользователями. У майнеров есть стимул работать в сети, а у пользователей нет стимула действовать плохо или писать вредоносный код, поскольку они подвергают риску свой собственный эфир (в виде газа).
Вычислительная цель газа восходит к старому, основополагающему аспекту теории вычислений — проблеме остановки. Проблема остановки заключается в том, чтобы определить, остановится ли произвольная программа или она будет работать вечно, просто глядя на описание и входные значения. В 1936 году Алан Тьюринг определил, что ни для одной машины невозможно решить проблему остановки. В EVM это означает, что майнер никогда не сможет начать обработку транзакции и знать на 100%, что транзакция не будет продолжаться вечно. В случае с газом, особенно с газовым пределом, конечное количество газа всегда привязывается к транзакции. Даже если майнер начал обрабатывать транзакцию, которая была закодирована на то, чтобы продолжаться бесконечно, то газ, либо из-за ошибки, либо из-за атаки на сеть, в конечном итоге закончится, транзакция завершится, и майнер все равно получит компенсацию.
Взгляд на перспективу
Для пользователей, которые только начинают взаимодействовать с блокчейном Ethereum, газ может показаться сложной и пугающей задачей для решения. Установите слишком низкую цену на газ, и ваша сделка не будет обработана; слишком высокую – и вы рискуете переплатить. Укажите слишком низкую стоимость газа, и ваша транзакция завершится с ошибкой (но вы все равно заплатите за нее). Возложение бремени знаний, реализации и успеха на пользователя 100% времени, вероятно, не является масштабируемой моделью. По мере того как все больше даппов будет появляться на рынке, разработчикам придется сфокусировать свое внимание на пользовательском опыте, и, надеемся, они поймут, что управление газом – это «легкая добыча». В конце концов, участники сети всегда могут вернуться к «сырому» блокчейну и начать управлять газом, стоимостью газа и газовыми пределами своих транзакций лично и без какой-либо платформы, сервиса или компании-посредника между ними. Это, в некотором смысле, красота блокчейна.
Источник
Что такое газ в Ethereum, gas limit и gas station + другие валюты
В этой статье рассказываем про концепцию лимита газа, самого понятия газ и цены на него, что является центральной особенностью блокчейна Ethereum и всей экосистемы. Также отвечаем на вопрос, является ли GAS отдельной валютой. Кроме того, рассказываем про Gas в Neo и ETH Classic.
Читайте в статье
Gas в Ethereum
Если вы каким-либо образом работали со смарт-контрактами, переводили ETH или участвовали в ICO, то вы сталкивались с газом. Эта механика, выраженная в gas limit (лимит газа) и gas price (цена за газ), является ключевой для проведения транзакций в экосистеме Эфириум.
Чтобы понять детали, нужно вспомнить базовую концепцию проекта Ethereum.
Ethereum — гигантская сеть, которая состоит из объединенных компьютеров с установленным клиентом. Эта взаимосвязанная сеть называется виртуальной сетью Ethereum (EVN), как бы глобальным суперкомпьютером, где все транзакции обновляются и записываются на каждый компьютер.
Эфир (ETH) — это внутренняя валюта блокчейна Ethereum и используется как «топливо» для сети: для операций, передачи ценности, системы поощрений.
Новым в блокчейне Ethereum была возможность исполнять смарт-контракты (относительно биткоина). Это контракты, предварительно запрограммированные с набором необходимых правил и положений, которые выполняются самостоятельно, без необходимости в посреднике.
как работают смарт-контракты
Зачем нужен газ?
ETH открыто торгуется на биржах, и его рыночная цена может быстро меняться. Создание единиц GAS заключается в том, чтобы отделить стоимость вычислительной работы в сети Ethereum от изменчивой рыночной цены Ethereum, так как стоимость вычислений изменяется не так быстро.
При создании смарт-контракта вы рассчитываете на фиксированные взносы в эфире. Например, когда ETH стоил $10, а вам нужно было заплатить за работу 0,5 ETH, цена в долларах вас устраивала — всего 5 долларов.
Но эфир вырос, теперь за 0,5 ETH придется заплатить 250 долларов, например. Это мешает использовать систему для разработки и запуска приложений. Поэтому была создана система с газом.
Что такое Gas?
Газ в Эфириум — это единица измерения вычислительной работы для осуществления транзакций или смарт-контрактов в сети Ethereum. Это не монета, не какая-то часть токена, это динамический показатель, через который будет выставляться счет уже в ETH.
Эта система похожа на использование киловатт для измерения электричества в доме. Количество потраченной электроэнергии не измеряется сразу в рублях, вместо этого счет выставляют за кВт/ч.
Важно понимать, что для разных видов транзакций требуется разное количество газа. Как и с электричеством или бензином: мощный прибор или двигатель потратит больше в сравнении со слабым.
Например, простая транзакция отправки ETH с адреса на адрес стоит 21 000 газ. Выполнение смарт-контрактов осуществляется майнером, который тратит свое время, электричество и мощности на выполнение кодов и завершение транзакции. Для смарт-контракта газ будет другим.
Gas Limit
Лимит газа — это максимальное количество газа, которое вы готовы потратить на определенную транзакцию. Высокий уровень газа означает, что для выполнения интеллектуального контракта необходимо выполнить большую вычислительную работу.
Для стандартного переноса ETH требуется предел газа в 21 000 единиц газа. Это указывается в дополнительных опциях в кошельке при переводе. Нужно указывать лимит с запасом: непотраченные единицы все равно вернутся обратно.
На изображении сверху отмечено, что лимит газа установлен на отметке 42000. Для транзакции понадобилось 21080 единиц GAS, также указана текущая цена в ETH и Gwei за один газ и общая стоимость транзакции.
Чем сложнее команды, которые вы хотите выполнить, тем больше газа вы должны заплатить. Вы можете увидеть это в действии, когда участвуете в ICO за ETH или когда вы хотите вывести монеты на биржу — плата за перевод намного выше, чем 21 000 газа по умолчанию. Это связано с тем, что интеллектуальные контракты ICO обладают гораздо более сложными кодами и требуют гораздо больших вычислений, чем простой перенос ETH. Обычно около 200-300 тысяч Gas.
Ограничение газа — лимит — действует как механизм безопасности, чтобы защитить вас от полного растрачивания средств из-за каких-либо ошибок.
Уже ставший классическим пример для лимита газа — бак автомобиля, расчитанный на определенный объем топлива.
Комиссия в транзакции
Рассчитываться комиссия за транзакцию в сети Эфириум будет по следующей формуле:
Например, на текущий момент классические цены таковы:
- 21010 Gas тратится,
- цена за единицу газа 6 Gwei, или 0,000000006 ETH,
- всего на транзакцию потребуется выделить 126060 Gwei, или 0,00012606 ETH.
Gas Station — актуальная цена на gas
Рекомендуемые цены на газ (исходя из текущих условий сети):
- для транзакции с низким приоритетом (до 30 минут) — 1 Gwei
- стандартное время проведения (до 5 минут) — 3 Gwei
- высокий приоритет, транзакция в следующем блоке (меньше 2 минут) — 6 Gwei
Цену пользователь назначает самостоятельно, но часто все доверяют настройкам по умолчанию в кошельке. Иногда цену можно уменьшить, если транзакцию не нужно проводить очень срочно. Безопасная самая низкая цена на июнь 2018 указана выше.
Чтобы еще уменьшить комиссию за транзакцию в Ethereum, можно выставить цену за 1 gas в районе 1-2 wei (самая маленькая часть Ether). Пока мемпул не перегружен и блоки не заполнены под завязку (максимально вмещают 6 700 000 gas), такую транзакцию тоже могут забрать. Но это можно быть рисковано. Кроме того, в MyEtherWallet и официальном клиенте нельзя выставить цену ниже 1Gwei через ползунок. В MEW способ работает при «Оффлайн-переводе».
EthGasStation предназначена для повышения прозрачности цен на газ, там можно посмотреть все актуальные данные по газу и транзакциям в сети Ethereum. Этот сайт помогает установить актуальную рыночную цену за единицу газа и не переплачивать.
Находится по адресу ethgasstation.info
Что делать, если для транзакции мало газа?
Транзакции будут обрабатываться майнерами до тех пор, пока у вас не исчерпан газ. Блокчейн будет записывать транзакцию как «Failed», и ETH останется в кошельке, поскольку для завершения перевода недостаточно газа.
Газ, использованный для неудавшейся транзакции, останется у майнеров, и вы НЕ получите его обратно. Это объясняется тем, что ресурсы на выполнение перевода тратились.
Чтобы исправить транзакцию с низким количеством газа, нужно дождаться ее невыполнения и провести заново, указав правильный лимит. К сожалению, повысить лимит в процессе уже нельзя.
- указывать лимит газа нужно с запасом,
- различные операции будут по-разному тратить газ,
- майнеры не будут обрабатывать перевод по исчерпании лимита,
- оставшийся после транзакции газ возвращается.
Газ для разработчиков смарт-контракта
Запуск смарт-контрактов в сети стоит дороже, поскольку они выполняют различные действия. Каждый смарт-контракт разрабатывается индивидуально и адаптируется под нужды проекта. Например, для элитного проекта можно позволить цену за газ в $5, а для какого-нибудь мессенджера — нет.
Существуют две основные издержки, связанные с отправкой и выполнением транзакции Ethereum:
- Стоимость исполнения,
- Стоимость сделки.
Стоимость исполнения в первую очередь связана с хранением глобальных переменных и вычислительной мощностью, используемой для расчетов.
Вот цены за разные операции:
- Добавить или вычесть два целых числа 3 gas
- Умножить или разделить два целых числа 5 gas
- Сравнить два целых числа 3 gas
- Создать новый контракт 32000 gas
- Сохранение 256-битного слова 20000 gas
- Сохранить 1 МБ (31250 256-битных слова) 625000000 gas
- Отправить 1 транзакцию 21000 gas
- Включить 1 байт (не нуль) в данные транзакции 68 gas
- Включить 1 МБ в данные транзакции 68000 gas
- Развертывание контракта (первый раз)
32 000 gas
Затраты на ввод транзакций (общие)
4 для 0-байтовых и 64 для не-0 байтовых входов
Стоимость транзакций по контракту
Также по отдельным операциям:
Хорошо написанный контракт, скорее всего, переместит максимум вычислений за пределы цепи.
Общий размер смарт-контракта будет играть роль в размере комиссии. Если вы можете разделить контракт на более мелкие отдельные части, это снизит расходы на газ при взаимодействии с ними.
Самая дорогая операция с точки зрения газа — хранение. Хранение больших объемов данных в блокчейне обычно не используется: чаще сохраняют только хеш. И сокращают код:
Также нужно удалить столько дублирования внутри структур, сколько возможно.
Разработчики должны знать эти затраты и проектировать dApps с их учетом.
Ethereum Classic
Принцип работы у ETC с газом у этого форка остался такой же, как и у оригинальной цепи.
Каждой операции в EVM было присвоено определенное количество газа, которое он потребляет. gasUsed — сумма всего газа для всех выполненных операций. Существует таблица, которая дает представление о некоторых ценах. Для Классика:
Для оценки gasUsed существует API-интерфейс — evaluationGas.
Он имитирует попадание транзакции в текущий блок. Но также не может гарантировать точных расчетов, только примерные затраты.
NEO Block GAS
Кроме эфира, GAS используется в сети Нео. Но тут у него другая концепция и принципиальные отличия:
- это отдельный токен,
- торгуется на бирже самостоятельно,
- можно получить за хранение NEO в определенных кошельках.
Посчитать свои дивиденды можно с помощью этого калькулятора https://neotogas.com/
GAS также используется для проведения смарт-контрактов внутри сети. Он является операционным токеном. Его цена не высчитывается из НЕО, а существует сама по себе.
В экосистеме NEO одноименный токен используется для управления. В сети алгоритм консенсуса dBFT. Монеты дают право голоса.
GAS перечисляется с каждым новым блоком. Точнее не целый токен, а его часть.
NeoGas генерируется каждые
20 секунд в количестве 8 штук. Все они распределяются между держателями NEO на этот момент времени.
Через 2 млн блоков количество газа уменьшается на 1 токен.
Другие криптопроекты с «рабочими» токенами
В DigixDAO для управления системой используются DGD, а основной токен для покупки — DGX
IGNT используется для «доказательства членства» в Ignite и продавался на ICO. Но им нельзя торговать, он используется для управления и участия в рейтинге. А токен IGNITEX торгуется на бирже и доступен для обмена вне системы.
Power Ledger использует POWR и Sparkz: один токен привязан к фиату, используется для транзакций, а другой используется внутри платформы.
MintHealth выплачивает VIDA как вознаграждение, внутренние баллы лояльности, а токены MHST позиционируются как акции, через который привлекают капитал в проект.
Источник