原文由加密貨幣研究員Hasu和Georgios Konstantopoulos聯合完成,透過分析驗證,他們得出結論稱EIP 1559是以太坊最值得期待的變化之一。如果得到實施,它將對使用者、礦工甚至以太坊自身的安全產生深遠影響。
此外,在兩位研究者看來,即使是根本不關心以太坊的讀者,也應該瞭解EIP-1559。
因為其涉及到的彈性區塊大小上限及擁堵控制系統,可能會成為確保比特幣區塊後補貼(指可持續挖礦)的重要組成部分。
在這篇分析文章當中,我們解開了EIP 1559提案的不同組成部分,使其更易於推理。然後,我們分析了該提案,並和其設計目標進行了對比,最後,我們研究了該提案可能存在的弱點。
EIP-1559的四個設計目標
更好的使用者體驗:比特幣和以太坊等區塊鏈使用的第一價格拍賣機制,儘管很容易實施,也很容易理解,但問題是效率也很低。最大的問題之一就是費用估算。EIP-1559試圖透過讓所有交易儘可能支付相同的費率,來解決這一問題。在大多數情況下,使用者將只決定是否支付費用,而無需進行競價。由於更好的費用估算,這有望導致較低的費用。
鬆弛機制:對區塊空間的需求可能不穩定。結果是,一些區塊處於半滿的狀態,而另一些區塊則非常擁擠。鬆弛機制允許一些區塊變大,而另一些區塊則可以變小。這樣我們就可以實施一個更長期的平均區塊大小限制,但要考慮到各個區塊之間的差異。
更好的安全性:當區塊補貼用完時,只依賴交易費用來獲得安全性的區塊鏈(例如未來的比特幣)可能會遇到問題。EIP-1559試圖將網路安全與交易費用分離開來。交易費用被燒掉,然後礦工受到更可靠的永久性區塊補貼的激勵。
防止經濟抽象:當使用者可以用任何代幣(如穩定幣)支付交易費用時,會威脅到原生代幣(ETH)的儲備狀態和貨幣溢價。透過強制交易消耗特定數量的ETH,EIP-1559試圖使經濟抽象變得更加困難。
EIP-1559是如何工作的?
BASEFEE + Tip
作為第一個構建塊,協議規定了稱為BASEFEE(基本費用)的最低費用。
最低費用通常是不可強制執行的,因為該協議無法阻止關於交易包含的外部價格發現。協議總是可以命令一個價格,但是如果礦工和使用者同意一個較低的價格,使用者可以在協議中向礦工支付費用,礦工可以在協議之外向使用者退款。
EIP-1559透過燒掉整個BASEFEE(基本費用)來解決這個問題,因此不能退還。
由於礦工收取不到任何BASEFEE費用,使用者必須以不同的方式激勵礦工將交易包含在內,這將我們帶到使用者的角度。提交交易時,使用者必須配置兩個值:
首先,他們確定一個GAS_PREMIUM(從現在起,我們將它稱為“tip”)作為包含出價。通常情況下,它必須高到足以補償礦工挖到叔塊的風險(例如1 Gwei)。在交易擁擠的時候,它允許交易者之間進行舊的第一價格拍賣機制。
第二,使用者確定一個FEECAP,它代表了使用者願意為包含內容支付的最高金額(包括 tip)。這是必要的,因為BASEFEE(基本費用)實際上可以向上或向下移動,正如我們稍後將看到的,並且設定了不足FEECAP的使用者,應能夠等待之後的區塊包含交易。
總而言之,BASEFEE(基本費用)允許該協議強制執行最低費用,而不會激勵形成鏈外市場。它為更靈活的區塊空間利用機制(例如統一的價格拍賣和彈性區塊大小)奠定了基礎。
彈性區塊大小上限
區塊大小更多的靈活性,自然是可取的,但允許無限的區塊大小會存在已知的激勵問題。用更大的區塊來推高叔塊率的能力,為礦工集權提供了動力。此外,必須包含驗證成本,以便網路可以保持無需信任。
這就是彈性區塊大小機制的用武之地。其目標是允許礦工製造更大的區塊,但成本必須是可證明的。孤塊率的增加,本身並不是一個可證明的成本,因為它可以透過增加中心化來減輕,但是按協議收取費用是可以的。
在EIP-1559中,礦工可週期性地超過區塊大小上限,以對突發需求做出反應,當然,這種情況只有在使用者真正有需求的情況下才會發生。BASEFEE原語透過引入實際成本(燃燒費)來阻止礦工透過垃圾交易來支撐他們的區塊。
由於EIP-1559使用了兩個值代替了現有的區塊大小硬上限,因此有可能對突發需求做出反應:其長期目標是每個區塊1000萬 gas,以及每個區塊2000萬gas的新硬上限。
從長期來看,網路會上下調整BASFEE以達到所需的平均區塊大小。當區塊低於目標時,費用會隨著時間的流逝而減少,以鼓勵需求。當區塊超出限制時,費用會隨時間增加以抑制需求。變化的大小由距1000萬gas的距離確定,但每個區塊沿任一方向的上限為12.5%。
總而言之,BASEFEE調整機制使得使用者可根據區塊空間的利用率自動調整所需的交易費率。
更好的使用者體驗
為了評估使用者和錢包提供商的UX,我們必須考慮系統處於不同的擁堵狀況。
無擁堵狀態:當區塊低於2000萬gas的最大上限時,使用者沒有理由增加他們的tip費用。(即使BASEFEE隨著時間的推移上下調整,這仍然適用)
結果,包含在區塊中可完全由BASEFEE確定。
願意支付BASEFEE加最低tip費用的使用者將進入下一個區塊。只要沒有擁堵情況,使用者就可以用固定價格購買區塊空間。這就好比是今天你去亞馬遜購物,然後看到你想要商品的固定價格,而不是在拍賣會上競價一樣。然後,使用者要麼接受交易,要麼放棄交易。因此,使用者和錢包的費用估算變得高度可預測。
使用者甚至可以將其FEECAP設定為低於當前的BASEFEE,以便在費用較低時等待包含在後面的區塊中。
偶發擁堵狀態:當區塊gas超過1000萬時,BASEFEE開始上升。實際上,它會不斷上升,直到下一個1000萬或更少的gas被開採出來。如果下一個區塊是1000 萬gas,那麼BASEFEE將穩定在目前的費用水平。如果下一個區塊低於1000 萬gas,則BASEFEE將開始下降。
這是一個重要的認識。如果區塊超過1000萬gas已有一段時間,則交易會變得非常昂貴,最終將需求推低。交易成本上升的速度有多快?
假設區塊0的BASEFEE為每gas 10億wei,以240美元的ETH價格計算,典型的一筆21萬gas 交易會花費0.0005美元。僅在10個2000萬gas的區塊後,交易費用就變成了0.02美元,100個區塊之後,交易費用就變成了657美元,這就是指數增長的力量!
圖1
隨著區塊接近2000萬 gas的上限,我們希望有緊急交易需求的使用者能夠參與tip費用拍賣,因為該協議已不再採用二進位制方式確定其中的優先順序。
因此,在出現擁堵時,協議會回到現有的第一價格拍賣模型。
即使在小費拍賣中,BASEFEE的大小對於交易者而言仍然是可預測的。 如果BASEFEE在區塊0的虛擬起始值為100,則它最多可以在T1處達到100*112.5%,在T2處達到100*112.5%^2,在T3處達到100*112.5%^3,依此類推。這同樣適用於費用減少的情況。
圖2中的彩色區域顯示了基於其初始值(本例中為100)的BASEFEE在未來區塊中可能接收的潛在值。
圖2
擁堵加劇的狀態:現在應該清楚的是,EIP-1559允許在短時間內(而不是更長時間內)出現較大的區塊。在僅僅30分鐘的突發需求之後,一筆簡單的21000 gas交易的BASEFEE將超過1000美元(假設初始BASEFEE = 1 Gwei)。
BASEFEE恢復到更“正常”水平的唯一途徑,是挖取1000萬gas以下的區塊。
想象一下,已經有持續100個2000 萬gas的區塊。為了與前面的例子保持一致,平均交易成本已增加到657美元以上。為了讓BASEFEE回到起點,必須開採89個空區塊。此外,我們還可以開採183個 500萬gas的區塊,371個750萬gas的區塊,等等。
圖3
因此,在高度擁堵的情況下,典型的模式是一系列大的區塊,然後是一系列非常小的區塊。這是有意義的,因為具有高時間偏好的使用者,現在可以更快地確認其交易。但最終,BASEFEE超出了交易方的需求,他們不得不等待BASEFEE再次下降。
對此的另一種思考方式是,鬆弛機制將一些價值相當於容量的區塊從不久的將來拉到眼前。
但它無法產生更多的容量,最終必須償還債務。
鬆弛機制(Slack mechanism)
在評論了EIP-1559是如何應對擁堵情況之後,我們可以看到它的鬆弛機制與BASEFEE ,在區塊之間的最大變化量密切相關。它調整得越慢,系統就越能優雅地處理需求的變化。
這種變化的一個共同主題是晝-夜或工作日-週末迴圈的週期性。按照目前的形式,EIP-1559不允許區塊在夜間和白天持續變大,因為這些時段太長,費用會增長到數十億美元,晚上也同樣會迅速降到接近零的水平。
因此,鬆弛機制是在分鐘——半小時的時間範圍內工作的,但不能超過這個時間範圍。較長的需求會將區塊大小拉向一個方向,例如滿區塊時,其被上升的BASEFEE拉回來的力度就越猛烈。
更好的安全性
很多區塊鏈都有通貨緊縮的貨幣政策,這意味著它們發行的新幣數量會隨著時間的推移而下降(即常見的減半策略)。當發行量下降到足夠低的水平時,支撐安全性的激勵就來自於交易費用。EIP-1559與這種只有一種費用的安全模式不相容,因為大部分交易費不是用於激勵礦工的,而是會被燃燒掉。
因此,可以說EIP-1559允許為礦工提供永久性的區塊補貼,以確保該協議的安全。但考慮這一點的更好說法是:這將使永久性區塊補貼作為一種設計方案更為可取。原因是,費用燃燒對幣的供應起到了通貨緊縮的作用,從而允許在其他地方發行新幣,而不會使整體供應膨脹。
由於具有永久性區塊補貼的協議,能夠為礦工帶來更穩定的收入流,可以公平地說,EIP-1559對以太坊的長期安全和穩定性而言,具有積極的影響。
防止經濟抽象
在應用EIP-1559之前,從技術上來講,交易費用不一定是要用ETH支付。雖然網路僅支援以ETH支付費用,但理論上使用者可透過元交易使用任何他們想要的token向礦工支付費用。但是,礦工也可以透過MEV間接獲得報酬。例如,一個礦工可以納入一筆無需任何費用的DEX交易,因為他可以透過搶先交易在其他地方賺錢。
EIP-1559在很大程度上解決了此問題。每筆交易的BASEFEE部分都以ETH計價,並且總是被燃燒掉。在這種情況下,無論是誰付款,都會有一部分ETH供應會消失。礦工仍然可自由選擇較低的BASEFEE交易,但前提是他支付了與ETH計價的區塊補貼的差額。礦工在該區塊中賺取的ETH較少,而使用者保留的則更多。必須要有人用以太幣支付這筆交易。
我們說“很大程度上解決了這個問題”,是因為EIP-1559可以防止對BASEFEE的經濟抽象,但它不能阻止tip費用。由於tip費用沒有被燒掉,因此協議就無法強制付款方式或付款地點,那麼就有存在鏈下市場的可能。但是,正如我們前面所展示的,在大多數情況下,使用者沒有必要將其tip費用提高到最低要求之上。
可能存在的問題
EIP-1559的一個主要問題是礦工是否能夠操縱BASEFEE,以及他們是否願意。
當BASEFEE為0時,由於沒有燃燒,礦工會收到使用者的全部出價。還要記住,只有在對區塊空間的需求超出可用供應量時,才會開始進行tip費用競拍。
一旦收費接近於零,礦工們就會有一個簡單的策略,可以將其永久保留在這個水平。如果他們從不開採高於1000萬gas的區塊,BASEFEE也不會增加。如果需求從未超過1000萬 gas(或礦工決定設定低於1000萬gas的限制),則礦工將獲得全部的費用。
但是,對於礦工整體而言,最好的選擇不一定是單個礦工的最佳選擇,這就是集體行動的問題。如果區塊的上限為1000 萬gas,並且市場有交易2000 萬gas的需求,那麼只要有一個礦工,就可以打破聯盟,並納入包含tip費用的交易。
要使其成為穩定的壟斷者,就需要一個礦工啟用軟分叉(MASF)。在MASF中,超過50%的算力將保證忽略任何大於1000萬gas的區塊,從而激勵少數人遵循新實施的規則。
由於這種攻擊向量存在於任何網路上,因此我們目前不認為它是EIP-1559的特定風險。
總結
我們發現EIP-1559在很大程度上可以實現其承諾。除了非常短暫的高擁擠狀況外,它應該可使費用估算更具可預測性,在這種情況下,系統會退回到已建立的第一價格拍賣模型。由於BASEFEE會以指數方式增長以抑制需求,因此持續的時間並不會太長。
BASEFEE作為一個有趣的構建塊,使得這些好處成為可能。它在協議中設定最低費用的能力,開闢了一個新的設計空間,從彈性區塊大小、永久區塊補貼、更好地抵抗經濟抽象,到未來更好的競拍模型。
EIP-1559很有希望,但這並不意味著它也是最好的。我們僅根據其自我報告的目標來評估現有的一組引數。進一步研究該機制的不同配置,將會是一個好主意。
如果你想複製我們的數字和圖表,或者執行自己的實驗,歡迎訪問我們在GitHub提供的程式碼。
最後,感謝Su Zhu, Patrick McCorry, John Adler, Nick Johnson, Dankrad Feist, Tarun Chitra, James Prestwich以及Caleb Tebbe提供的有益討論和反饋。