原文標題:《以太坊 EIP-1559 Gas 費用計算指南:在 Gas 異動下確保順利交易》
撰文:Blocknative
翻譯:Yangz
當以太坊用 EIP-1559 升級了核心 Gas 費用市場后,交易從第一價格拍賣轉變成了涉及基本費用和小費的混合系統,正如我們之前所介紹的,這為鏈上交易引入了新的復雜度。
為了進一步澄清這一點,我們將解釋新的術語以及如何處理與 EIP-1559 交易費用相關的核心變量。
EIP-1559 交易的新術語
首先,復習一下:EIP-1559 改變了以太坊交易費用的計算方式以及這些費用的去向,現在必須注意三個獨立的值,而不是一個單一的 Gas 價格,
基本費用(Base Fee),這是由網路本身決定的,隨后被銷毀。
最高優先費(Max Priority Fee),這是可選的,由用戶決定,并直接支付給礦工。
每單位 Gas 的最高費用(Max Fee Per Gas),這是你愿意支付每單位 Gas 費用的最高絕對值,以使你的交易納入到區塊中,為了簡潔明了,我們將它稱為最高費用。
包括這些新字段的交易被稱為類型 2,而帶有原始 Gas 價格字段的傳統交易仍被支持,被稱為類型 0。注意:EIP-1559 并沒有對「Gas 限額」(即交易被授權消耗的最高 Gas 量)帶來變化。
基本費用的確定
基本費用由以太坊網路決定,而不是由尋求交易的終端用戶或尋求驗證交易的礦工設定,基本費用的目標是使區塊完整度在 50%,并基于最近確認的區塊內容,根據新區塊的完整程度,基本費用會自動增加或減少,
比如:
如果上一個區塊完整度正好是 50%,那么基本費用將保持不變,
如果上一個區塊是完整區塊(100%),那么下一個區塊的基本費用將增加最多 12.5%,
如果上一個區塊完整度超過 50%,但不到 100%,那么基本費用將增加 12.5% 以下,
如果上一個區塊是空白區塊(0%),那么下一個區塊的基本費用將減少最多 12.5%,
如果上一個區塊完整度超過 0%,但低于 50%,那么基本費用將減少 12.5% 以下。
這個新機制是為了幫助平滑交易費用,防止 Gas 費用突然飆升。談到基本費用,最重要的是要記住:它是 100% 自動的,可直接從網路上讀取,
設置優先費
最高優先費–通常也被稱為礦工小費–是一種 「可選的」額外費用,直接支付給礦工,以激勵他們將你的交易納入區塊。雖然最高優先費在技術上是可選的,但目前大多數網路參與者估計,交易一般需要至少 2.0 GWEI 的小費才能被納入。盡管如此,特定的礦池可能會選擇設置替代的最低納入標準,
對于在正常、不擁擠的網路條件下提交的「典型」交易,最高優先費需要接近 2.0 GWEI,但是,對于順序或包含在下一個區塊中很重要的交易,或者當網路高度擁堵時,可能需要更高的最高優先費來優先處理你的交易。
最高優先費的一個微妙差別是,它代表了你愿意支付給礦工的最高小費。然而,如果基本費用加上最高優先費用超過了最高費用(見下文),最高優先費將被減少,以滿足最高費用的上限。這意味著實際小費可能需要小于你的最高優先費,在這種情況下,你的交易對礦工的吸引力可能會降低,
計算最高費用
在介紹了基本費用和最高優先費用的基本情況后,來了解一下最高費用這個有點反直覺的概念吧,
最高費用是你愿意為每單位 Gas 支付的絕對最高金額,以使你的交易得到確認。在這里,事情可能會變得有點混亂–因為在大多數情況下,你的實際交易費用將低于你預先指定的最高費用。以下是原因闡述:
- 你交易的最低 Gas 價格是當前的基本費用,
- 然而,如果在你交易尚未完成時,基準費用增加了呢?那么,你的交易就有可能被卡住,或失敗或被放棄,
- 因此,為了在 EIP-1559 下實現可預測的交易結算,目前認為最好的做法是設置一個預期基本費用增加的最高費用,但應該增加多少?理由又是什么?
- 我們符合 EIP-1559 標準的 Gas 估算器 目前使用以下簡單的啟發式方法來計算任何給定的基本費用和最高優先費用組合的推薦最高費用。最高費用 = (2 * 基本費用) + 最高優先費用
在計算最高費用時,將基本費用翻倍,可確保您的交易在連續六個 100% 完整的區塊內保持可被納入。以下是相關例子,
說明性例子:在六個區塊中,從處理到不被處理
假設你的交易是在第 1 區塊提交的,當時的基本費用是 100.0 GWEI,你選擇設置 2.0 GWEI 的最高優先費用,所以你的最高費用計算為 2 * 100.0 + 2.0,即 202.0 GWEI,
但是,就在你提交你的交易時,出現了一個高調的 NFT 空投,網路需求激增。突然間,每個區塊都成了完整區塊–而不是上面討論的 50%–所以基本費用按每個區塊最高 12.5% 的比例增加。
因此:
正如你所看到的,需要連續 6 個 100% 的完整區塊后才能使基本費用翻倍–在這個例子中,從 100.0 GWEI 到 202.7 GWEI,
實際上,通過這種方式設置你的最高費用,你的交易就得到了「保護」,避免在基準費用快速上升的情況下變得價格過低,從而無法被處理,
但是,如果基本費用沒有如此快速增長呢?你將被收取低于你指定的最高費用,可參考上表,
- 請記住,您的交易是在第 1 塊期間提交的,當時基本費用是 100.0 GWEI。您選擇了 2.0 GWEI 的最高優先費,所以您的最高費用計算為 202.0 GWEI,
- 您的交易在第 4 區間被確認,此時基本費用為 142.2 GWEI。
- 您的交易費用由確認時的基本費用加上您的最高優先費用的價格決定。因此,你將為這筆交易支付 144.2 GWEI/Gas,
- 這比你指定的最高費用少了 57.6 GWEI/Gas,那么,這 57.6 GWEI/Gas 實際上是「節省」下來的,將留在你的錢包里,
- 值得注意的是,你的最高費用并沒有從你的錢包中「提取」,然后部分被「退還」,相反,最高費用是「最高授權費用」的門檻,
- 如果你的交易在第 6 區塊之前都沒有被確認,那么在第 7 區塊期間,它將變得不可處理–它不再是一個候選者,因為它的最高費用 202.0 GWEI 剛好低于了新的基礎費用 202.7 GWEI,
最后,在上述情況下,如果你在計算最高費用時沒有包括 2 倍的安全系數,而是將最高費用設定為最低的 102.0 GWEI,會出現怎樣的情況?
- 你的交易在第一區間是可以處理的,因為你的最高費用仍然高于 100.0 GWEI 的基礎費用,
- 然而,到了第二區塊,你的最高費用就低于了新的基礎費用 112.5 GWEI,
- 這時,你的交易將保持待定狀態,直到基本費用下降并低于最高費用 102.0 GWEI,
- 或者,當網路高度擁堵時,你的交易可能會被完全放棄,
這就是為什么最高費用是反直覺的:
- 大多數時候–可能是絕大多數時候–你支付的交易費會比你的最高費用少,
- 但有時,特別是在網路高度擁堵的時期,你將被收取最高費用。
- 如果你選擇碰運氣,將你的最高費用設置得與當前的基本費用太接近,那么你就有可能使你的交易失敗,且不再有資格被納入區塊,
為了實現可預測的交易結算性能,我們建議在最高費用計算中加入健康的安全系數,
MetaMask 中的 EIP-1559
默認情況下,MetaMask 的 10.0.0 版本會自動設置交易的最高優先費用。您可以用「編輯」按鈕修改這些費用,可以選擇低(確認速度最慢)、中或高(確認速度最快)費用,
此外,要手動指定交易的 Gas 限額、最高優先費和最高費用。具體請選擇高級選項并下拉設置,