ГЛАВА 3. РАСЧЕТ ЗАТРАТ 3.1 Gas в сети Ethereum Gas – это внутренняя валюта сети Ethereum, которая используется для
заключения сделки и контрактов. Gas является единицей, которая измеряет
объем вычислительных усилий, которые потребуются для выполнения
определенных операций
.
Оплата за вычисления происходит всегда, независимо
от того, прошла транзакция или нет. Даже в случаях, когда транзакция
отклоняется, ноды должны подтвердить и выполнить вычисления. Поэтому
оплата за работу нод происходит независимо от успешности транзакции.
Цена на Gas за вычисления или контракт настроена для работы с Тьюринг
полным происхождением Ethereum и его EVM. Идея состоит в том, чтобы
ограничить бесконечные циклы. Так, например, 1 Gas может выполнять строку
кода или некоторую команду. Если в учетной записи недостаточно эфира,
чтобы выполнить транзакцию или отправить сообщение, то считается
недействительным. Задумка заключается в том, чтобы прекратить атаки на
отказ в обслуживании из бесконечных циклов, повысить эффективность кода и
заставить злоумышленника платить за ресурсы, которые они используют, от
пропускной способности до вычислений ЦП и хранения данных[13].
Чем сложнее команды, которые нужно выполнить, тем больше
количество Gas’a придется заплатить. Например, если некто A хочет отправить
пользователю B 1 Ether - общая сумма в 1.00001 Ether должна быть оплачена
пользователем A. Однако если A хочет заключить контракт с B в зависимости
от будущей цены на Ether, будет больше строк исполняемого кода и больше
потребления энергии, размещенного в распределенной сети Ether, и,
следовательно, пользователь A должен будет заплатить больше, чем 1 Gas, для
выполнения транзакции.
Некоторые вычислительные шаги стоят дороже, чем другие, либо потому,
что они являются дорогостоящими вычислительными, либо потому, что они
увеличивают объем данных, которые должны храниться в блокчейне.