Что подразумевается под термином «газ»?

Приложение Ethereum, которое я хочу использовать, говорит о необходимости запуска «газа». Что такое газ, и где я его получу?

178 голосов | спросил Jeff Coleman 20 Jpm1000000pmWed, 20 Jan 2016 19:49:09 +030016 2016, 19:49:09

7 ответов


265

«Газ» - это название специального подразделения, используемого в Ethereum. Он измеряет, сколько «действия» выполняют действие или набор действий: например, для вычисления одного Keccak256 криптографический хэш займет 30 газов каждый раз, когда вычисляется хэш , плюс стоимость еще 6 газов для каждых 256 бит хэширования данных. Каждая операция, которая может быть выполнена транзакцией или контрактом на платформе Ethereum, стоит определенное количество газа , при этом операции, требующие большего количества вычислительных ресурсов, стоят больше газа, чем операции, требующие нескольких вычислительных ресурсов.

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

Итак, если газ в основном является транзакционным сбором, как вы его платите? Здесь он становится немного сложнее. Хотя газ - это единица, в которой вещи могут быть измерены, для газа не существует фактического токена . То есть, вы не можете владеть 1000 газами. Вместо этого газ существует только внутри виртуальной машины Ethereum, как счет того, сколько работы выполняется. Когда речь заходит о фактическом оплате для газа, комиссия за транзакцию взимается как определенное количество ether , встроенный токен на Сеть Ethereum и токен, с которым шахтеры вознаграждаются за производство блоков.

Сначала это может показаться странным. Почему операции не имеют только затраты, измеренные в эфире напрямую? . Ответ заключается в том, что эфир, как и биткойны, имеет рыночную цену, которая может быстро меняться! Но стоимость вычислений не растет или уменьшается только потому, что цена эфира меняется. Таким образом, полезно выделить цену вычисления из цены токена , так что стоимость операции не должна меняться каждый раз, когда рынок движется.

Терминология здесь немного запутана. Операции в EVM имеют газ стоимость , но сам газ также имеет цену , измеряемую в терминах эфира. В каждой сделке указывается цена на газ , которую он готов заплатить в эфире за каждую единицу газа, что позволяет рынку определять соотношение между ценой эфира и стоимостью вычислительных операций (как измерено в газе) , Это комбинация двух, общий газ, используемый при умножении цены на газ, что приводит к общей сумме, уплаченной транзакцией .

Как ни круто, важно понять это различие, потому что это приводит к одной из самых запутанных вещей об транзакциях Ethereum для начального ученика: существует разница между вашей транзакцией, заканчивающейся газом, и вашим сделка не имеет достаточно высокой платы . Если значение цена на газ , установленное в моей транзакции, слишком низкое, никто даже не захочет запускать мою транзакцию в первую очередь. Он просто не будет включен в блокчейн шахтерами. Но если я предоставляю приемлемую цену на газ , а затем моя транзакция приводит к такой вычислительной работе, что комбинированный газ стоит , минует сумму, которую я приложил в качестве платы, , что газ считается «потраченным» , и я не верну его. Минер прекратит обработку транзакции, вернет все сделанные изменения, , но все равно включит ее в блок-цепочку как «неудачную транзакцию», собирая плату за нее . Это может показаться суровым, но когда вы понимаете, что реальная работа для шахтера заключалась в выполнении вычислений, вы можете видеть, что они никогда не вернут эти ресурсы. Так что справедливо, что вы платите им за работу, которую они выполняли , хотя ваша плохо спроектированная транзакция закончилась газом.

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

Есть много других тонкостей для газа, но это должно дать вам основы! Газ является ключевым механизмом, который делает сложные вычисления в Ethereum «безопасными» для работы сети на , поскольку любые программы, которые выходят из-под контроля, будут продолжаться до тех пор, пока деньги, предоставленные людьми, которые попросили их запустить. Когда деньги прекращаются, шахтеры перестают работать над этим. И ошибки, которые вы совершаете в своей программе, будут влиять только на людей, которые платят за ее использование. . Остальная часть сети не может нести проблемы производительности из-за вашей ошибки. Они просто получат большую зарплату, когда проблемы с производительностью будут потреблять весь ваш эфир! Без этой критической техники идея цельной блокчейки была бы совершенно невозможна.

TL; др:

  • Газ - это способ расчета сборов.
  • Гонорары все равно выплачиваются в эфире, однако, который отличается от газа
  • Газ стоимость - это объем работы, который входит во что-то, например количество часов труда, тогда как цена газа похожа на почасовую заработную плату, которую вы платите за работу, которую предстоит выполнить. Сочетание этих двух определяет общую сумму транзакций.
  • Если ваш газ цена слишком низок, никто не будет обрабатывать вашу транзакцию
  • Если ваш газ цена прекрасен, но стоимость газа вашей транзакции выполняется «над бюджетом», транзакция терпит неудачу, но все равно переходит в блок-цепочку, и вы не вернуть деньги за работу, которую выполняли рабочие.
  • Это гарантирует, что ничто не запустится вечно, и что люди будут осторожны в отношении кода, который они запускают. Это предотвращает использование как шахтеров, так и пользователей от плохого кода!
ответил Jeff Coleman 20 Jpm1000000pmWed, 20 Jan 2016 20:51:38 +030016 2016, 20:51:38
45

Short:

Газ - это плата за выполнение каждой операции, выполненной на эфируме. Его цена выражается в эфире, и ее решают шахтеры, которые могут отказаться от обработки транзакции с меньшей ценой на газ. Чтобы получить газ, вам просто нужно добавить эфир в свой аккаунт.

Long

Ethereum реализует на блочной цепочке среду выполнения, называемую виртуальной машиной Ethereum (EVM). Когда вы выполняете децентрализованное приложение (dApp), каждая команда выполняется на каждом узле сети. Это имеет цену: для каждой операции, которую может выполнить скрипт, указанная стоимость, выраженная в количестве единиц газа, которую вы можете увидеть в спецификации EVM.

Цена одной единицы газа определяется шахтерами, в настоящее время она составляет от 5 до 21 GWei (One GWei - 10 ^ 9 Вей или 10 ^ -9 Эфир). Ethereum использует эфир как свою внутреннюю валюту /токен. Удержание ваших счетов выражается в эфире. Когда вы развертываете контракт или выполняете транзакцию, газ берется из баланса вашего счета. Вы можете указать цену газа или оставить предложение.

ответил Marco Giglio 20 Jpm1000000pmWed, 20 Jan 2016 20:12:35 +030016 2016, 20:12:35
40

Следующий ответ берется из Ethereum, Gas, Fuel & Тарифы

Что такое газ?

Газ - это единица измерения для использования Ethereum «Мировой компьютер «. Как аналог, электричество измеряется киловатт-часами. Использование большего количества вычислений и хранения в Ethereum означает, что используется больше газа. Одна из основополагающих причин для измерения заключается в том, что он дает стимул для людей (шахтеров) управлять Мировым Компьютером. Эти майнеры получают плату для обработки транзакций, которая определяется схемой замера: газ.

Каждая операция в EVM потребляет газ. Например, умножение (MUL) потребляет 5 газов, а добавление (ADD) потребляет 3 газа. Вот таблица работы Ethereum и потребление газа . (Также можно рассматривать их как расходы на газ, но, вероятно, это затрудняет отслеживание затрат, сборов, цен, связанных с полетами.)

Измерение отличается от сборов, а газ отличается от эфира. Чтобы помочь прояснить это, считайте газ синонимом топлива. Транзакция должна обеспечивать достаточное количество топлива или startGas, чтобы покрыть его все использование вычислительных и хранилищ EVM. Все оставшиеся деньги возвращаются отправителю транзакции: пользователю, инициировавшему транзакцию. Транзакция, выходящая из газа, отменяется, , но все еще включается в блок, и соответствующая плата выплачивается шахтеру .

С обзором с точки зрения топлива, давайте перейдем к обзору сборов. Хотя каждая операция в EVM потребляет предопределенное количество газа , которое фиксировано (например, операция MUL всегда потребляет 5 газов), пользователь может указать цена на газ в каждой транзакции . Текущая цена равна 0.02μμ эфирам или 0,00000002 ETH. Плата, которую отправитель несет плательщиком, - это транзакционный код (startGas - remainingGas) × gas price.

Ниже приведен краткий обзор влияния транзакционного топлива и транзакционного сбора:

 введите описание изображения здесь>> </a> </p>

<p> В начале транзакции Ether, необходимый для startGas, отложен [1b], а оставшийся Gas установлен в startGas [1a]. [2] При каждой операции транзакции газ потребляется, а оставшиеся газы понижаются. [3] Если есть исключение «Исходя из газа», все операции возвращаются, и весь эфир, который был первоначально отложен, предоставляется шахтеру [4]. [5] Если транзакция завершается успешно, все оставшиеся деньги возвращаются отправителю, а остальная часть выплачивается шахтеру. </p>

<h2> Простой пример </h2>

<p> В следующем макетном сценарии предположите, что МАСТЕР потребляет 45 газов, а ADD потребляет 10 газов. Сценарий включает в себя сохранение числа 31 в EVM, суммирование двух чисел, а затем сохранение суммы. Предположим, что составитель указал начальный уровень 150 и цену на газ 0,02μμET, Ниже приведен пример, когда транзакция обрабатывается EVM: </p>

<p> <a href= введите описание изображения здесь>> </a> </p>

<p> Оригинатор платит шахтеру плату (150-50) Ã-0,02ÂμETH = 2ÂμETH = 0,000002 ETH. </p>

<h2> Топливо против платы </h2>

<p> Существует разница между источником, обеспечивающим достаточное количество топлива и достаточным количеством сборов. Вот возможные последствия для транзакции: </p>

<p> <a href= введите описание изображения здесь>> </a> </p>

<p> [1] Транзакция с слишком маленьким количеством топлива даже не дойдет до шахтеров, независимо от того, какая плата была предоставлена. </p>

<p> [2] Если для транзакции предусмотрено достаточное количество топлива, но плата слишком низкая, даже если сделка может дойти до горнодобывающих компаний, при рассмотрении транзакции майнеры не будут выполнять никаких вычислений. </p>

<p> [3] Транзакция с низким уровнем топлива подразумевает, что она будет использовать небольшие вычислительные ресурсы или ресурсы хранения EVM, или что во время выполнения она ударит по исключению «Исходящий газ» и будет отменена. </p>

<p> [4, 5, 6] Сборы определяют порядок, в котором транзакции будут включены в цепочку блоков. </p>

<p> [7] Причина, по которой предоставление высокого горючего может привести к транзакции, занимающей больше времени для добычи, обсуждается в разделе «Потенциальные задержки с высоким уровнем запуска». </p>

<p> В биткойне измерение выполняется с байтами: количеством байтов в транзакции. В Ethereum вычисление также должно быть измерено, потому что небольшое количество кода все равно может быть программой, которая выполняется навсегда. измерениерасчет является одной из причин для газа. <strong> Но наличие газа не означает взимания платы. </strong> </p>

<p> Например, в <a href= частная сеть , каждый счет может иметь X-газ в день, или каждый счет может иметь газ Y на транзакцию или какую-либо другую схему. С другой стороны, сборы не требуют газа: плата может быть основана на разных измерениях, таких как байты. Безопасность в публичной блок-цепочке требует как газа, так и сборов, в то время как альтернативы более применимы к частным сетям (например, схема, в которой каждая учетная запись имеет X-газ в день, может быть нанесена Sybil в общедоступной сети, где любой может создать учетную запись) .

Конечный пример измерения, не требующий оплаты , - это когда контракт вызывается с помощью Кто получает плату от контрактного звонка? , вызов с "вызов" все еще использует измерение, но не имеет никаких сборов.

ответил eth 26 MonEurope/Moscow2016-12-26T14:00:31+03:00Europe/Moscow12bEurope/MoscowMon, 26 Dec 2016 14:00:31 +0300 2016, 14:00:31
12

Дополнительный полезный контент на газе в Этреуме: http: //ethdocs .org /о /последняя /ether.html # газо-эфир

Газ и эфир

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

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

Газ имеет несколько связанных с ним условий: цены на газ, стоимость газа, газовый предел и тарифы на газ. Принцип, лежащий в основе газа, заключается в том, чтобы иметь стабильное значение для того, сколько транзакций или вычислений будет стоить сеть Ethereum.

  • Стоимость газа - это статическое значение для того, насколько затраты вычислений в терминах газа, и намерение заключается в том, что реальная стоимость газа никогда изменения, поэтому эта стоимость всегда должна оставаться стабильной с течением времени.
  • Цена на газ - это сколько стоит газ в пересчете на другую валюту или токен как Эфир. Чтобы стабилизировать стоимость газа, цена газа плавающее значение, так что если стоимость токенов или валюты колеблется, цена газа изменяется, чтобы сохранить ту же реальную стоимость. Цена на газ определяется равновесной ценой того, сколько пользователей готовы потратить, и сколько узлов обработки готовы принимаем.
  • Предел газа - это максимальное количество газа, которое может использоваться на блок, оно считается максимальной вычислительной нагрузкой, объемом транзакции или размер блока блока, а майнеры могут медленно изменять это значение время.
  • Плата за газ - это фактически количество газа, которое необходимо заплатить за запуск конкретная транзакция или программа (называемая договором). Газовые сборы блока можно использовать для вычисления вычислительной нагрузки, транзакции объема или размера блока. Затраты на газ выплачиваются шахтерам (или связанных с подрядчиками в PoS).

Другие полезные ссылки:

https://www.reddit.com/r/ethereum/comments /271qdz /can_someone_explain_the_concept_of_gas_in_ethereum / https://www.reddit.com/r/ethereum/comments/3fnpr1/can_someone_possibly_explain_the_concept_of / https://www.reddit.com/r/ethereum/comments/49gol3/can_ether_be_used_as_a_currency_eli5_ether_gas /

ответил George 3 J0000006Europe/Moscow 2016, 14:07:27
7

Газ - это, в основном, внутренняя цена за транзакцию или контракт.

Цена на газ за транзакцию или контракт настроена для работы с Тьюрингом Полная природа Ethereum и его EVM (Ethereum Virtual Machine Code)

Итак, чем сложнее сделка или операция, тем больше газа она будет стоить.

ответил Dawny33 20 Jpm1000000pmWed, 20 Jan 2016 19:53:34 +030016 2016, 19:53:34
0

Газ - это то, что вы платите за выполнение кода на блокчейне и перенос эфира на другой адрес. Для каждой инструкции на виртуальной машине Ethereum вы платите определенное количество газа. Некоторые инструкции дороги, а некоторые дешевы.

Если вы вызываете функцию и у вас заканчивается газ во время выполнения этого вызова функции, все изменения, выполняемые функцией, будут отброшены назад, и вы потеряете весь газ, который вы предоставили.

Причина, по которой газ требуется для каждой инструкции вместо простой платы за выполнение любой функции, заключается в том, что в противном случае вы могли бы написать функцию с бесконечным циклом, развернуть этот контракт и затем вызвать функцию. Если вы это сделаете, шахтеры, пытающиеся включить ваш вызов функции в следующий блок, будут застревать в бесконечном цикле.

ответил Thorkil Værge 31 MarpmSat, 31 Mar 2018 21:30:46 +03002018-03-31T21:30:46+03:0009 2018, 21:30:46
-1

Сначала я хочу рассказать о EVM (Ethereum Virtual Machine). Поскольку мы знаем, что Ethereum Network представляет собой набор компьютеров, и на каждом компьютере установлено программное обеспечение EVM на своей системе, а также все эти системы имеют копию блок-цепи, где все шахтеры подключаются через EVM. Когда разработчик пишет смарт-контракт, тогда код компилируется с машинным кодом, а машинный код сохраняется на блочной цепочке, которая выполняется EVM. Я не собираюсь объяснять, что происходит с этим кодом в блочной цепочке в этом вопросе.

Теперь Эфир против газа

Во всем коде есть много инструкций, которые выполняют свою работу в соответствии с этой инструкцией или кодом, например, код, написанный для хранения значения в памяти или для выполнения операции SHA-хеширования. Стоимость каждой операции. Чтобы выполнить ваш код или смарт-контракт, вам необходимо заплатить за все ваши операции, которые оплачиваются в эфире. Стоимость операции находится в газе, который переводится в эфир, а затем оплачивается в эфире.

Причиной этого является отключение цены операции с рыночной ценой эфира, а стоимость каждого газа, который является постоянным числом в эфире, может легко регулироваться шахтерами.

ответил Rajesh Prajapati 5 Mayam18 2018, 00:15:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132