Меню

Что такое «Газ» в мире Ethereum

Газ — это внутренние цены платформы Ethereum, установленные для выполнения транзакций или смарт-контракта. На момент написания до запуска Frontier он зафиксирован на отметке в 10 Szabo, что составляет около 1/100 000 эфира (Ether). Это сделано чтобы отделить единицу эфира (ETH) и его рыночную стоимость от единицы измерения использования вычислительной мощности (газ).

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

Газовая система не сильно отличается от использования обозначения «киловатт» для измерения домашнего потребления электроэнергии. Здесь есть только одно отличие от реального рынка электроэнергии.

Оно заключается в том, что инициатор транзакции сам устанавливает цену на газ, с которой может согласиться или не согласиться майнер, что в итоге приводит к появлению рынка самого газа. Вы можете увидеть эволюцию цен на газ здесь: https://etherscan.io/charts/gasprice.

У Ethereum тоже есть ограничения на размер блока, поэтому вы платите за пространство в следующем блоке, как и в блокчейне биткоина.

Если хотите узнать больше о транзакции Ethereum и проверке своего баланса, читайте статью Как осуществлять транзакции Ethereum и проверить свой баланс?

В системе Bitcoin майнеры отдают приоритет тем транзакциями, на которые установлены максимально высокие комиссии. Это же справедливо и для системы Ethereum, где майнеры могут игнорировать те транзакции, где цены на газ слишком низкие.

Цены на газ за транзакцию или за смарт-контракт настроены так, чтобы иметь дело с Тьюринговой природой Ethereum и его EVM (Ethereum Virtual Machine — виртуальной машиной Ethereum). Основная идея заключается в том, чтобы ограничить бесконечные циклы.

Так, например, 10 Szabo, или 0,00001 Eth или 1 Gas могут выполнять строку кода или какую-то команду. Если на счету учетной записи недостаточно эфира для выполнения транзакции или отправки сообщения, то такие транзакции и сообщения являются недействительными.

Смысл этого правила состоит в том, чтобы прекратить DdoS-атаки (атаки на отказ в обслуживании) вызванные использованием бесконечных циклов, повысить эффективность кода и заставить злоумышленника платить за ресурсы, которые он использует — от пропускной способности интернет канала до ресурсов CPU и жестких дисков.

Чем сложнее команды, которые вы хотите выполнить, тем больше газа (и эфира) вы должны заплатить. Например, если Саша хочет отправить Мише одну единицу Эфира (Ether), то общая сумма, которую придется заплатить Саше, составит 1.00001 Eth.

Однако если Саша хочет заключить с Мишей смарт-контракт, цена которого установлена в зависимости от будущих цен на Ethereum, то в этой ситуации получится больше строк исполняемого кода и его исполнение потребует больше энергии и окажет большую нагрузку на распределенную сеть Ethereum. Значит, Саша должен будет заплатить больше, чем просто 1 Gas в транзакции из первого примера.

Одни вычислительные операции стоят дороже, чем другие. Это происходит потому, что они либо сами по себе более ресурсоемкие, либо потому, что они увеличивают объем тех данных, которые придется хранить в определенном состоянии. Ниже приведен список операций в виртуальном коде Ethereum и их стоимости в единицах газа.

Название операции
Стоимость (Gas)
Назначение
step
1
Стоимость запуска цикла исполнения
stop
0
Платить за операции типа SUICIDE не нужно
sha3
20
Оплата за операции SHA3
sload
20
Оплата за операции SLOAD
sstore 
100
Оплата за операции SSTORE, выполняемые при нормальных условиях (иногда                                                            удваивается или откладывается)
balance
20
Оплата за операцию BALANCE
create 
100
Оплата за операцию CREATE
call 
20
Оплата за операцию CALL
memory 
1
Стоимость каждого дополнительного слова при превышении лимита
txdata 
5
Оплата за каждый байт данных или кода транзакции
transaction
500
Оплата стоимости каждой транзакции

В настоящее время установлен лимит цен на газ для обеспечения стабильного запуска платформы Ethereum. Но через некоторое время цены отпустят в свободное плавание, и они будут определяться в зависимости от спроса и количества общего газа на один блок, что скорее всего приведет к их постоянному увеличению. Однако сделать это необходимо, чтобы стимулировать поддержание стабильности сети Ethereum.

Оставить комментарий

ТОП 3 криптобиржи