- Что такое газ в Эфириуме? Сколько платить за транзакции Ethereum.
- Что можно сделать в сети Ethereum? Газ.
- Транзакция в сети Ethereum
- Перевод ETH с одного кошелька на другой
- А можно вообще не платить?
- Как этим пользоваться?
- Как обмануть систему и уменьшить цену газа в MyEtherWallet?
- Все про газ в Ethereum и других криптовалютах
- Gas в Ethereum
- Зачем нужен газ?
- Что такое Gas?
- Gas Limit
- Комиссия в транзакции
- Gas Station — актуальная цена на gas
- Что делать, если для транзакции мало газа?
- Газ для разработчиков смарт-контракта
- Ethereum Classic
- NEO Block GAS
- Другие криптопроекты с «рабочими» токенами
Что такое газ в Эфириуме? Сколько платить за транзакции Ethereum.
«Не хватило газа на выполнение транзакции! Что это значит? Что делать то?» — такие вопросы часто задают пользователи Эфириума. И действительно: Gas, Gwei, контракты — зачем так все усложнять? В прошлый раз разбирались с транзакциями Биткоина. Сейчас задача стоит посложнее, погнали!
1 ETH = 1000000000000000000 wei = 1000000000 gwei (shannon) = 1000000 szabo = 1000 finney
Вот так Виталик Бутерин и Ко прикололись над пользователями (зная как Виталик одевается, что мы часто обсуждаем в чате 2BTC, не удивительно). Они назвали доли Эфиров в честь значимых фигур в истории криптовалют.
Hal Finney — первый пользователь Биткоин, после Сатоши Накамото
Nick Szabo — создатель идеи смарт-контрактов
Wei Dai — создатель концепта b-money, по сути, предка Биткоина
Хотите изучить подробнее «почему так названы» — читайте эту статью.
Обычно у новых пользователей Эфира бомбит, когда они впервые встречаются с понятием газ. В Биткоине все было просто — установил размер комиссии и ждешь пока перевод пройдет. Маленькая комиссия — долго ждешь, большая — поменьше. Биткоин был создан как криптовалюта, для того чтобы переводить деньги между людьми. Основное отличие Эфириума от Биткоина заключается в наличии децентрализованной виртуальной машины (EVM). Она позволяет запускать любую программу/смарт-контракт (обычно на языке программирования Solidity) при наличии достаточного количества времени и памяти (Подробнее). Ethereum создавался не как валюта для переводов, а как платформа для выполнения приложений (с оплатой теми самыми Эфирками — ETH).
В статье про кошельки Эфира мы говорили, что родной кошелек Ethereum жрет слишком много ресурсов компьютера. Это происходит как раз потому, что на вашем компьютере работает та самая виртуальная машина EVM и выполняет разные программы.
Что можно сделать в сети Ethereum? Газ.
Для простоты рассмотрим 3 действия, которые можно сделать:
- Перевести ETH другому пользователю.
- Создать смарт-контракт (программу) и записать ее в блокчейн.
- Выполнить смарт-контракт (программу).
За каждую из этих операций нужно заплатить. Единицей оплаты в сети Ethereum является «газ». На самом деле перевод «газ» является неточным, «gas» было бы правильнее перевести как «бензин». Каждая операция стоит определенное количество газа (бензина). Можно провести аналогию с автомобилем: чтобы поехать в магазин нужно небольшое количество бензина, а для поездки в другой город его потребуется много.
- Для перевода ETH с одного кошелька на другой требуется 21000 gas.
- Для создания смарт-контракта может потребоваться разное количество газа, возьмем произвольный контракт:
У каждого контракта в разделе «Contract Creator» указан адрес создателя и транзакция по записи контракта в блокчейн (выделена красной рамочкой). Если посмотреть эту транзакцию видно, что на создание было потрачено 219780 gas. - Для выполнения смарт-контракта тоже может потребоваться разное количество газа, дело в том что контракт (программа) может выполнить разное количество операций в ходе работы. Если посмотреть на контракт, что мы выбрали для примера — каждый пользователь заплатил за его выполнение 22968 gas. Вы можете убедиться в этом сами, посмотрев информацию о каждой из транзакций:
Подробно необходимое количество газа для каждой операции описано в «уставном документе» Ethereum — Yellow paper, стр. 20. Например, для записи данных в блокчейн необходимо намного больше газа, чем для простого перемножения двух чисел.
Тема создания смарт-контрактов очень интересна, но, прежде всего, для разработчиков. Кстати, Etherscan покажет вам все, даже код транзакции, вы всегда можете посмотреть что там происходит.
Транзакция в сети Ethereum
В Эфире любая транзакция состоит из четырех частей:
- Адрес получателя
- Сумма ETH к переводу (может быть 0)
- Предельная величина газа на исполнение транзакции
- Дополнительные данные
При включении транзакции в блок исполняется требуемый код (если это запрос к смарт-контракту), и потребленное контрактом кол-во газа переводится в Эфирки и списывается с вас в виде вознаграждения майнеру.
Лимит газа служит определенным ограничителем платы за транзакцию. Если вы выставите лимит 1 000 000 gas, а смарт-контракту нужно всего лишь 50 000 gas, то вы и заплатите только 50 000. Лимит сделан для того, чтобы обезопасить пользователя и он не потратил больше средств, чем может себе позволить (скажем контракт мог бы запустить бесконечный цикл и пользователь попал бы впросак). Кстати, если для выполнения транзакции контракту нужно будет 1 000 005 gas, то, увы, gas потратится, а до конца программа не доработает и не выдаст результат. Обычно разработчики сами указывают сколько gas необходимо для выполнения их смарт-контракта.
— СКОЛЬКО СТОИТ ГАЗ-ТО?
— Пользователь сам назначает цену в ETH для газа!
В MyEtherWallet в верхнем правом углу есть ползунок и цену газа можно выбрать в диапазоне от 1 до 60 Gwei = от 0.000000001 до 0.00000006 ETH.
Перевод ETH с одного кошелька на другой
Перевод ETH стоит 21 000 gas.
Если вы выставите цену 1 gas = 20 Gwei вы заплатите такую комиссию за перевод:
21000 × 0.00000002 = 0.00042 ETH (0.12$)
Зачем платить больше? У Ethereum, как и у Bitcoin есть пул транзакций. Красивая картинка MyEtherWallet описывает процесс проведения транзакции:
В зависимости от того как быстро вы хотите, чтобы транзакция прошла, вы и выбираете цену газа. Есть прекрасный сервис ETH Gas Station, который позволяет подобрать оптимальное значение цены за бензин.
Если вы выставите цену 1 gas = 0.1 Gwei сервис обещает, что транзакция пройдет за 22 блока. Если 12 Gwei или больше — 2 блока. Не забывайте, что время нахождения блока в сети Ethereum сейчас 15 секунд, а значит при самой маленькой комиссии в 0.1 Gwei ваша транзакция должна пройти всего за 5 минут!
Зачем пользователи платят за газ по 50 Gwei — совершенно не понятно, а таких много (посмотреть можно в пуле транзакций). Кстати у ETH Gas Station есть справа внизу табличка с разными данными за последние 2 500 блоков. На текущий момент рекордсмен заплатил $5339.94 за перевод, потому что поставил лимит газа 200 000 и цену газа, вероятно случайно, 200 000 Gwei (0.0002 ETH). Транзакция потратила 92 068 gas. Вот она в Etherscan.
Рекордсмен в 2016 году заплатил комиссию 761 ETH за 1 транзакцию (правда Эфир тогда стоил существенно меньше, итого, всего лишь, чуть более $6 000).
А можно вообще не платить?
Разумный вопрос. Как ни странно, ответ на него — «Да!» (ну практически).
Дело в том, что пул транзакций Эфира пока еще небольшой, хотя, вероятно, в будущем он будет расти. Посмотрите на последние блоки:
У Эфира максимальный размер блока измеряется не в байтах, как у Биткоина, а в количестве газа. Сейчас в один блок может попасть транзакций на ±6 700 000 gas. По факту, очень часто блоки не заполнены:
- Левый столбик, выделенный красным — количество транзакций в блоке.
- Справа восклицательный знак стоит рядом с блоком, который заполнен всего на 1%.
Очередь транзакций маленькая. Мы провели небольшое исследование и обнаружили, что на текущий момент транзакции с ценой 1 gas = 1 wei проходят.
При цене газа 1 wei, независимо от количества газа, необходимого для вашей транзакции (напомним, при простом переводе это 21 000 gas), комиссия будет ничтожно мала!
Кстати, с ценой газа = 0 wei, увы, транзакция не проходит…
Как этим пользоваться?
При переводе вы указываете:
- Адрес получателя — здесь все понятно
- Лимит газа — 21 000 для перевода ETH. В случае с отправкой на смарт-контракт, например при участии в ICO, разработчик всегда указывает эту величину, лучше не экспериментировать.
- Цену единицы газа — вы вправе выбирать самостоятельно (на текущий момент даже при 1 wei все работает), чем она больше, тем быстрее пройдет транзакция.
В официальном кошельке Ethereum размер комиссии выставляется ужасно. Вы можете двигать ползунок, при этом минимальная цена газа будет 1 Gwei. В MyEtherWallet минимум тоже 1 Gwei.
Как обмануть систему и уменьшить цену газа в MyEtherWallet?
Способ 1:
Вы можете зайти на вкладку «Send Offline» или на русском «Оффлайн-перевод», там можно выставить цену газа в wei, а не в Gwei:
Способ 2:
В браузере Google Chrome, например, можно выбрать «Инструменты разработчика» Ctrl + Shift + I, кликнуть на ползунок с выставлением цены газа и изменить начальное значение с 1 на 0.000000001 (= 1 wei), например.
Главное, не путайте лимит газа и цену газа, а то можно закончить, как тот парень. Наш канал в Telegram @two_btc
Редакция 2bitcoins.ru благодарит Славу Карпенко за помощь в подготовке данной статьи.
Мы обещали, что Эфиру тоже достанется. Обещания надо выполнять.
Смотрим последние блоки в сети: https://etherscan.io/blocks
Возьмем 10 блоков, скажем с 4 391 616 по 4 391 625 (в них транзакций довольно много, кстати, по сравнению с другими выборками).
Количество транзакций: 681
Вознаграждение майнеров: 30.7 ETH ($9 400)
1 транзакция обошлась почти в $14.
Так криптовалюты = МММ? Или нет? Пишите нам в чат.
Источник
Все про газ в Ethereum и других криптовалютах
В этой статье рассказываем про концепцию лимита газа, самого понятия газ и цены на него, что является центральной особенностью блокчейна 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 позиционируются как акции, через который привлекают капитал в проект.
Источник