加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads

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

Author:

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

Gas 費問題是目前以太坊 1.0 鏈面臨最嚴重的問題之一,盡管以太坊的算力很多,但任務能力因為區塊鏈的結構問題(每個全節點計算同樣的數據,因此任務都在搶單個節點的計算資源),以太坊在處理大量任務的時候會擁堵,擁堵后,Gas 費會很高。

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

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

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

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

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

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

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

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

Polygon Studios CEO:Polygon將于2023年深入參與PFP和藝術領域:12月27日消息,Polygon Studios 首席執行官 Ryan Wyatt 表示:2022 年 Polygon 與 OpenSea、Magic Eden、Coinbase、Robinhood 和 Phantom 建立或擴大了合作關系,并參與了游戲、DeFi 和音樂領域。Polygon 將在 2023 年深入參與 PFP 和藝術領域。[2022/12/28 22:11:26]

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

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

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

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

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

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

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

中央財經大學郭田勇:應深入研究如何用數字人民幣組建更多功能:中央財經大學中國銀行業研究中心主任郭田勇表示,在數字化的浪潮下,貨幣作為一種支付媒介,其本身的數字化是必然趨勢。考慮到傳統貨幣印制發行成本高、不易攜帶等局限,數字貨幣以其獨特的優勢,極大降低了交易成本。郭田勇指出,數字貨幣如果由政府或者中央銀行來主導,必須協同好同原有銀行體系為主導的支付關系。目前,中國的數字貨幣屬于M0范疇,從金融學角度看,M0并不具有貨幣創造的能力,在整個貨幣儲存量中占比也很小,因此,數字人民幣的范圍還非常有限,未來如何用數字人民幣組建更多的功能,將其推向更大的領域,值得深入研究。這是一個循序漸進的過程,要把握好節奏。郭田勇稱,數字人民幣前期推進比較成功,有利于提升人民幣國際化程度。隨著中國經濟實力增強,人民幣國際業務更為廣泛。面對龐大的國際結算量,數字貨幣高支付效率的優點更易凸顯。(中國新聞網)[2021/7/7 0:32:14]

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

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

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

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

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

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

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

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

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

一個區塊里包含的內容

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

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

固有成本 = Gtransaction + Gtxdatazero * Nzeros + Gtxdatanonzero * Nnonzeros + Gtxcreate

聲音 | Evolution capital創始合伙人:熊市有更多時間做深入思考:11月16日, Evolution capital 創始合伙人老葛在“499加油站第二十期”接受火幣英才CEO張曉媛和節點資本合伙人及貝殼公關CEO姜曉玉的采訪時表示, 熊市過冬寶典一,是意識的升級,慢慢對這個行業的理解跟上了,自然比隔岸觀火的人理解更深。熊市過冬寶典二,是多宣傳,PR成本低;好好做社群,做精,有更優質的用戶;扎實的做合規。花時間在這些領域提升,積累經驗和技能的小伙伴,下一波行情來的時候,就有了更多的優勢。保持敏銳,等下一波機會大批涌來的時候,肯定是觀念超前,行動在一線的人,最有機會把握住。[2018/11/17]

其中:

Gtransaction = 21,000 Wei

Gtxcreate = 32,000 Wei

Gtxdatazero = 4 Wei

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

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

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

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

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

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

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

安永與Coinbase達成長期深入合作,前者為后者IPO提供全方位輔導:據悉,全球四大會計師事務所之一的安永于近期與全球知名的數字貨幣交易所和錢包服務提供商Coinbase達成長期深入合作,安永將組建包括審計部門、咨詢部門、并購部門和稅務部門的跨條線的Fintech專家團隊為Coinbase提供第三方鑒證審計,同時為Coinbase的IPO提供全方位的輔導。[2018/3/27]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

這便與 Rollup 關系很大。

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

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

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

Tags:GAS以太坊ETHCALGastroAdvisor以太坊幣價格今日行情價格美元BETHethical這么讀

火幣下載
數讀 DeFi 衍生品平臺:遷移至 Layer 2能吸引更多用戶嗎?_USD:BUSD

原文標題:《盤點去中心化衍生品交易平臺數據,Layer 2 與代幣激勵能否煥活稀少的用戶?》衍生品是資本流動中的重要環節,能夠對沖未來的不確定性,平抑價格.

1900/1/1 0:00:00
視頻:歐易教你學K線(四):行情什么時候見頂?關注這幾種信號_區塊鏈:REA

金色財經聯合歐易OKEx向用戶推出K線基礎視頻,用戶將通過視頻學習K線相關知識,方便用戶了解行情走勢。本期是第四期《行情什么時候見頂?關注這幾種信號》正式上線.

1900/1/1 0:00:00
網格交易—震蕩行情的法寶_USD:USDT幣提現涉嫌洗錢嗎

近期,幣圈行情震蕩,不少幣友的心情也隨著震蕩的行情起起落落,難以平復。如何在行情變動的時候依然能有一個恰當的辦法能避免情緒化投資,獲取利益的最大化?與大家分享一個在震蕩行情中非常實用的投資策略—.

1900/1/1 0:00:00
晚間必讀5篇 | SEC什么時候才能批準比特幣ETF?_比特幣:ETF

1.金色圖覽 | SEC什么時候才能批準比特幣ETF?富達、高盛、天橋資本、芝加哥期權交易所一擁而上.

1900/1/1 0:00:00
礦工不想、不敢 也不能分叉以太坊_以太坊:ETH

過去幾個月,以太坊社區關于 EIP-1559 究竟是否實施,爭論不休。最終,3 月 5 日的以太坊核心開發者會議確定,EIP-1559 正式被納入 7 月以太坊“倫敦”硬分叉升級.

1900/1/1 0:00:00
融一交易系統培訓課程上線 聯合BMEX打造融一戰法合約交易策略_數字貨幣:穩定幣

數字貨幣全球市場的參與者主要是技術社區和炒幣社區。當然你會說很多銀行包括各國央行都在研究數字貨幣,這個的確沒錯,但是他們,包括活躍于其他市場的投資人和投資公司在2017年以前都沒有明顯的參與到數.

1900/1/1 0:00:00
ads