比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 波場 > Info

深入理解以太坊 Gas 機制:從概念起源和 21 個 EIP 開始_CAL

Author:

Time:1900/1/1 0:00:00

Gas費問題是目前以太坊1.0鏈面臨最嚴重的問題之一,盡管以太坊的算力很多,但任務能力因為區塊鏈的結構問題,以太坊在處理大量任務的時候會擁堵,擁堵后,Gas費會很高。

DeFi應用爆發式增長,讓這種現象愈演愈烈。這里要提到的是,以太坊除了打包區塊鏈交易外,智能合約等也是發布到鏈上的,所以智能合約在鏈上執行的時候要消耗資源,因此用戶在DeFi里做的幾乎每一步,都需要支付Gas費,這也是Gas模型的一個問題所在。

近日以太坊社區對EIP-1559的討論也是更加激烈,因為有很多的礦池并不同意部署這個提案,這個提案調整了Gas費的構成,雖然無法解決Gas高的問題,但可以提升對Gas費的預期,完善體驗。

還有一個近期的相關消息,3月16日,以太坊的一位開發者PhilippeCastonguay提出了另一個提案EIP-3382,提議將區塊Gas限制固定為每區塊12,500,000Gas。并且更新塊驗證規則,如果Gas限制不等于12,500,000,則區塊無效。這是為了對區塊Gas限制達成共識,并且不受礦工制約。

在原來的規則中,區塊Gas限制是以太坊中唯一不由節點一致性決定的數據部分,是由礦工選擇的參數。他認為這是一個關鍵參數,需要節點一致性,以避免少數參與者對網絡其余部分施加任何突然的有害變化。

像EIP1559、EIP-3382這樣對Gas費進行調整的提議很多,因為Gas費在以太坊運行過程中占據了重要地位,所以,Gas費有很多歷史故事,如果把所有關于Gas費的消息全部瀏覽完畢,可以發現,解決Gas費并非易事。

今天,白計劃團隊會為讀者在文中提及大約全部以太坊的Gas費關聯資料,包含設計變化、EIP修訂等。愿您有所用。

如果想要理解Gas費,從TXStreet的動態圖像可以很形象去理解。

TXStreet將以太坊區塊打包過程形象化為交通運輸

如果把區塊打包抽象成一個汽車載人運輸過程,會遇到道路寬度有限、汽車容量有限因素,所以進入汽車的過程就會有競爭,可以理解為以價高者的,而平均的費用也會因擁堵被「哄抬」。

高鴻股份:公司正在深入研究可信計算在區塊鏈的應用:高鴻股份在互動平臺表示,公司正在深入研究可信計算在區塊鏈的應用,可信計算可以有效提高區塊鏈節點設備的安全,并保護底層軟件不被滲透和篡改。公司計劃為區塊鏈產業提供以可信計算為核心的安全加固技術支持。(財聯社)[2021/4/19 20:36:09]

汽車行駛的道路,是基礎資源,需要支付「過路費」來Cover,而打包需要的Gas費是「Gas費」,羊毛出在羊身上,Gas費用來最終支付「過路費」。所以Gas費就是最終支付以太坊的資源使用的費用。

早期關于Gas的第一個key

Gas的概念是來自計算機領域,在以太坊里看到,最早來源于以太坊黃皮書,黃皮書的作者是Polkadot創始人Gavin,說起來很嚇人,以太坊黃皮書指出,理論上,交易中包含的Gas可以是任意值,因為理論上要涵蓋更多交易,最高可達2^256。

雖然設計無限,但處理能力是有限的,在Geth1.6版本中,Gas計算切換為使用64位值,這樣Gas限制為64位的單個塊可以容納的交易量是人體中紅細胞數量的44倍。不過這是理論,現實遠遠大相徑庭。

在這個版本確認前,還有一個較為有趣的細節,在Vitalik設計的以太坊Gas模型里,是把Gas費支付過程默認在合約里,也就是一個合約執行過程中,合約中的余額會減少,如果余額因為執行消耗不足了,合約會暫停。

早期以太坊合約里執行設置的內置扣費

而后來Gavin開始參與以太坊,進入后就修改了Gas的付費機制,從這種合約執行支付變成了轉賬人支付,也就是合約執行人支付。Vitalik描述為,從「合同付款」方式轉變為「發送者付款」方式,以代替每個單獨的交易步驟立即拿走一點ETH。

以太坊早期Vitalik和Gavin在迷你黑客松上,中間的大神是Jeffrey

這是比較容易理解的「Gas費支付」。如果解剖更細節的部分,我們要看黃皮書里Gas的關聯部分。

Gas是以太坊中所有計算量的計價單位,想要在以太坊上進行越多計算,則要支付越多Gas。

南寧市深入推進“區塊鏈+”人社應用和“打包快辦”服務改革:8月20日,南寧市人社局召開專題黨組會,傳達學習市委十二屆十次全體(擴大)會議精神,并就抓好貫徹落實作出部署。會議強調,局系統廣大黨員干部要將思想認識統一到市委決策部署上來,將學習貫徹市委十二屆十次全體(擴大)會議精神和年度工作任務相結合,扎實推進各項中心工作;抓重點攻難點,切實保障和改善民生,千方百計保就業,兜住基本民生底線,深入推進“智慧人社”工作,深化“一門式”服務改革,深入推進“區塊鏈+”人社應用和“打包快辦”服務改革,確保完成全年目標任務。(南寧日報)[2020/8/23]

這種采取使用者付費的模式,能夠避免資源濫用。可以理解為一旦開發者為每種運算支付費用,就會盡可能將代碼寫得簡潔高效,另外,Gas的存在還能阻止攻擊者通過無效運算,對以太坊網路進行泛洪攻擊,下文中統計的一個EIP就是提高了對賬戶訪問的Gas值來減少攻擊可能性的。

除了知道哪里需要付Gas,我們還需要了解GasPrice和GasLimit。

GasPrice為交易發送方對每單位Gas愿意支付的價格,交易發送方可以自定義愿意支付的每單位Gas價格。假設一筆交易需要耗費10Gas,發送者愿意支付3Wei/Gas,交易的成本總價就是30Wei,在我們使用的錢包里都會有調整Gas費的高級選項。

GasLimit為交易發送方最多能接受的用于執行交易的Gas量。假如沒有GasLimit,可能會導致發送方的賬戶余額被誤消耗殆盡,GasLimit是安全機制,防止把賬戶中所有ETH消耗掉。

另外,GasLimit也可以被定義為預付Gas。當節點在驗證交易時,先將GasPrice乘GasLimit算出交易的固定成本。如果交易發送方的賬戶余額小于交易固定成本,則該交易視為無效。交易執行完之后,剩余的Gas會退回至發送方賬戶,這也是為什么我們在使用MetMask執行合約的時候,預估Gas很貴,但執行完畢價格并沒有那么高。

一個區塊里包含的內容

這是一個區塊里的固有內容,在交易部分,有237筆轉賬和39筆合約內部交易,如果具體查看交易就可以看到更詳細的Gas費花銷。也可以看到燃料限制為12493113,文章開頭提到的EIP-3382中,將每個塊的Gas限制限制在12500000,就是這個部分。這樣,每個塊里拿到的獎勵總和會比較可控。

工行業務總監:區塊鏈等技術在金融行業得到深入應用:工商銀行信息科技業務總監呂仲濤在接受記者采訪時表示,從技術基礎上看,中國正在躋身全球金融科技發展的“第一梯隊”,人工智能、大數據、區塊鏈等新技術在金融行業得到深入應用,很多銀行都在積極建設新技術平臺。從實踐運用上看,各行也紛紛加強金融科技的頂層設計和實施運用。他表示,經此一疫,各行業將加快生產要素、生產關系的重組升級和生產方式的變革突破,推動產業互聯網建設,進而推動金融服務供需關系的重塑。(經濟參考報)[2020/5/21]

關于ETH1.0鏈,有一個每個操作碼的Gas費計算,我們截取了其中價格較高的部分,供讀者參考。操作碼最終會決定了鏈的執行和資源的使用。例如,一個基本的思路是,假如創建合約。成本計算如下:

固有成本=GtransactionGtxdatazero*NzerosGtxdatanonzero*NnonzerosGtxcreate

其中:

Gtransaction=21,000Wei

Gtxcreate=32,000Wei

Gtxdatazero=4Wei

Gtxdatanonzero=68Wei(在伊斯坦布爾升級時會改為16wei)

大家可以對以下的操作碼對號入座。

以太坊1.0鏈的操作碼對應的gas值消耗

據以上的介紹,我們可以得到的基本理解是,Gas費是因為使用以太坊的鏈上資源產生的,計算越多,Gas越高,在智能合約合約操作里,每個單獨的步驟都需要支付Gas。另外,補充一點,如果發送者把Gas設置的很高,礦工會優先執行交易,因為礦工可以選擇優先打包某些交易。

21個與Gas費息息相關的EIP

接下來我們就可以詳細看一下關于Gas的EIP提案。提案大約根據時間先后排列。

EIP-5:調整RETURN和CALL的Gas用量

此EIP使得調用RETURN字符串和其他動態大小的數組的函數成為可能。當前,當從以太坊虛擬機內部調用另一個合約/功能時,必須預先指定輸出的大小。還必須為未寫入的內存支付費用,這使得返回動態大小的數據既昂貴又不靈活,以至于實際上無法使用。此EIP中提出的解決方案是僅對CALL返回時實際寫入的內存支付。

北京方正公證處楊和平:與騰訊在多個方面達成深入合作:金色財經報道,4月17日,騰訊安全領御區塊鏈-北京方正公證取證平臺正式發布。在發布會上,北京方正公證處副主任楊和平表示:“區塊鏈作為一種可以在完全不信任的節點之間建立信任機制的技術,具有高可靠度、高透明度、可追溯、永久保存和無法篡改的特性,這些特性與公證的職業要求和行業發展需求具有天然的融合性、互補性,特別是在公證三大效力之一的證據效力方面雙方高度契合。騰訊安全與北京市方正公證處聯合打造的領御區塊鏈北京方正公證取證平臺,就是要在深度整合兩者優勢基礎上通過國家公信力+技術信任力的雙重增信,向社會提供電子證據安全存儲、取證維權、在線公證等智能化服務,從而形成一套規范和標準的互聯網數據公證服務新模式。”

此外,北京方正公證處副主任楊和平還介紹說,未來方正公證處與騰訊將在以下幾方面進行深度合作:1、構件新型公證法律服務業態上進行新的探索;2、拓展公證服務領域上取得新的突破;3、提升公證服務效率上再上新臺階;4、人才培養方面積累新經驗;5、體制機制建設上走出新路子;6、公證服務助力互聯網方面走出新天地。[2020/4/17]

EIP-150:大量IO操作的Gas成本變化

將EXTCODESIZE的Gas費用從20增加到700。

將EXTCODECOPY的基礎Gas成本從20增加到700。

將BALANCE的Gas費用從20增加到400。

將SLOAD的Gas成本從50增加到200。

將CALL,DELEGATECALL,CALLCODE的Gas費用從40增加到700。

將SELFDESTRUCT的Gas成本從5000增加到5000。如果SELFDESTRUCT命中一個新創建的帳戶,則會觸發25000的額外Gas費用。

將建議的Gas限制目標提高到550萬。

EIP-158:狀態清除

在任何情況下,call余額等都為0的賬戶都不再消耗25000個帳戶創建Gas的成本

EIP-1108:降低alt_bn128預編譯Gas成本

聲音 | 央行研究局局長:將深入研究完善金融科技監管制度框架等問題:據財聯社消息,央行研究局局長王信今日在數字金融開放研究計劃首屆學術研討會上表示,央行高度總是金融科技應用的相關研發,下一階段值得深入研究的課題包括:Libra等加密數字貨幣有關問題,如是否會形成法定數字貨幣、少數數字穩定幣并存格局;探索數字金融更好地支持實體經濟發展,應開發多元化、全方位金融服務;完善金融科技監管制度框架,發展監管科技,如何將科技巨頭納入宏觀審慎監管框架;加強數字金融基礎設施建設,加強數字金融領域的國際協調合作等。[2019/7/8]

橢圓曲線計算預編譯當前價格過高。對預編譯進行重新定價將大大有助于以太坊上的許多隱私解決方案和擴展解決方案。對于基于以太坊的基于zk-SNARK的協議,EIP-1108不僅會大大降低驗證zk-SNARK的Gas成本,而且還可以幫助將多個zk-SNARK證明批量組合在一起。這也是一種可用于將單片zk-SNARK電路拆分為一批具有較小單個電路尺寸的zk-SNARK的技術,這使得zk-SNARK都更易于構造和部署。

目前,這些交易的成本約為6,000,000Gas。此EIP可以將其減少到1,000,000Gas,這使該協議更加實用。

EIP-1283:SSTORE操作碼的Gas調整

該EIP提議對SSTORE操作碼進行計量更改,以實現合同存儲的新用法,并在與大多數實現工作方式不匹配的地方減少過多的Gas成本。這可以作為EIP-1087的替代方案,在EIP-1087中,它嘗試對更改緩存使用不同優化策略的實施更友好。

EIP-2028:減少交易數據用氣成本

建議將Calldata的Gas成本從當前的68字節降低到16字節,并通過數學建模和經驗估算來支持。

EIP-2200:凈Gas計量的結構化定義

此EIP為SSTORE操作碼提供了凈Gas計量更改的結構化定義,可用于合同存儲的新用法,并在與大多數實現工作方式不匹配的地方降低了過多的Gas成本。這可以當作EIP-1283和EIP-1706的組合。

EIP-2565:ModExpGas成本

為了準確反映ModExp預編譯的實際操作成本,此EIP指定了一種用于計算Gas成本的算法。該算法估算了乘法復雜度成本,并將其乘以執行冪運算所需的迭代次數的近似值。

EIP-1559:ETH1.0鏈的收費市場變化

以太坊使用簡單的拍賣機制以歷史價格定價交易費用,用戶以出價發送交易,礦工選擇出價最高的交易,包含在內的交易按照指定的出價支付。這導致效率低下。

此EIP中的建議是從基本費用金額開始,該費用由協議根據網絡的擁擠程度上下調整。當網絡超出每塊Gas的目標使用量時,基本費用會略有增加,而當容量低于目標數量時,基本費用會略有下降。

由于這些基本費用的變化受到限制,因此不同塊之間基本費用的最大差異是可以預測的。然后,這允許錢包以高度可靠的方式為用戶自動設置Gas費。預計即使在網絡活躍期間,大多數用戶也不必手動調整Gas費。對于大多數用戶來說,基本費用將由他們的錢包來估算。

EIP-2929:狀態訪問操作碼的Gas成本增加

增加的Gas成本SLOAD至2100,以及*CALL操作碼家族、BALANCE0x31以及EXT*操作碼家族、以及2600免CD預編譯。此外,還可以改革SSTORE計量方式,確保對SELFDESTRUCT這些操作碼中固有的「實際存儲負載」進行正確定價。

通常,操作碼Gas成本的主要功能是估計處理該操作碼所需的時間,目標是使Gas限制對應于處理塊所需時間的限制。然而,存儲訪問操作碼在歷史上被低估。在2016年上海DoS攻擊中,修復了最嚴重的客戶端錯誤后,攻擊者使用的一直奏效的策略之一就是簡單地發送可訪問或調用大量帳戶的交易。

提議的EIP將這些操作碼的成本增加了大約3倍,從而將最壞情況下的處理時間減少到大約7-27秒。數據庫布局的改進涉及重新設計客戶端以直接讀取存儲而不是跳到Merkle樹上,這將進一步降低這種情況,盡管這些技術可能需要很長時間才能完全推出,并且即使采用這種技術,訪問存儲的IO開銷也會保持實質性。

EIP-1077:合約調用的Gas中繼

采用DApp的主要障礙是需要多個token來執行鏈式操作。允許用戶簽名消息以顯示執行意圖,但允許第三方中繼器執行消息可以避免此問題,盡管以太坊交易始終需要ETH,但智能合約可以采用EIP-191簽名并轉發付款激勵具有ETH的不受信任方執行交易。可以標準化它們的通用格式,以及用戶允許以代幣支付交易的方式,為應用程序開發人員提供了很大的靈活性,并且可以成為應用程序用戶與區塊鏈交互的主要方式。

EIP-1087:用于SSTORE操作的Gas計量

該EIP提議對EVMSSTORE操作的Gas收費方式進行更改,以減少不必要的Gas成本,并為合同存儲提供新的用例。

EIP-1285:在CALL操作碼中增加GcallstipendGas

Gcallstipend將CALL操作碼中的費用參數從2,300增至3,500Gas單位。

EIP-1380:降低了內部調用的Gas成本

降低內部調用的Gas成本將極大地受益于諸如Solidity和Vyper之類的智能合約語言,這樣他們便能夠用CALL代替JUMP內部操作調用使用操作碼。

EIP-1613:Gas站網絡

通過允許合同接受「代收貨款」并為Gas付費,使非ETH用戶可以訪問智能合約。

與dapp通訊目前需要向ETH支付Gas費,這限制了dapp的采用僅限于以太坊用戶。因此,合同所有者可能希望為Gas支付費用以增加用戶獲取量,或者讓其用戶以法定貨幣支付Gas費用。或者,第三方可能希望補貼某些合同的Gas成本。如EIP-1077中所述的解決方案可以允許來自不包含ETH的地址的交易。

EIP-1930:具有嚴格Gas語義的CALL。如果沒有足夠的Gas,請還原

添加智能合約功能,以使用特定數量的Gas執行CALL。如果無法做到這一點,則應返回執行。

EIP-2045:EVM操作碼的顆粒Gas成本

計算EVM操作碼通常相對于高估到用于存儲操作碼的I/O。當前,最小的Gas成本為1,并且大多數計算操作碼的成本接近1,因此可能降低成本的范圍受到限制。一種新的最小Gas單位,稱為「顆粒」,是一種Gas的一部分,將擴大Gas成本的范圍,因此可以降低到當前的最低水平以下。

EIP-2046:降低了對預編譯進行靜態調用的Gas成本

將調用預編譯的基本Gas成本STATICCALL從700降低到40。這將允許更有效地使用預編譯以及總成本低于700的預編譯。

EIP-2542:新的操作碼TXGASLIMIT和CALLGASLIMIT

允許智能合約訪問有關當前交易和執行框架的Gas限制的信息。隨著中繼,元交易,Gas費和帳戶抽象等概念的普及,對于某些合同而言,能夠絕對精確地跟蹤Gas支出變得至關重要。

EIP-3322:帳戶Gas存儲操作碼

通過將Gas從需求量較小的區塊移動到需求量較大的區塊,從而帶來了Gas供應彈性和價格穩定性。不幸的是,這獎勵了不必要的狀態增長。通過引入高級的Gas存儲機制,Gas市場將需要較少的存儲和計算。

EIP-2780:減少內部交易Gas

降低內在交易的成本21,000到7,000Gas。

當前21,000交易的Gas內在成本使發送ETH的成本非常高,而小批量的成本通常高得令人望而卻步。雖然其他EIP也考慮了Gas價格和首次價格拍賣的變化,但如果以安全的方式進行,大幅降低發送ETH的成本并實現更大數量的此類交易將是積極的。

第二個key:Rollup與Gas

早期的Gas故事是關于以太坊Gas費模式的制定,而目前來看,除了對Gas費降低外,最好的擴容和降低Gas費方式還有壓縮交易數據。

這便與Rollup關系很大。

一個簡單的以太坊交易需要約110個字節。但是,Rollup中的ETH傳輸僅占用12個字節,所以,Rollup可能會使基礎鏈的可伸縮性提高約10倍,在特定的計算里,采用Rollup,可伸縮性甚至可以提高超過100倍。

這是絕對可觀的成績,這也是為什么Eth2.0成為了以Rollup為中心的開發路線。

Gas費調整是個長久的概念和過程,是無數以太坊工程師對細節修復的結果,如果只查看單個GasEIP的調整,不足以感受到Gas費的重要和調整Gas費的難度。不過,可以肯定的是,以太坊Gas問題最終的解決方案,一定是Eth2.0,請保持一顆期待的心吧。

Tags:GAS以太坊CALALLVEGAS價格什么是以太坊幣RoboCallsGreen Whale Challenge

波場
簡析 NFT 價值與存儲方式:它是藝術家的金錢游戲?_USD

原文標題:《原力研究|NFT是一場藝術家談論金錢的游戲?》你的NFT真正屬于你自己嗎?了解它是如何存儲的。「當銀行家共進晚餐時,他們會談論藝術;當藝術家共進晚餐時,他們會談論金錢.

1900/1/1 0:00:00
關于WBF開啟FIL預言家活動公告_FIL

尊敬的用戶: 近期FIL屢創新高,WBF現貨&合約聯手推出FIL特別活動,為您的財富自由之路錦上添花~?活動詳情如下:一、活動時間:新加坡時間2021年3月17日11:00-2021年2.

1900/1/1 0:00:00
Gate.io 關于完成投票和上線Render Token (RNDR)交易的公告_GATE

本期投票上幣活動已圓滿結束,感謝廣大用戶的參與和支持。Gate.io投票上幣活動將持續帶來更多有潛力的優質項目,敬請期待.

1900/1/1 0:00:00
A網眾邦:3月18日偏向日內高位震蕩,比特幣6萬關鍵壓力位_OLA

BTC/USDT日內技術分析關鍵阻力:59500/800(日內能否走強的關鍵),60000(日內走強確認),60500(意外超強勢走高成立),61000.

1900/1/1 0:00:00
通過這項全面的培訓,學習在Facebook上盈利地投放廣告,每門課程的費用低于4美元_CEB

《2021年終極Facebook廣告和營銷捆綁包》說明了如何在Facebook廣告,樹立知名度,發展客戶和創造銷售方面獲得高分.

1900/1/1 0:00:00
LOEx國際站3月19日15:00上線CHZ

尊敬的LOEx用戶:LOEx國際站上線CHZ!并開放CHZ/USDT交易對具體時間如下:提幣:3月21日15:00充幣:3月20日15:00交易對:3月19日15:00注:未到充值開放時間請勿提.

1900/1/1 0:00:00
ads