天天看點

區塊鍊 | 以太坊GAS機制如何深入了解以太坊gas機制

文章目錄

  • 如何深入了解以太坊gas機制
    • 1.什麼是以太坊gas
    • 2.以太坊gas如何工作
    • 3.如何将gas轉換成以太?
    • 4.以太坊燃料限制(Gas Limit)是什麼?

如何深入了解以太坊gas機制

了解以太坊gas可以說是以太坊生态系統的命脈。

任何涉及到以太坊的行為,無論是簡單交易,還是智能合約,甚至ICO都需要一定量的gas。gas是衡量執行某些操作所需的計算量的機關,用來計算為了執行操作而需要支付給網絡的費用數額。

gas的名字氣得非常貼切,翻譯成中文就是天然氣的意思。在這之前,我們先了解下bitcoin的背景和bitcoin面臨的問題。比特币的建立是因為每個人都在問同樣的問題:

  • 是否有可能創造一種可以在沒有任何中間人的情況下在兩個人之間轉移的金錢形式?
  • 是否有可能建立一個可以在區塊鍊等功能上運作的分散化資金?

然而,比特币存在問問題,這是所有第一代區塊鍊都存在的問題。他們隻允許貨币交易,沒有辦法為這些交易添加條件。Alice可以發送Bob 5 BTC,但她不能對這些交易施加條件。例如,她不能告訴Bob,隻有當他執行某些任務時他才能拿到錢。而這些問題在之後的智能合約中得到了解決。

1.什麼是以太坊gas

正如前言中所述,Gas是一個機關,用于測量執行某些操作所需的計算量。以太坊虛拟機(EVM)中運作的所有智能合約都使用solidity進行編碼(以太坊計劃未來将從Solidity轉移到Viper)每一行代碼都需要一定量的gas來計算,就好比汽車要用汽油。

下面的圖檔來自以太坊黃頁,可以用來粗略地了解多少具體說明的成本。

區塊鍊 | 以太坊GAS機制如何深入了解以太坊gas機制

2.以太坊gas如何工作

為了更好地了解以太坊的gas工作方式,我們使用一個類比。假設你正在進行一次公路旅行。在你這樣做之前,你要經過這些步驟:

  • 你去加油站,并指定你想要在你的車中注滿多少汽油(gas)
  • 你的汽車裡充滿了汽油(gas)
  • 你向加油站支付你欠他們汽油(gas)的金額

可以這樣類比:

汽車,即你想要執行的操作,如gas或智能合約。加油站是你的礦工,你付給他們的錢是礦工費。【注意:gas并不是礦工費,我了解gas是】

使用者希望在以太坊執行的所有操作必須為以下方面提供gas:

  • 涵蓋其資料,即intrinsic gas
  • 覆寫整個計算

為什麼有這個gas系統?

gas作用=>激勵

像任何工作對等系統一樣,以太坊嚴重依賴礦工的哈希效率:更多的礦工,更多的哈希效率,更安全和快速的系統。

為了吸引更多的礦工進入該系統,他們需要使該系統對礦工有利可圖并盡可能誘人。在以太坊,礦工又兩種賺錢方式:

  • 通過挖掘塊和獲得塊獎勵
  • 通過稱為他們的開采塊裁決和打包者

來探讨第二點:礦工負責将交易置于其區塊内。為了這樣做,他們必須使用他們的計算能力來驗證智能合約。gas系統允許他們為此收取一定的費用,即礦工費,這有助于激勵他們積極參與生态系統。

gas度量的最小機關使wei。如果我們在操作過程中花費1個gas機關,我們稱它為1wei。

機關增加如下:

區塊鍊 | 以太坊GAS機制如何深入了解以太坊gas機制

3.如何将gas轉換成以太?

沒有固定的轉換價格,完全取決于礦工來确定轉換價格,然而,平均轉換率通常為:1 gas = 0.02 micro Ether

4.以太坊燃料限制(Gas Limit)是什麼?

為了在Ethereum中完成操作,發起交易的人員或智能合約建立者必須在向礦工送出Gas Limit之前指定Gas Limit。當指定Gas Limit時,礦工将開始執行操作。

送出Gas Limit時,必須考慮以下幾點:

  • 不同營運回産生不同的gas成本
  • gas用完時,礦工将停止執行
  • 如果有剩餘gas,将立即退還給發起交易的人員或智能合約建立者

情景1# gas限制太低

如果一個操作用盡了gas,那麼它就會恢複到原來的狀态。然而,發起交易者或智能合約建立者仍然需要向礦工支付計算成本的費用,并将操作添加到區塊鍊中。

回到我們的剛剛提到駕車旅行的比喻,如果汽車中沒有充足的汽油,那麼将無法到達目的地,但即使如此,你還是向加油站支付了燃油費。讓我們看看這是如何在我們假設的智能合約中起作用的。

步驟是:

  • 把10存儲在一個變量中——假設這個操作成本是45 wei的gas
  • 增加兩個變量——假設這個成本是10 wei
  • 儲存最終結果——成本為45 wei

但是,這一次,gas limit是90 wei

現在,我們知道履行合同所需的gas是100 wei,但我們卻有90 wei的限制。

在這種情況下,礦工将進行90 wei的計算,然後對90 wei的運作生成器費用進行計費,結果為(90 * 0.02 micr ETH)0.000018ETH。此外,合約還原為原始狀态并添加到區塊鍊中。

情景2# gas limit太高

那麼,如果我們将gas limit設定得太高怎麼辦?

【理論上,沒用用完的gas都将退還給發起者】

礦工收到每塊6700000gas limit的限制。以太坊的每個簡單交易通常都有2.1萬的gas limit。礦工隻能增加加起來小于或等于塊gas limit的操作。

區塊鍊 | 以太坊GAS機制如何深入了解以太坊gas機制

假設有一個交易A有一個42000 gas limit和兩個交易B和C的正常 limit(如21000)。

礦工會選擇優先處理交易B和C并且退還少量gas,而不是選擇處理交易A并退還大量gas。

以下是平均gas限制圖表。

區塊鍊 | 以太坊GAS機制如何深入了解以太坊gas機制

gas和以太币不是一回事,就如燃料(gas)和費用(fee)不是同一回事。gas是需要的計算能力的數量,而以太币是價格,也就是人們必須為這種gas支付的費用。

以下是一些收費情景:

  • 如果一項操作隻有低gas,那麼礦工不會去處理,因為它沒有足夠的gas來完成計算。
  • 如果一項操作的費率(fee)較低,但礦工們仍然不會去處理,因為低費用的工作沒有吸引力。
  • 如果一個操作有高gas,那麼這意味着gas limit非常高,礦工還是不會去處理。
  • 如果一項操作收取高額費用(fee),那麼礦工知道他們會從中賺取很多錢,當然優先處理。

根據ethgasstation推薦的不同交易費用的gas價格是:

區塊鍊 | 以太坊GAS機制如何深入了解以太坊gas機制

gas系統提出了一個能夠非常積極地激勵礦工的平穩運作機制而收到贊揚。

繼續閱讀