文/ Web3er Liu,CatcherVC
原文標題:剖析新版Metis:Gas最低Layer2的去中心化進行時|CatcherVC Research
本文重點:
· Optimism和Arbitrum等OP Rollup的根本問題在於Sequencer節點的中心化,這需要可靠的解決方案。
· Metis嘗試率先實現Sequencer的去中心化,項目方開放了對等節點(Peer Node)網絡,將運行Sequencer節點的權力讓渡給社區成員或其他機構。
· Metis變更了存儲層結構,改變了在以太坊上發布數據的形態。通過集成Memolabs,可大幅壓縮存儲費用,成為主流Layer2中Gas費最低的一個。
· 通過引入新機制,Metis集成Memolabs後的新版本仍具備可靠的安全性與數據可用性。團隊判斷了潛在情況,並製定了有效措施。
· Metis支持節點運行者以DAC(機構級DAO)的形式註冊,以獲得持續性的代幣收益;同時,提供簡易的一站式DAO搭載服務,降低DAO運營難度,並開放社區生態系統治理(CEG),將維護Layer2網絡的權限進一步讓渡給社區成員。
傳統OP Rollup的問題
隨著近一年來Web3、元宇宙、NFT等概念走進大眾視野,Crypto行業正式進入了高速增長期。在各路資本和海量用戶的追捧下,以太坊憑藉先發優勢成為了整個Web3敘事的核心,其係統架構在經歷漫長演化後,已充分實現去中心化和安全性,成為名副其實的“恆星公鏈”。與此同時,效率的低下嚴重限制了這條公鏈的發展。相比於每秒處理幾千筆交易的VISA,TPS不到20的以太坊宛若舊時代的古董,與Vitalik口中“世界級去中心化應用平台”的宏大願景相去甚遠。
為了滿足Web3市場的龐大需求,側鏈、新公鏈、Rollup等不同方案先後走上歷史舞台,BSC、Polygon、Solana、Arbitrum、Optimism等明星項目在瓜分流量的同時,其固存的缺陷卻愈發明晰。由於TPS受到出塊速度的約束,各大Layer2或新公鏈幾乎都壓縮了節點數量,或將“共識”與出塊過程解綁,這直接降低了出塊時間,卻嚴重削弱了去中心化和系統安全性。
以Optimism為例,它採用一個稱作Sequencer(排序器)的單一礦工節點在Layer2秒級出塊,新區塊不需要立刻交給其他節點做驗證,可立即在本地敲定,節省了大量時間;同時,由於只有一個出塊節點,“記賬權”的分配是確定的,可直接取締POW過程(隨機分配記賬權的步驟)。
通過縮減出塊流程,Layer2本地區塊從產生到敲定可降至1秒甚至更低,用戶發起交易請求後,最快只要兩三秒就可收到結果,與微信支付旗鼓相當。
但此時,Layer2的新區塊沒有被驗證節點審計,存在不合規的可能性。對此,Sequencer要定期在Layer1發布本地的區塊副本,包括交易數據和狀態根(關聯著Layer2上的賬戶信息)。 Layer2的Verifier驗證節點會自動讀取Sequencer發布的內容,並進行審計,判斷Sequencer是否有造假嫌疑。
從本質來看,Optimism將以太坊作為一個披露數據、處理糾紛的“法院”,而關鍵點在於,Sequencer要多久在Layer1上發布一次數據。如果Sequencer很久才提交一次本地數據,無疑會拖延Verifier的審計進度,節點間達成共識就要過很久,這會嚴重削弱Layer2的可靠性。
根據Optimism官方瀏覽器,Sequencer在以太坊上發布狀態信息的時間頻率,可以慢到37分鐘一次,這意味著Sequencer出塊後,Verifier要等37分鐘才能做審計。相比之下,以太坊的新區塊只需13秒便可被全網節點審計完。顯然,Optimism的Sequencer和Verifier節點間信息不對稱很嚴重,共識機制的可靠性遠低於以太坊。
【讀者可參考CatcherVC此前文章:《深度解讀Optimism:基本架構、Gas機制與挑戰》】
對此,同處OP Rollup派系的Arbitrum將提交狀態信息的間隔縮短為2~5分鐘一次,這使得Verifier節點可以盡快進行狀態審計,大幅降低了信息差。
但Arbitrum有和Optimism相同的缺陷:負責出塊的Sequencer節點由官方運行,沒有將“記賬權”讓渡給外界,其理由在於,Sequencer的實權太大,關係到所有用戶的資產安全,在機制設計尚未健全的情況下,無法保障“程序正義”。為保險起見,Arbitrum和Optimism的出塊節點均由官方作信用背書,以彌補目前系統機制的不完善。
這樣做的後果很明顯:Arbitrum和Optimism實質成為了中心化運營商。雖然雙方都允許用戶自由運行Verifier驗證節點,並可對Sequencer提出質疑,但官方仍對Sequencer的任免有絕對話語權。這樣一來,即便Verifier指出當前的Sequencer有作惡行為,迫使其下台,新的Sequencer卻仍將由官方指定。
本質來看,Layer2的出塊權力集中在Arbitrum和Optimism官方手上,其立足根基在於“信用”而非“程序正義”。同時,由官方來運行Sequencer節點會帶來另一個大問題:出塊節點數量少且物理位置集中,容易遭遇DDOS攻擊,或產生其他類型的單點故障。
以Arbitrum為例,其Sequencer節點曾兩次宕機,引起了廣泛關注。 2021年9月14日,Arbitrum和Solana均因遭遇DDOS攻擊而宕機,出塊節點在極短時間內收到的交易請求過多,最終導致崩潰;2022年1月10日,Arbitrum的Sequencer節點再次宕機,官方稱該節點出現硬件故障,而備用的節點設備沒有及時完成交接,最終“單點故障”引發了整個Arbitrum網絡的停擺。
可以想見,Arbitrum和Optimism這類中心化系統的缺陷就在於資源過度集中,僅由少量或單個節點負責出塊,會使其承擔較大的訪問流量,易誘發單點故障;同時,官方壟斷出塊權力也使得“欺詐證明”和“挑戰機制”形同雞肋,無法從根源上遏制節點作惡問題。
對於自身固存的缺陷,Arbitrum和Optimism官方曾表示將逐步改善,並在未來推行去中心化。但目前,兩者並未給出可靠的解決方案,距離去中心化的具體實現尚且遙遠。
出於對去中心化原教旨的遵從,同為OP Rollup方案的Metis近期正式開始對系統架構進行改革,嘗試率先實現Layer2在架構和經濟上的去中心化。
·通過開放對等節點(Peer Node)網絡,Metis將運行Sequencer出塊節點的權力讓渡給社區成員或其他機構,並促進Sequencer和其他對等節點快速同步信息,防止其作惡;
·Metis支持節點運行者以DAC(機構級DAO)的形式註冊,以獲得持續性的代幣收益。
·Metis正式開放了社區生態系統治理(CEG),將維護Layer2網絡生態的權限進一步讓渡給社區成員。
通過以上方式,Metis計劃率先實現Layer2的去中心化。
除此此外,Metis變更了在以太坊上備份數據的形式。在對等節點網絡可以立即驗證Sequencer本地區塊,在Layer2網絡內防止其作惡的前提下,Metis將交易指令備份至鏈下去中心化平台Memolabs,改為在Layer1上提供交易數據在Memolabs的存儲位置,同時,每筆交易對應的狀態根StateRoot仍發佈在Layer1。
針對可能出現的“挑戰”和“欺詐證明”場景,Metis添加了其他功能,使得以上場景發生時,挑戰者可以在Layer1上還原每筆交易指令的原始數據,無阻礙的完成“欺詐證明”,使現有版本和舊版本的機制等效。
通過引入對等節點、集成Memolabs存儲層,Metis將原本由以太坊負責的存儲任務,轉變為由對等節點、以太坊、Memolabs三方同時負責,並引入新的機制確保可靠性。由於有另外兩者分擔存儲任務,Metis可酌情減少發佈在以太坊的數據容量,進而降低Gas消耗,大幅降低Layer2手續費。
在下文中,作者將對Metis落實對等節點網絡、集成Memolabs存儲等重要舉措作出解讀。
對等節點:實現出塊者——Sequencer的輪換
在傳統的OP Rollup方案,如Optimism和Arbitrum中,出塊節點是唯一確定的:只有一個Sequencer在執行交易和打包區塊。這樣做直接消除了出塊節點的隨機性,每輪出塊週期開始時,系統再也不用浪費時間去選拔出塊者——相比之下,以太坊每個新區塊產生前,都要通過POW或POS過程(合併後)隨機選擇出塊節點,嚴重拖延了時間。
但是,出塊節點的隨機性可大幅降低單點作惡的概率。由於記賬節點會頻繁的輪換,惡意節點掌控合法賬本的可能性被降到極低。即使惡意節點獲得了某個新區塊的記賬權,若其發布的區塊不合規,依然會被其他誠實節點否決。最後,誠實節點間會再度選舉新的出塊者,重新發布一個合規的區塊,把惡意節點直接架空。
在這種情況下,理論上只要網絡內2/3的節點為誠實者,便可有效約束惡意節點,這就是著名的PBFT機制(實用拜占庭容錯);目前,比特幣和以太坊的節點容錯率甚至可達到1/2。但是,這類容錯算法的有效性建立在節點足夠多的基礎上。節點數量龐大,作惡節點難以拉攏到大量節點、不易形成串謀時,PBFT才會生效。在參與出塊的節點數量較少時,PBFT將不再適用,此時單點作惡的可能性極高。
現有的OP Rollup,包括Optimism和Arbitrum,幾乎都默認出塊節點Sequencer不會作惡。若Sequencer出現作惡行為,則允許Verifie節點對其進行“彈劾”,這一過程被稱作“挑戰”。但問題在於,Verifier節點與Sequencer之間並不是立刻進行數據同步的,這中間會有一段延時。
本文之前曾提到,Optimism節點的數據同步延時可以超過30分鐘,Sequencer產生新區塊後過半小時才輪到驗證節點審計,這會產生潛在的安全隱患。而Arbitrum雖然將延時降至幾分鐘,但其未向官方以外的機構開放運行Sequencer的權限,這不利於經濟上的去中心化,且立足點在於項目方的“信用”,嚴重違背區塊鏈的“程序正義”原則。
此外,由於Optimism和Arbitrum均未發行代幣,無法高強度的激勵驗證節點運行者,這不利於節點數量的擴充,使得Layer2更像聯盟鏈而非公鏈。
為了避免上述問題,Metis在Optimism的原有架構上進行了大量改進,其中最重要的舉措便是開放對等節點(Peer Node)。
·傳統公鏈如比特幣和以太坊等,都是由對等節點組成的P2P網絡,這些節點間會頻繁同步信息,確保狀態一致;同時,每個對等節點可自願成為礦工,參與出塊。新區塊產生後,會被傳播給其他對等節點做審計。
·Metis構建了名為Sequencer Pool的對等節點網絡,允許社區成員運行對等節點,這些節點通過輪換的方式充當Sequencer,實現“風水輪流轉”,解決OP Rollup中Sequencer節點的中心化問題;
·當前的Sequencer出塊後,會將新區塊同步給其他對等節點做審計,以防止單點作惡。每過一段時間,Sequencer就會變更一次,這樣便可實現記賬權的分散化。
·普通公鏈的每個出塊週期都有隨機選擇出塊者的過程,會浪費較多時間。目前Sequencer Pool內對等節點沒有大型公鏈那麼多,出塊者的輪換週期也相對較長。在每個週期內,Sequencer仍是單一的。未來Metis將逐步縮短輪換週期,並引入新的時間戳生成機制。
·Metis支持社區成員運行對等節點,並且對其提供代幣激勵。對等節點運行者往往以DAC(機構級DAO)的名義進行註冊,硬件設備最低配備8核CPU、32GB內存,且需要質押一定量的Metis代幣。
從本質來看,原本為Metis網絡內下轄子網的Sequencer Pool成為了一個“委員會”,這個委員會由對等節點組成,職能是充當或監督Sequencer,並且在形式上可以看到POS公鏈的影子。
按照Metis正在實施的方案,Sequencer Pool已從十幾個對等節點的規模開始投入運行,在這樣的網絡規模下,對等節點間通訊的時間複雜度很小,可以立即對新區塊達成共識。同時,不同的對等節點均可充當網絡負載,滿足外界的訪問請求,用戶無需單方面接受單個節點提供的數據。
現在的Metis實際上獲得了來自對等節點網絡和Verifier節點的兩層安全保障。其中,對等節點可以實時驗證Sequencer在Layer2本地的數據,而Verifier主要負責驗證Sequencer提交到Layer1上的數據。
在未來,Metis計劃將Sequencer Pool內的對等節點數量大規模擴充,使其具備更高的安全性,並將Verifier驗證者節點納入Sequencer Pool名單內,使所有的對等節點既可擔任Sequencer,又可擔任Verifier。同時,Metis計劃引入新的算法及時間戳生成機制,在仍保有高效率的同時,實現“每隔幾個區塊就換一次Sequencer”,以確保去中心化。
新的存儲結構——“若無必要,勿增實體”
在大多數公鍊或Layer2中,記錄用戶信息的數據庫都採用了樹狀的結構,稱為狀態樹,樹根的哈希值被稱作狀態根StateRoot。一筆交易指令被執行後,某些賬戶的狀態必然產生變化,此時狀態樹根的哈希值也會隨之改變。可以說,每筆交易的執行都會產生一個新的狀態根StateRoot,從時間角度看,兩者是一一對應的關係。
若是按照時間順序,將每筆【交易的指令內容】及對應的【狀態根】一一羅列出來,就可以得到一個精確的賬本。在Optimism等傳統OP Rollup方案裡,Sequencer在以太坊上存儲的就是這些內容。
Verifier驗證者會讀取這些內容,檢查其準確性。一般而言,Verifier節點會按照時間順序,把交易指令依次執行一遍,通過自己的計算得到一批狀態根StateRoot,之後Verifier只需要將自己算出的Stateroot和Sequencer提交的StateRoot做對比即可,這就好比老師在事先不知道標準答案的情況下,臨時靠心算來批改學生的數學作業。
若Verifier發現Sequencer提交的某筆交易指令或對應的狀態根有問題,便會發起“挑戰”,提供“欺詐證明”。
在Optimism及舊版本的Metis中,Sequencer會把交易指令及對應的狀態根都發佈到以太坊上,實質將以太坊作為一個存儲層,同時也藉助以太坊網絡來處理“挑戰”過程。這樣做雖然可以保證數據可用性,但消耗的Gas非常高。
以上圖Optimism在以太坊發布的一批交易為例,該批次共包含204筆交易指令,消耗的Gas費超過211美元,相當於單筆交易指令的存儲費超過1美元;再考慮到存儲這批交易對應狀態根所需的Gas,Optimism上單筆交易的存儲費用可以達到1.5美元,對於大多數用戶而言,這種量級的費用還是太高。
針對這個問題,Metis在近期做出了重要調整。 Metis取締了在以太坊上直接存儲交易指令的步驟,將交易批次轉存至Memolabs,該平台類似於Filecoin,但存儲成本更低,數據檢索速度更快。通過集成Memolabs存儲層,Sequencer先將一大批交易指令存儲在Memolabs,然後在以太坊上發布這個交易批次對應的存儲索引,Verifier節點可通過該索引值從Memolabs讀取原始的交易數據。
同時,由於狀態根StateRoot比交易數據更重要,它們仍被存儲至以太坊。
一言以貫之,這符合奧卡姆剃刀原理:“若無必要,勿增實體”。 Metis的哲學就是:沒有必要存入以太坊的內容,可通過其他方式進行等價代換。這樣可以節約存儲成本,減小用戶承擔的成本壓力。
通過這種存儲結構,Metis可大幅壓縮存儲費用,將Layer2單筆交易的手續費降低至幾美分。目前,Metis已經成為主流Layer2中Gas費最低的一個。
但是,Metis的以上做法衍生出了其他問題:變更存儲結構是否會改變安全性,或改變數據可用性?對此,我們將對多種可能出現的結果進行解析。
Metis及OP rollup的安全性及數據可用性問題有兩方面,第一個是:
·Sequencer在Layer2執行交易時,會立即將其在本地敲定,暫時具備“最終性”。具體場景為:用戶在Metis網絡發起交易請求後,幾秒鐘就會收到結果。這裡的問題在於,由Sequencer單方面給予的暫時“最終性”是否可靠?
由於Metis的Sequencer出塊後,會立刻將信息同步給Sequencer Pool的對等節點,節點們可立即對區塊內容進行審計,若發現Sequencer提交了違規區塊,便可將其移出Sequencer Pool。所以,此處的安全性與普通公鏈相當。同時,外界可在多個對等節點間選擇信息源,無需單方面信任某個節點,數據可用性也不存在問題。
第二個問題是:
·Metis將交易數據轉存至Memolabs後,驗證過程和挑戰機制是否會受到影響?新加入Metis網絡的節點在同步歷史數據時,又會否遇到不便?
這裡涉及到多種可能情況,可以分類討論。由於Metis仍將狀態根發布至以太坊,所以StateRoot的可用性不會受到影響。而交易數據的可用性針對Verifier節點或新加入Metis網絡的節點兩類群體。
對於後者,新節點只需要通過其他Verifier或對等節點同步歷史數據即可,也可讀取Memolabs上的交易數據及以太坊上的狀態根記錄。目前Metis共有80多個私人運行的Verifier節點,已經具備較強的數據可用性。考慮到Verifier的數量仍在擴充之中,對於新節點而言,同步歷史數據時不會面臨多大問題。
而對於已有的Verifier節點,面臨的問題在於:能否順利獲取交易數據,並檢查對應的狀態根。若發現Sequencer提交的內容有誤,又可否在以太坊上順利進行“挑戰”。
對於這個問題,可以對下列場景分別進行分析:
1.若Sequencer在以太坊上提供了Memolabs索引,使Verifier順利讀取到交易數據,經過檢查,這些交易指令無誤(數字簽名等都正確),則剩下的檢查點在於Layer1上存儲的狀態根。
·若經審計,每筆交易都可以和對應的狀態根匹配,則此時Verifier順利完成數據同步,也無需發起“挑戰”。此時不存在問題。
·若Verifier發現,某筆交易指令和狀態根不能匹配,此時狀態根必然錯誤。 Verifier可要求Sequencer將錯誤狀態根對應的交易數據披露到Layer1上。
如果Sequencer同意,則“挑戰”過程順利進行,Sequencer會受到懲罰;
如果Sequencer不同意,Verifier可把自己在Memolabs讀到的交易數據寫入以太坊,完成“挑戰”,Sequencer同樣受到懲罰;
顯然,在以上場景中,數據可用性和“挑戰”機制不受影響,
2.若Sequencer在Memolabs存儲了偽造的交易指令(數字簽名無效),Verifier要發起“挑戰”;此外,Verifier必須要獲取正確的Layer2原生交易指令,才能檢驗狀態根的正確性。
·此時,Verifier可要求Sequencer在以太坊上發布相關的交易批次,這會讓Sequencer花費大量的Gas費,相當於變相懲罰;
·若Sequencer拒絕,則Verifier可以把自己從Memolabs讀到的錯誤數據披露到Layer1,展開“挑戰”,Sequencer會受到更嚴厲的懲罰。
正常情況下,Sequencer被Verifier挑戰成功後,其遭受的損失會遠高於在Layer1上發布交易批次時消耗的Gas費。所以,若Verifier要求Sequencer在Layer1發布交易數據時,其必定會把正確的交易數據披露出去。
此時,Sequencer必鬚髮布Verifier需要的單個交易批次,包含成百上千筆交易數據,在Layer1發佈時消耗的Gas會非常高,甚至可達到幾百美元,相當於變相懲罰。
由以上討論可以得知,數據可用性和“挑戰”過程不受影響。
3.若Sequencer在Layer1發布了虛假的Memolabs存儲索引,Verifier無法順利讀取到交易批次包含的數據,這時它可以向前文所描述的那樣,要求Sequencer在Layer1披露交易批次。若其拒絕,則Verifier可以從對等節點處獲取相應數據,繼續後續的檢驗工作,或發起挑戰。
對於屢次發布偽造交易數據、發布錯誤的Memolabs存儲索引,或拒絕配合Verifier要求的Sequencer,Metis的社區成員可通過DAO治理投票的形式,將作惡的Sequencer運行者標記出來,罷免它的權限,這類似於政治上的“彈劾”。
通過以上精心設計的機制,Metis可以保障Verifier節點的權益。但為了防止Verifier濫用權力,惡意要求Sequencer在Layer1寫入交易數據,通過Gas消耗來攻擊誠實的Sequencer運行者,Metis作出以下要求:
·Verifier若要求Sequencer在Layer1寫入交易數據,需提前質押一定量的資金獲得白名單資格,並且每次向Sequencer發起類似的命令,都要消耗一筆手續費;這筆手續費的數值經過仔細衡量,可以防止Verifier頻繁向Sequencer發起無理要求。
·任何節點都可以發起“挑戰”和“欺詐證明”,理論上這些節點間可以互相配合,使數據可用性與安全性得到保障。
歸納總結
依照前文提出的核心論點,結合近期Metis官方動態,在此歸納得出:
· Optimism和Arbitrum等OP Rollup的根本問題在於Sequencer節點中心化,這需要可靠的解決方案;Metis嘗試率先實現Sequencer的去中心化。
·Metis開放了對等節點(Peer Node)網絡,將運行Sequencer出塊節點的權力讓渡給社區成員或其他機構,實現輪換制,並促進Sequencer和其他對等節點快速同步信息,防止其作惡;
·Metis變更了存儲層結構,改變了在以太坊上備份數據的形式。通過集成Memolabs,Metis大幅壓縮存儲費用,已經成為主流Layer2中Gas費最低的一個。
·通過縝密的機制設計,Metis集成Memolabs後的新版本仍具備較強的安全性與數據可用性。 Metis團隊已經對可能出現的情況進行了判斷,並製定了相應措施;
•為了將Sequencer的權力進一步削減,Metis計劃在未來添加提議者Proposers的角色,在Sequencer發布交易數據後,Proposers負責向以太坊提交每筆交易對應的狀態根,這樣可形成更強的分權制衡。
·Metis支持節點運行者以DAC(機構級DAO)的形式註冊,並對其提供持續性的代幣收益。在這方面,已發幣Metis比未發幣的Optimism及Arbitrum更具優勢;
·Metis提供簡易的一站式DAO搭載服務,降低DAO及DAC組織的運營難度,並開放社區生態系統治理(CEG),將維護Layer2網絡生態的權限進一步讓渡給社區成員。目前,Metis生態已有500個DAC組織,成員近5000個。
·Metis集成Memolabs去中心化存儲層後,生態內DAO組織可以將不必公開的數據轉存至Memolabs,而對應的存儲索引只可被白名單用戶獲得,這樣可確保DAO維護自身隱私。
·Metis未來將支持多個子網的分片式結構,允許不同的DAO組織運行狀態彼此獨立的MVM虛擬機,以實現類似ETH2.0的多鏈分片機制。
·近期,Metis開啟了NFT跨鏈橋功能,結合超低的Gas費,Metis致力於建設NFT用戶的最佳平台;
·未來,在系統容錯性足夠強大的條件下,Metis將酌情縮短挑戰期,成為跨鏈最方便的Layer2。
參考文獻
The Tech Journey: Lower Gas Costs & Storage Layer on Metis
深度解讀Optimism:基本架構、Gas機制與挑戰