如果你最近用過DeFi ,最近高漲的交易費會令你瞠目結舌。如今,就以太坊交易而言,數十乃至數百美元的交易費實屬稀鬆平常之事。在如此高昂的手續費下,只有巨鯨才能有利可圖,更別提什麼“讓沒有銀行賬戶的人也能享受銀行服務”、“讓免許可型金融基礎設施惠及所有人” 等宏圖偉業了。以太坊正在成為富人的聚集地。
- 如果是小額交易,手續費可能會超過交易金額的10% -
高昂的手續費表象之下的核心是區塊鏈可擴展性問題。這個問題太過臭名昭著,以至於有了自己的維基百科頁面。這是當前區塊鏈最主要的局限性,此外還有終局性時滯太大、搶跑交易、跨鏈互操作性等局限性。
我們想要創建一個能讓所有價值自由流動的代幣化世界,區塊鏈的局限性會阻礙我們實現這一願景。這就是為什麼0x Labs 組建了一個專門的研究工程師團隊針對這些局限性開發解決方案。在本文中,我們將探索以太坊的局限性及其對DeFi 用戶的影響。我們還將簡要介紹下一代區塊鏈。在後續文章中,我們將探索另一類解決方案(Layer 2),並介紹我們自己解決DeFi 需求的策略。
首先,要知道以太坊交易的大小是以Gas 消耗量來衡量的。交易會打包到區塊中,大約每13 秒出一個塊。每個區塊只能容納有限的交易,因為有所謂的“區塊Gas 上限”。目前,每個區塊的Gas 上限是1200 萬。一個普通的ERC20 代幣交易需要消耗大約5 萬Gas 。這就意味著,一個區塊最多可容納240 筆代幣轉賬操作,即,每秒可完成大約18 筆交易。 DeFi 交易通常涉及多筆代幣轉賬,以及其它記賬操作,這會導致成本翻倍,並進一步限制吞吐量。 Gas 容量和出塊時間意味著有源源不斷的Gas 可供交易使用。
我們先來看看以太坊誕生以來,Gas 的供應量和使用量增長情況。
Gas 使用量
每天,以太坊上都會新增大約6000 個區塊,容納數十億Gas 的交易。這個數量一直在變化,並隨著時間流逝而增長,主要是因為區塊Gas 上限增加。與此同時,隨著以太坊上交易的數量和規模在不斷增加,交易所消耗的Gas 總量也在不斷增加。
回顧整個以太坊的發展史,Gas 的供應量(灰色部分)和消耗量(黑色部分)如下圖所示:
-(你可以說,以太坊是企業用的,因為Gas 使用量在工作日更高)-
如圖所示,在拜占庭(Byzantium)、君士坦丁堡(Constantinople)和繆爾冰川(Muir Glacier)硬分叉發生前,Gas 供應量都出現了鋸齒狀的驟降。這些都是以太坊難度炸彈,又稱冰河世紀(ice age),所產生的影響。在冰河期,出塊時間會呈指數型增加,導致每天挖出的塊數量減少,每天的Gas 供應總量也隨之減少。當然了,這種情況是非常糟糕的,因此以太坊網絡需要用硬分叉來恢復網絡。難度炸彈的用意正在於此:引入改進措施,以免出現創新停滯的情況。由於君士坦丁堡硬分叉忘了重新設置難度炸彈,以太坊緊接著又引入了繆爾冰川硬分叉。之後的柏林硬分叉正在考慮改變這一機制(EIP 2515)。
通過圖中黑色部分的Gas 使用量,我們可以看出2017 年ICO 熱潮以來,以太坊的Gas 使用量佔Gas 上限的60% 以上。自此以後,Gas 上限經過幾次躍升,增長了四倍。每次躍升後,Gas 使用量也出現相應增長。過去幾個月來,以太坊的Gas 使用量似乎卡在了Gas 上限的95% 上。
要想知道以太坊的Gas 使用率為何無法超過95% ,我們需要先了解空塊和叔塊。
空塊和叔塊
縱觀以太坊的發展史,即使是在供不應求的情況下,以太坊的Gas 使用量也沒有超過Gas 上限的95% 。令人驚訝的是,剩餘5% 的gas 都是以空塊的形式被浪費了。空塊是有規律的,大約每挖出20 個區塊就會有一個空塊。在有付費交易等待打包的情況下,為什麼還會有人挖空塊?我們來看一下數據:
空塊率隨時間的流逝而穩定增長,目前在5% 左右。所有礦池都有挖空塊,因此不是惡意行為。真正的問題是,出塊速度過快。如果挖出一個區塊的時間少於6 秒,這個塊是空塊的概率會成倍增加(譯者註:作者這個斷言應該是根據時間戳統計數據得出的,因為沒有使用虛擬語氣)。
有一種解釋是,礦工在收到一個新區塊的區塊頭、但還沒處理完整個區塊時就開始挖下一個區塊。這在比特幣中叫作“簡單支付驗證(SPV)” 挖礦,可以讓礦工立即開始挖下一個塊,但是只能挖空塊。一旦新的區塊處理完成,礦工就可以開始打包並挖出下一個區塊。可以證實這一解釋的另一個證據是,如果同一個礦工連續挖出了兩個區塊,空塊率就會降低25% 。
除了挖空塊之外,還有一種方法是在處理新區塊的同時繼續接著上一個區塊挖礦(而不是挖更新的可挖位點)。這就有可能導致多個新區塊被挖出。如果這種情況發生在以太坊上,網絡就會選出一個合法區塊,並將其它區塊視為叔塊。挖出叔塊的礦工會獲得同樣的區塊獎勵。叔塊率非常穩定:
2018 年,Gas 使用量達到頂峰時,叔塊率也達到了頂峰(現已降至穩定的5%)。那段時間,空塊率也有增加,可能是因為礦工改變了策略。
雖然叔塊率對以太坊可擴展性的影響不是很明顯,但確實存在。拜占庭硬分叉中的EIP-100 調整了區塊難度評估公式,將叔塊計算在內。因此,叔塊率越高意味著在礦工挖出的區塊中,作為叔塊被浪費的區塊越多,作為合法區塊被添加到最長鏈上的區塊越少。具體表現為出塊時間增加,每日Gas 供應量減少。 (導致出塊時間增加的另一大原因是冰河期。)
無論是叔塊還是空塊,都是以太坊上重要的網絡健康標誌。二者中任意一者增加都意味著每日Gas 供應量減少。對叔塊率的分析是EIP 2028 和1559 背後主要的研究內容之一(參見1、2、3)。令人驚訝的是,這兩個EIP 都沒有提到空塊率,而且研究上存在方法上的缺陷。最好能採用恰當的統計方法(如邏輯回歸)來進行更嚴格的分析,並將叔塊率和空塊率都納入考慮範圍。
有一些方法可以用來降低空塊率和叔塊率。假設導致空塊率和叔塊率較高的根本原因是,由於網絡和區塊處理延遲,礦池無法獲得最新狀態。一種簡單(但是不可取)的方法是,讓礦池變得更加中心化,將最新狀態集中在一處。去中心化更高的解決方案是,使用bloxroute 在礦池之間創建專屬的互聯通道。還有一種解決方案的靈感來自“間諜挖礦(spy mining)”,就是讓礦池預先共享它們正在挖的區塊。其它礦池就能針對每一個在挖區塊準備好下一個區塊,一旦某個礦池成功挖出了區塊,其它礦池就知道下一個該挖哪個區塊,並且馬上切換過去。從更高層次來看,改進節點通信協議和處理算法也會帶來幫助,或許也能帶來一些收益。但是,正如我們所見,降低叔塊率和空塊率最多可以將每日gas 供應量提高5% 左右。
由此看來,gas 上限是gas 供應量的95% 。那麼,如果人們對gas 的需求超過這一上限,會發生什麼情況呢?
Gas 價格
當以太坊用戶對Gas 的需求接近上限時,會發生什麼情況?礦工可以隨心所欲地選擇交易進行打包(詳見下文)。但是實際上,礦工會優先打包Gas 價格高的交易,因為這會讓他們的收益最大化,最終引發針對Gas 的最高價格拍賣。
Gas 價格已經成為完美的無彈性供給范例。隨著以太坊網絡對Gas 的利用率超過80% ,向95% 的上限直線靠攏,Gas 價格就會出現大幅上漲。需求量增加只會推動Gas 價格上漲,直至用戶負擔不起為止。讓Gas 價格下跌的唯一方法是,提高Gas 供應量或降低用戶對Gas 的需求量。近期Gas 上限的增加並不足以有效壓低Gas 價格。
乍看之下,人們對以太坊的興趣增加,只會導致Gas 價格上漲,不會導致以太坊的使用量增加。實際上,Gas 價格高的交易會淘汰Gas 價格低的交易。那些小額NFT(非同質化代幣)交易會減少,大額的DeFi 交易會增加。
EIP 1559 旨在讓Gas 供應量在較短的時間範圍內更具彈性。在需求量高峰時期,會創建出較大的區塊(高達2000 萬Gas)。這有助於平抑Gas 價格,讓交易更早被打包進區塊。但是,這並不會改變長期中的無彈性供應問題。 EIP 1559 實施後仍然會有一個長期不變的Gas 上限。這就意味著,Gas 價格將持續上漲,直至需求量足夠小為止(與現狀相同)。此外,EIP 1559 實施後仍有用來支付給礦工、作為打包交易的報酬的激勵機制(假設礦池會繼續按照這個激勵的大小為交易排序、創建區塊)。這就意味著,搶跑交易、Gas 競價之戰和礦工抽取價值的問題依然存在。
圖中數據代表被打包進下一個區塊所需支付的最低價格。如果你願意等久一點,Gas 價格會低得多。從近期的歷史數據來看,如果你願意等待兩分鐘及以上,Gas 價格就會下降。 EIP 1559 有助於在降低溢價的同時加快交易的處理速度。
因此,達到Gas 上限時,Gas 價格就會上漲。那麼,我們如何提高Gas 上限?
(未完)
原文鏈接:https://blog.0xproject.com/scaling-defi-layer-one-7eeb24aca4f0
作者: Remco Bloemen
翻譯&校對: 閔敏 &阿劍