Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

作者:Faust,極客web3

提到L2BEAT這個名字,大多數人可能有所耳聞,但對其所作所為並不太了解。在2023年前相當漫長的時間裡,人們對L2BEAT的印象往往只是“以太坊Layer2的數據可視化平台”,除了L2賽道的TVL數據展示與技術方案分類以外,大家對L2beat的功能似乎不甚了解。但隨著今年6月上線的Layer2風險評級指標逐漸興起,L2BEAT這個堪比“以太坊L2評級機構”的小眾組織得以被越來越多的人所知曉。

當提到“評級機構”四個字時,《世界是平的》一書中曾有極為生動的比喻:“我們生活在兩個超級大國的世界裡,一個是美國,一個是評級機構。美國可以用炸彈摧毀一個國家,評級機構可以用債券降級毀滅一個國家;有時候,兩者的力量說不上誰更大。”

從97年亞洲金融風暴到07年次貸危機,華爾街評級機構都扮演了舉足輕重的角色,甚至成為了這些惡性事件的重要推手。而在Web3這個表面講究“去信任化”實際依靠“社會共識”的圈子裡,“風險評級”是始終繞不開的重要一環。無論是合約代碼審計還是鏈上異動分析,它們的價值絲毫不遜於零知識證明與共識算法,甚至有過之無不及。

對模塊化區塊鏈這個新領域而言,一套客觀、全面,且能夠把不同Layer2區分開的風險評估指標尤為重要,尤其是在L2體系已承載近百億美元資產的當下,如何更好的發現L2潛在風險、更好的警示大眾,已經是一個不可逃避的現實問題。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

在2022年的一篇論壇博客中,Vitalik提到,目前幾乎所有的Rollup都不算成熟,大多采用了被稱為Training Wheels(輔助輪)的輔助手段,來保障Rollup的正常運轉。 “輔助輪”反映了Rollup項目在多大程度上依賴於“人工干預”和“社會共識”,越少依賴輔助輪的L2越“去信任化”,風險越低;反之則風險越高。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

比如,包括Optimism在內的樂觀Rollup,大多沒有上線欺詐證明系統,這極大抬高了風險級別;還有不少L2如Immutable X把DA(數據可用性)放在ETH鏈下實現,亦或是像Starknet一樣缺乏可隨時調用的強制提款/強制交易功能。對於Layer2而言,上述條件是保證其“等同於ETH安全性”的必要條件。當然除了這些之外,目前幾乎所有的L2項目方都給自己留了“後門”,靠一組多籤來管理L2在以太坊上的合約代碼,並可隨時更改狀態哈希,這也是巨大的隱患所在。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

為了更好的區分和定義Rollup,Vitalik等人根據一個Rollup項目對輔助輪/人工干預的依賴程度,把Rollup劃分為3個等級,即Stage 0、Stage 1、Stage 2。後來L2beat通過社區徵集意見的方式對這套分類方案進行了修正,大致可以歸納如下:

Stage0——完全依賴輔助輪,一個Rollup應滿足的最低標準:

·該項目自稱是Rollup。

·Rollup處理的交易應該“on-chain”(涉及L2狀態轉換過程的數據都要披露至L1,同時還要披露L2狀態的哈希Stateroot;)

·應該設置一批權限開放且代碼開源的Rollup全節點,可以幫助用戶獲知L2上全體賬戶的狀態(包含餘額、交易次數等)。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

滿足上述全部條件的L2項目才會被L2beat標記為Stage 0,也即滿足一個Rollup的最低標準,否則將不被視作一個Rollup(比如Arbitrum Nova)。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

而Stage1——部分依賴於輔助輪的Rollup,有以下特徵:

·必須上線欺詐證明/有效性證明系統,保證L2狀態轉換的有效性;

·如果是樂觀Rollup,至少要有5個非官方控制的L2節點可發布欺詐證明(挑戰者白名單里至少包含5個Rollup官方之外的實體)。

For Example,截至2022年11月,Arbitrum One的挑戰者白名單成員包括9個實體:Consensys、以太坊基金會、L2BEAT、Mycelium、Offchain Labs、P2P、Quicknode、DLRC、Unit410。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

·任何時候,用戶都可以繞開排序器Sequencer(Operator),把在L2的資產強制提款到L1,以保證不會被凍結資產;如果排序器發動審查攻擊,拒絕處理某些交易,用戶可以強行把交易提交進L1上的Rollup交易序列。除了發布錯誤的Stateroot外,排序器找不到其他作惡方式。

·Rollup可以設置安全委員會,由一組多簽管理,有在緊急情況下強制升級Rollup合約的權力,或者乾預合約上記錄的L2狀態哈希。但委員會多簽私鑰必須足夠分散,且閾值夠高。 Vitalik本人認為,這個數值至少應是6/8,即多簽被超過8個人管理,生效閾值是75%。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

·並非由委員會多簽授權的Rollup合約升級,至少受到7天的時間鎖延時限制。這樣一來,如果Rollup遭遇治理攻擊等惡意的更新提案(參考Tornado Cash治理攻擊事件),可以給用戶至少7天的時間來安全提款。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

目前的主流Rollup僅有Arbitrum One、dYdX、zkSync Lite達到了Stage1的要求,其他主流Rollup均停留在Stage0階段。

Stage2——完全拋棄輔助輪,成為一個徹底的Rollup:

·樂觀Rollup網絡裡可發布欺詐證明的L2節點應當Permissonless,取消白名單設定(對此,Arbitrum One近期推出了名為BOLD的協議);

·所有的Rollup合約升級行為至少受到30天以上的時間鎖延時限制,或者乾脆無法升級合約。這意味著Rollup發生惡意的升級時,L2用戶有至少30天的時間安全提款。

為了更好的理解L2BEAT羅列出的風險評級指標,我們可以挑選三個不同安全級別的Rollup實例進行解析。

Stage0-Base,Stage1-Arbitrum One,Stage2-Fuel:

Base是樂觀Rollup賽道的頭部項目之一,它靠L1上的合約來記錄L2狀態哈希Stateroot、處理進出L2的資金,並且借助以太坊實現數據可用性(DA),與L1有橋接關係。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

Base排序器需要把L2的交易數據披露至L1,具體而言,排序器大概每隔幾分鐘,就向以太坊上的指定地址發起一筆Transaction,在Transcation的可自定義的附加數據Calldata中,記錄一批壓縮後的交易數據。由於L2全節點會自動同步L1區塊,它們可以監測到排序器發出的這筆交易,在其Calldata裡解析出L2的交易數據,進而獲知L2排序器的最新狀態,併計算出正確的狀態哈希Stateroot,與L1上排序器提交的Stateroot進行比較。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

目前Base沒有上線欺詐證明系統,無法保障L1合約中記錄的L2 Stateroot是正確的,但有能力運行L2全節點的用戶可以及時發現錯誤所在;此外,Base沒有強制提款等抗審查攻擊的方案,如果排序器長時間宕機或者故意拒絕用戶請求,L2用戶將無法安全提款至L1,所以它存在巨大的安全隱患。

顯然,這樣的Rollup在機制設計層面是不安全的,但用戶和L2社區成員可在必要時刻通過社交媒體發出警告,讓以太坊基金會乃至SEC等監管機構意識到危險發生,這就是所謂的“社會共識”,即通過高度的數據透明和社區成員自發監督,以“輿論發酵”和“人工干預”及後續“法律追責”的方式來製約L2項目方的作惡行為,屬於最低級別的安全保障,因為它無法在事前就制止作惡,而只能在作惡行為發生後追責。

但事實上,“社會共識”也是保障區塊鏈安全的基礎條件(如果有人嘗試惡意分叉以太坊,以太坊社區也會通過社會共識確定哪個分叉鍊是應該追隨的),並且惡意行為者顧及到自己所作所為被曝光的後果,大多數時候不敢挺而走險(當然FTX和ZT、門頭溝等交易所除外)。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

當我們把考察對象換為Arbitrum One時,可以立刻看到它與Base的不同。比如它上線了可用的欺詐證明系統,設立挑戰者白名單,其中包含以太坊基金會和L2beat在內的9個不同實體運行的節點,只要排序器往L1發布了錯誤的狀態哈希Stateroot,挑戰者節點就會發布欺詐證明,這樣可以確保Rollup合約裡記錄的L2 Stateroot是正確的;

同時,Arbitrum One有應對排序器審查攻擊的強制交易機制,允許用戶調用L1上的Sequencer Inbox合約的force Inclusion函數,將交易指令直接提交至L1;如果在24小時內,排序器沒有處理這筆需要“強制包含”的交易/提款,該交易/提款指令會被直接包含進Rollup交易序列中,這就為用戶創造了一個可以從L2強制提款的“安全出口”。

這裡需要強調,在Stage1級別的Rollup項目中,用戶只要可以獲知L2的全體賬戶狀態,構造對應自己賬戶餘額的Merkle Proof,就可以通過Rollup合約裡的指定函數來強制提款(這個功能一般稱為逃生艙Escape Hetch)。至於如何獲知L2上賬戶的狀態,要看Rollup網絡內是否有對外開放數據的全節點(幾乎所有的L2都有這類節點)。

此外,Arbitrum One的合約升級行為受到多種因素限制,比如:正常的合約升級提案,要先通過鏈上治理的投票決策,投票閾值通過後,又會受到時間鎖限制(有12天的延時),之後才會被自動執行。如果該合約升級提案包含惡意的代碼邏輯,可以被安全委員會否決(通過多籤來執行)。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

但Arbitrum One安全委員會本身可以越過時間鎖的限制,比如只要9/12多簽通過,安委會就可以立刻upgrade合約代碼,或者是強行更改Rollup合約裡記錄的L2 Stateroot。

至於安全委員會憑什麼有這麼大的權力,Vitalik曾如此解釋:

“有些Rollup可能採用了多個獨立的狀態轉換函數,比如有兩個持不同觀點的的欺詐證明發布者,或者有多個Prover節點提交了不同的有效性證明,或是排序器嘗試在L1上分叉L2賬本,亦或是有效性證明在7天內都沒有被提交上鍊,都可能導致L2系統徹底崩潰。安全委員會可以在這種危險局面下做出裁決,用人工干預的方式引導系統採用正確的結果。”

當然,Vitalik只是列舉了幾種簡單的“危險情況”,考慮到Rollup合約可能遭遇黑客攻擊,排序器也隨時可能被黑(或者出內鬼),緊急的應對措施顯然是必要的。

按照Vitalik的看法,如果是完善的Rollup,合約可以升級,但必須有大於30天的時間鎖延時,給用戶和社區成員足夠長的反應時間。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

顯然,由於Arbitrum的安全委員會可以在多簽通過後立刻升級合約,如果新版本代碼裡包含惡意的業務邏輯,理論上可以捲走用戶在L2的資產。所以Arbitrum One並不符合Vitalik對完善的Rollup的定義,只是風險級別比較低。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

當我們要考察“完善的Rollup”時,L2BEAT上只有兩個項目滿足條件:Fuel V1和DeGate。其中,Fuel V1是最早上線欺詐證明系統的樂觀Rollup,它的欺詐證明提交是Permissionless的,所有人都可以運行節點並在必要時發布欺詐證明。同時,Fuel V1的合約被寫死了,根本無法升級,委員會也無法干預Rollup合約上記錄的L2 Stateroot,所以不存在所謂的安委會風險。

Fuel V1達到了最低的風險級別,但其每次更新迭代都要重新部署合約,並且需要用戶手動把資產遷移至新版本,實質就是重做了一個新項目,這樣的後果是流動性的割裂,極大的降低了靈活性。由於編程模型採用UTXO而不兼容EVM、創始人後來轉投Celestia團隊等多重原因,Fuel的發展逐漸停滯,生態建設也不盡人意。

總而言之,追求絕對的安全帶來的代價就是更新迭代的不靈便,而在欺詐證明與有效性證明技術尚未完善的當下,保持一定的合約可升級性,或許是Rollup必須要具備的feature。

在未來相當長一段時間裡,我們可以預見到以下情形:大多數Rollup都不會放棄安委會多簽,L2合約在很長一段時間內都將具備“可立即升級性”(某ZK Rollup項目一直都沒有放棄安委會多簽,後來直接轉頭做新項目去了)。鑑於欺詐證明系統的開發難度,多數非頭部的樂觀Rollup可能無法在短期內上線欺詐證明(大概率2023年底還做不出來),而Arbitrum One將長期處於Rollup賽道的領先地位,雖然它尚不具備最高級別的安全,但卻擁有相對完善的欺詐證明系統、安委會多簽被合理分散(9/12多簽,被分配給了包括ARB項目方成員在內的12名社區成員),同時也具備最龐大的DApp生態——擁有超過440個應用。而安全性很差、更多靠營銷的Base能否延續過去幾個月的增長勢頭,還有待時間的驗證。如果Base在TVL體量上能超過Arbitrum One,或許會導致“去信任化”信仰本身的潰敗。

當然,最重要的是,我們將始終需要L2BEAT這類風險評級機構,在這個動盪不安、充滿混亂的時代,一套一目了然、綜合全面的風險評級指標,始終是保證以太坊體系乃至整個Web3蓬勃發展的關鍵所在。

Web3的標普穆迪L2BEAT是怎麼評估Layer2項目的?

Total
0
Shares
Related Posts