文章目錄
- 如何深入理解以太坊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來計算,就好比汽車要用汽油,
下面的圖片來自以太坊黃頁,可以用來粗略地了解多少具體說明的成本,

2.以太坊gas如何作業
為了更好地理解以太坊的gas作業方式,我們使用一個類比,假設你正在進行一次公路旅行,在你這樣做之前,你要經過這些步驟:
- 你去加油站,并指定你想要在你的車中注滿多少汽油(gas)
- 你的汽車里充滿了汽油(gas)
- 你向加油站支付你欠他們汽油(gas)的金額
可以這樣類比:
汽車,即你想要執行的操作,如gas或智能合約,加油站是你的礦工,你付給他們的錢是礦工費,【注意:gas并不是礦工費,我理解gas是】
用戶希望在以太坊執行的所有操作必須為以下方面提供gas:
- 涵蓋其資料,即intrinsic gas
- 覆寫整個計算
為什么有這個gas系統?
gas作用=>激勵
像任何作業對等系統一樣,以太坊嚴重依賴礦工的哈希效率:更多的礦工,更多的哈希效率,更安全和快速的系統,
為了吸引更多的礦工進入該系統,他們需要使該系統對礦工有利可圖并盡可能誘人,在以太坊,礦工又兩種賺錢方式:
- 通過挖掘塊和獲得塊獎勵
- 通過稱為他們的開采塊裁決和打包者
來探討第二點:礦工負責將交易置于其區塊內,為了這樣做,他們必須使用他們的計算能力來驗證智能合約,gas系統允許他們為此收取一定的費用,即礦工費,這有助于激勵他們積極參與生態系統,
gas度量的最小單位使wei,如果我們在操作程序中花費1個gas單位,我們稱它為1wei,
單位增加如下:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-vJ1iKpdg-1626939796129)(2.png)]](https://img.uj5u.com/2021/07/25/249586250821412.png)
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的操作,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-DxTT1Vqq-1626939796130)(3.png)]](https://img.uj5u.com/2021/07/25/249586250821413.png)
假設有一個交易A有一個42000 gas limit和兩個交易B和C的正常 limit(如21000),
礦工會選擇優先處理交易B和C并且退還少量gas,而不是選擇處理交易A并退還大量gas,
以下是平均gas限制圖表,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ekT5LZRr-1626939796131)(4.png)]](https://img.uj5u.com/2021/07/25/249586250821414.png)
gas和以太幣不是一回事,就如燃料(gas)和費用(fee)不是同一回事,gas是需要的計算能力的數量,而以太幣是價格,也就是人們必須為這種gas支付的費用,
以下是一些收費情景:
- 如果一項操作只有低gas,那么礦工不會去處理,因為它沒有足夠的gas來完成計算,
- 如果一項操作的費率(fee)較低,但礦工們仍然不會去處理,因為低費用的作業沒有吸引力,
- 如果一個操作有高gas,那么這意味著gas limit非常高,礦工還是不會去處理,
- 如果一項操作收取高額費用(fee),那么礦工知道他們會從中賺取很多錢,當然優先處理,
根據ethgasstation推薦的不同交易費用的gas價格是:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Kc3r91W6-1626939796134)(5.png)]](https://img.uj5u.com/2021/07/25/249586250821415.png)
gas系統提出了一個能夠非常積極地激勵礦工的平穩運行機制而收到贊揚,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/289929.html
標籤:區塊鏈
