以太坊 gas-fee與EIP-1559

甚麼是Gas-fee?

當使用者使用以太坊進行交易(transaction,非單指買賣,而是包含查詢等動作),需要付出一個交易費,可以看成是手續費,這個費用叫做gas-fee,使用者根據競價模式(first-price auciton)來決定支付交易的手續費,讓礦工把交易打包進區塊完成交易;從礦工的角度來想,為了增加收入,當區塊鏈網路塞車時,礦工會優先選擇手續費更高的交易。這樣的模式有一個潛在的問題,就是使用者很難正確出價,並不知道要出多少錢自己的交易才會被執行,出低了要許久才能完成交易,出高了當然會被優先完成但成本也就更高,另外,當需求高的時候,價格(手續費)很容易被推上去以確保自己的交易會被完成,而價格推高則造成了網路使用的不效率,所有使用者的費用增加,從而不利於以太坊生態網路的發展。

EIP-1559主要做了甚麼?

EIP1559就是為了解決上述問題產生出來的,總的來說,EIP-1559 採用固定價格售賣(fixed-price sale)模式,不再由用戶出價,而由協議報價。當然,協議報價,如果用戶覺得貴了,可以取消交易。實際的作法上,一方面是更換了使用者在設定手續費的機制,另一方面是降低礦工的收益。

更細節的來說,EIP-1559規定包括了主要的三項,首先把原本的區塊大小上限變成目標的兩倍:如果希望一個區塊用掉 15,000,000 gas(目標使用量),就把上限設成 30,000,000 gas(最大使用量),讓區塊的使用更有彈性。另外手續費的機制從單純的Gas Price變成基本費Base Fee、跟額外小費Tips Fee兩個費用,在同一個區塊計算時,大家的Base Fee都是一樣的,而礦工打包的先後順序則是看大家的額外Tips Fee多寡決定。而目前區塊的滿溢程度會決定下一個區塊的基本費,每個區塊可以有正負 12.5% 的基本費調整。當區塊的 Gas 使用量小於目標使用量時,以太坊將降低基本費,而如果大於該目標時,以太坊將增長基本費。所以,當區塊塞車時(區塊的使用量將趨向最大使用量),Base Fee會隨著區塊逐漸變高;當區塊交易變少時,Base Fee會逐漸減少,而當下的Base Fee則可以去Etherscan做查詢。因此,在交易火熱的行情下,基本費會增長非常快:對於每個滿塊 ,即區塊大小達到 Gas 上限,下一個區塊的基本費將增長 12.5%,總結起來就是:這種可變的區塊大小允許臨時增加可用的區塊空間,從而使得Gas價格更加平穩,也可以使短期內區塊之間的Gas價格的漲幅更加平穩。

MataMask中的設定,Max priority fee 即為 Tips fee

另外,很大的變化是是基本費 (Base Fee) 將被銷毀並從以太坊流通中移除。礦工將只取得小費Tips Fee(當然還保有原本的其他挖礦收入*),這樣的銷毀等於減少了以太幣的流通量,進而有助於改善以太幣越變越多的問題並提升以太幣的價值。

EIP-1559於2021年8月5號上線。

* 名詞解釋:

  • 以太坊挖礦收入來源: 在以太坊中,挖礦收入主要有三個來源:1.內置的區塊獎勵(每個區塊獎勵 2 ETH + 叔塊獎勵)2.交易費3.礦工可提取價值(MEV),EIP-1559協議主要針對的就是交易費。
  • 叔塊: 在以太坊系統中,如果在同一區塊高度,多名礦工都挖出了新的區塊,這些區塊中,其中一個將成為最長鏈上的區塊,而其他區塊,如果被後續區塊引用,將被稱為叔塊(Uncle Block);當礦工A挖出一個新區塊後,需要向全網廣播,廣播的過程需要時間,由於以太坊出塊時間短,其他節點可能還沒有收到礦工A發布的區塊,就已經挖出了同一高度的區塊,這就造成了臨時分叉。在以太坊網絡中,臨時性分叉發生的機率在8%左右。