擴充套件 DeFi 吞吐量:Layer-One 篇(上)

買賣虛擬貨幣

如果你最近用過 DeFi ,最近高漲的交易費會令你瞠目結舌。如今,就以太坊交易而言,數十乃至數百美元的交易費實屬稀鬆平常之事。在如此高昂的手續費下,只有巨鯨才能有利可圖,更別提什麼 “讓沒有銀行賬戶的人也能享受銀行服務”、“讓免許可型金融基礎設施惠及所有人” 等巨集圖偉業了。以太坊正在成為富人的聚集地。

高昂的手續費表象之下的核心是 區塊鏈可擴充套件性問題。這個問題太過臭名昭著,以至於有了自己的維基百科頁面。這是當前區塊鏈最主要的侷限性,此外還有終局性時滯太大、搶跑交易、跨鏈互操作性等侷限性。

我們想要建立一個能讓所有價值自由流動的代幣化世界,區塊鏈的侷限性會阻礙我們實現這一願景。這就是為什麼 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 的供應量(灰色部分)和消耗量(黑色部分)如下圖所示:

如圖所示,在拜占庭(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 上限?

免責聲明:

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

推荐阅读

;