EIP-1559上線後,會是以太坊 Gas 的救星嗎?

買賣虛擬貨幣

EIP-1559 前以太坊gas費是怎麼算的?

在以太坊中,交易所需的 gas 費計算方式是:

TransactionFee = GasPrice × GasLimit

其中 Gas Limit 代表你願意為這筆交易支付的最大 gas 量,這通常取決於交易的複雜程度。Gas Price 指的是 Gas 的價格,即你願意為每個單位的 gas 所支付的 ETH 數量。

目前以太坊費用機制使用的是首價拍賣模式。使用者需要向以太坊網路提交出價(他們願意支付的 Gas Price)。每當生成一個新的區塊時,礦工將把 Transaction Fee 最高的那些交易打包進區塊裡。每一筆交易都會按照它的出價來支付 gas 費。

我們通常說的“支付更多的 Gas 費” 意思是增加某筆交易的 Gas Price 以獲得被打包的優先權。例如在 Metamask 中,有 “慢”、“平均” 和 “快” 這 3 個 Gas Price 選項供使用者選擇,使用者透過這個選項支付更高的 Gas Price 來加快自己的交易被打包。

問題在於,使用者與錢包都無法準確估計他們應該支付的 gas 費,事實上使用者總在支付高於他們本應支付的價格,來確保交易的順利進行。我們可以從下圖中看出,ETH 交易費的平均值一直高於它的中位數,並且當網路擁堵的時候差值尤其的大。

ETH 交易費的 平均數 / 中位數(來源: CoinMetrics)

EIP-1559會改變什麼?

EIP-1559 可以稱作是以太坊歷史上最令人期待的提案之一。它對以太坊網路的交易費機制進行了很大改造,主要可以概括為:

引入彈性區塊大小的機制,每個區塊的最大 Gas Limit 被提升至原來的 2 倍,礦工可以在網路擁堵的時候彈性地改變區塊的大小。

原本單一的交易費被更改為固定費用 (Base Fee)加上小費(Inclusion Fee)的模式,固定費用是必須支付的部分,並且會根據上一個區塊的 Gas 使用情況進行動態調整。且每個區塊的固定費用部分都會被燒燬,不會給到礦工。

彈性區塊大小允許礦工動態擴張或縮小區塊大小來處理暫時性的網路擁堵。有了 EIP-1559 之後,每區塊的目標 Gas 限值還是 15M, 但是最大 Gas 限值會從 15M 調整到 30M(差不多2倍)。如果區塊中使用的 gas 量比目標 gas 限值少,那麼代表網路是不擁堵的,下一個區塊的固定費用會降低。如果如果區塊中使用的 gas 量比目標 gas 限值多,那麼代表網路是擁堵的,下一個區塊的固定費用會升高。我們會在下文仔細講解這種機制。總的來說,交易量的波動原先會轉化為交易費的波動,而如今轉化為區塊大小的波動。

區塊擁堵程度 (來源: IOSG Ventures)

EIP-1559 引入一種新的交易費用機制,來解決首價拍賣模型中的問題。每區塊固定費用是“基礎費用(Base Fee)”,給礦工的額外的激勵是“小費(Inclusion Fee)”。所以交易費變為:

TransactionFee = BaseFee + InclusionFee

進一步分解:

TransactionFee = BaseGasPrice × GasLimit + InclusionFee

Base Gas Price 代表每個區塊的 Base Fee 裡的 Gas 的單價,每個區塊的 Base Gas Price 是固定的,而且價格高低由前一個區塊的擁擠程度來決定,

BaseGasPrice = PreviousBaseGasPrice×(1 + k× CongestionLevel)

其中 Congestion Level 代表區塊的擁擠程度,Previous Base Gas Price 代表上一個區塊的 Base Gas Price。k是調整速度係數,0 < k < 2。而根據 EIP-1559 的初始設定,k=1/8。擁擠程度會根據每區塊中使用的 gas 量是否大於目標 gas 限值來決定。

CongestionLevel = (PreviousBlockGas / UsedTargetGasUsed - 1)

總結來說,我們可以看到,

0.875× PreviousBaseGasPrice ≤ BaseGasPrice ≤ 1.125× PreviousBaseGasPrice

假設 gas 限值相同的情況下,

0.875× PreviousBaseFee ≤ BaseFee ≤ 1.125× PreviousBaseFee

當網路擁堵時,每過一個區塊後 Base Fee 最多會增加 12.5%,Base Fee 不斷增加直到使用者因為交易不再盈利而減少交易,所以這種機制可以緩解擁堵的網路;當網路不擁堵的時候,每過一個區塊後 Base Fee 最多會減少 12.5%,Base Fee 的下降激勵使用者增加交易。

小費是使用者付給礦工加速交易用的。小費是可選項,可以設定成零。礦工仍然用首價拍賣模式來優先選擇有更多小費的交易來打包進下一個區塊。

通脹還是通縮?

以太坊每年的通脹率為4%,每個區塊會鑄造 2 個 ETH 作為固定區塊獎勵。在 EIP-1559 中,Base Fee 裡的 ETH 都會被燒燬,這會對 ETH 的價格產生通縮壓力。

區塊獎勵分解 (來源: IOSG Ventures)

倫敦升級和 EIP-1559 提案已經在區塊高度 10499401 部署在了 Ropsten 測試網。目前社羣正在觀察 EIP-1559 的表現,以及gas費會怎麼變化。最近,許多文章和評論都刊登了http://watchtheburn.com/ 這個網站的截圖,這個網站在監測有多少 ETH 被 Base Fee 燃燒掉。

Ropsten 測試網上燒燬的 ETH(來源: watchtheburn.com)

截至目前,從區塊高度 10499401 到 10512250,總共燒掉了 88571 個 ETH。也就是說在12859 個區塊中燃燒了 88571 個 ETH,同時有 2 * 12859 = 25698 個 ETH 被鑄造。這意味著 ETH 確實因為 EIP - 1559 變得“通縮”了!

但是 EIP-1559 在以太坊主網上線後也會是這個結果嗎?我們覺得不會。

我們認為在 Ropsten 上之所以燃燒了這麼多的 ETH,是因為網路有許多不尋常的連續的擁擠的區塊,這些擁擠的區塊將Base Gas Price 推到很高,並且持續了很長一段時間。一個很好的證明是區塊高度 10503157 到 10504352,Base Gas Price 從 98.45 Gwei 增加到了 82851 Gwei,在 1195 個區塊中增長了 841 倍。

Rospten測試網中區塊高度為10499401 到 10506825 的基礎費用價格 (來源: IOSG Ventures)

這種情況很特殊,更像是開發者在測試網上做的極端測試。

主網上線後不會出現相同的情況,因為逐步提高的 Base Fee 會迫使需求不那麼強烈的使用者不進行轉賬,進而把區塊大小恢復到目標大小,從而降低 Base Fee。

以太坊社羣的 @barnabemonnot 做的模擬展示了 Base Fee 到達一個峰值之後可能的走勢

Base Fee 模擬 (來源: @barnabemonnot)

我們預測當主網高度擁堵的時候,一個常見的規律會是幾個大型區塊後緊接著幾個小型區塊。高度擁堵的情況不會超過5分鐘,以太坊還是會通脹但是通脹率相對較低。

交易費會下降嗎?

EIP-1559 主網上線之後,交易費會下降嗎?是的,我們認為雖然降低交易費並不是 EIP-1559 提案的最終目的,但是它確實會降低以太坊網路的交易手續費。

首先,因為交易費被分為了 Base Fee 和小費兩部分。過去人們增加 gas 單價來加快交易被打包確認,整個交易費被增大。而現在改成透過增加小費來加速交易被打包,這並不會影響到 Base Fee,Base Fee 仍然只是反映著網路的擁堵情況,小費則反映著使用者對交易能否成功的緊急程度,這兩個部分不會再混在一起了。因此使用者更清楚自己至少需要出多少交易費,使用者變得更加理性後會減少過度競價,這樣就能讓 gas 費降下來。

Gas Fee 分解 (來源: IOSG Ventures)

第二,可變的區塊大小可以在交易量大的時候作為緩衝,把 gas 費的波動轉化為區塊大小的波動。所以當交易量激增時,gas 費會比以前上漲得緩慢。

最後,EIP-1559 上線之初 Base Gas Price 會被設定為 1 Gwei,相較於最近 20+ Gwei 的 gas 價格,這會在剛上線的時候把 gas 費短暫地拉低。

另一方面降低 gas 費並不是 EIP-1559 的目的。它的目的更多的是想要讓 gas 費的變化變得更加平穩,減少使用者過度競價,並且讓gas費有更高的可預測性。

錢包和使用者會怎麼樣呢?

錢包對 gas 費不再是估算而是精準計算,因為現在可以準確計算出下一個區塊的 Base Gas Price 了,使用者對交易費用的數額有更清楚的認知。錢包會顯示下個區塊的Base Gas Price,並且允許使用者設定小費來加快打包。

錢包開始設計新的UI模板,以下是Metamask(非官方)和Status(非官方)的模板。

錢包頁面模擬 (來源: @tvanepps from HackMD)

對使用者來說,最大的不同就是他們不再需要猜測交易費用的高低,他們不用去猜測自己付的交易費夠不夠高,能不能被打包進區塊;或者自己付的交易費用夠不夠低,有沒有白白多支付費用。現在 Base Fee 就像一個定價銷售,使用者只需要決定是否能夠接受這個定價。

使用者可以根據下一個區塊的 Base Gas Price 來設定一個 Base Gas Price Cap,即使用者願意支付的最大 Base Gas Price。這麼做的原因是當使用者進行支付時,可能已經有新的區塊生成因此 Base Gas Price 發生了改變,而如果使用者設定一個稍微高一點的 Base Gas Price Cap 就可以讓他的交易在接下來的幾個區塊裡被順利打包。Base Gas Price Cap 和交易被打包區塊的 Base Gas Price 的差額是會被退回給使用者的。

這就是說,即使使用者高估了下一個區塊的 Base Fee,然後設定了一個過高的 Base Fee Cap,他也不會過度支付 Base Fee。例如下個區塊的 Base Gas Price 是 200 Gwei,而使用者設定的最大 gas 價格是 300 Gwei,如果交易是被下一個區塊打包的,那使用者還是隻需要按照 200 Gwei 的 gas 價格來付費!這是一個對使用者友好度的大改進!

礦工會怎麼樣呢?

毫無疑問,一些礦工會認為 EIP-1559 是一個壞訊息。原本所有交易費都歸礦工所有,而現在只剩下小費會給到礦工,而BaseFee的部分會被燒燬掉,因此礦工們將會失去部分收入。

區塊獎勵流出方向對比(來源: IOSG Ventures)

毫無疑問,一些礦工會認為 EIP-1559 是一個壞訊息。原本所有交易費都歸礦工所有,而現在只剩下小費會給到礦工,而BaseFee的部分會被燒燬掉,因此礦工們將會失去部分收入。對於MEV而言,礦工在EIP-1559後仍然有調整交易在區塊中的順序的能力,所以MEV的基本面保持不變。

下圖是 Flashbots 基於MEV佔比的礦工收入明細。我們假設對於一個非MEV交易,Base Fee 通常會比小費多很多,所以下圖中大部分的橙色區域會被燒燬,小部分因為小費的存在而留下;而對於礦工MEV收益的部分,大部分MEV收益是來自於 Flashbots 裡的 searcher 支付的打包費,和礦工透過往區塊裡混入自己的交易得到的收益。被燒燬的 Base Fee 和前兩個部分相比十分小。所以下圖中大部分的綠色區域會保留,大部分的MEV收益仍會被捕獲到。

礦工利潤分解(來源: Flashbots)

從長期前景來看,EIP-1559 給 ETH 帶來通縮壓力;ETH 的價格升值最終會讓礦工受益。如果礦工在 ETH 數量上損失了25%,但 ETH 價格上漲了35%,礦工的美元收入仍然是不變的。

也有提案是說,與其燒掉所有的 Base Fee,不如將其中的一小部分與礦工分享。總而言之,所有這些都可以根據 EIP-1559 的表現進行協商和調整。

EIP-1559 會對 Flashbots 的使用有影響嗎?

Flashbots 的使用者是透過 EIP-1559 引入的新費用機制競拍還是繼續使用 Flashbots 呢?新費用機制的小費部分似乎可以用於競拍。

Flashbots 提供的一個重要的功能叫做 pre-trading privacy,交易只有在被打包進區塊之後才會被公開。Flashbots 使用首價密封投標拍賣的方式,所有使用者同時提交密封的交易包以及競價,沒有競拍者會提前知道其他人的交易包的內容和所出的競價。所以使用者不用擔心被搶先交易,因為他的交易是全程被密封著的。

因為無法提供 pre-trading privacy,所以 EIP-1559 不能代替 Flashbots。假設套利者提交了一個能夠盈利 $100 的交易進入記憶體池,並附上有 90$ 的小費。這個交易在進入池子的時候就會被公開,其他套利者可以複製他的交易,並且提交一個新的有更高小費的交易, 比如帶有 $95 的小費的新交易。於是新的交易會被打包進區塊,原來的套利者就因為被搶跑而失去了套利機會。EIP-1559 沒辦法改變這種情況,無法給使用者提供搶跑保護。

沒錯,即使在 EIP-1559 上線之後,以太坊使用者還是會大量使用Flashbots,來尋找進入區塊無風險入口以及搶跑保護。

結論

EIP-1559 引入了新的 gas 費機制,用 Base Fee + 小費的模式代替了單一的費用機制。以太坊區塊大小具有了彈性,由此將 gas 費的變化轉嫁為區塊大小的變化。在 EIP-1559 上線後, 以太坊網路的交易費會變的更低並且有更大的可預測性;ETH 仍會是通脹的狀態但是通脹率會降低;以太坊網路擁堵的情況會得到緩解;使用者體驗度會得到提升。這些改變會大大提升以太坊的可用性,並讓更多的使用者最終向以太坊傾斜。

雖然礦工短期會損失一些收益,但是長遠來看最終會享受到以太坊價格上漲帶來的更多收益。礦工依然擁有調整區塊中交易順序的自由,所以 MEV 的基本面並沒有被改變,但由於 Base Fee 的燃燒,礦工在 MEV 方面的收益會相應減少;EIP-1559 不能代替 Flashbots 提供 pre-trading privacy的功能,所以需要防止交易被搶跑的使用者仍然需要使用 Flashbots。

EIP-1559 已經在 Ropsten 測試網上線,之後會陸續登陸 Goerli、Rinkeby 和 Kovan 等測試網。在測試完備後,EIP-1559 預計會在7月底進行主網上線。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读