Web3 版的標普穆迪 L2BEAT 是怎樣評估 Layer2 專案的?
作者:Faust,極客 Web3
提到 L2BEAT 這個名字,大多數人可能有所耳聞,但對其所作所為並不太瞭解。 在 2023 年前相當漫長的時間里,人們對 L2BEAT 的印象往往只是「乙太坊 Layer2 的數據可視化平臺」,除了 L2 賽道的 TVL 數據展示與技術方案分類以外,大家對 L2beat 的功能似乎不甚瞭解。 但隨著今年 6 月上線的 Layer2 風險評級指標逐漸興起,L2BEAT 這個堪比 「乙太坊 L2 評級機構」的小眾組織得以被越來越多的人所知曉。
當提到「評級機構」四個字時,《世界是平的》一書中曾有極為生動的比喻:「我們生活在兩個超級大國的世界里,一個是美國,一個是評級機構。 美國可以用炸彈摧毀一個國家,評級機構可以用債券降級毀滅一個國家; 有時候,兩者的力量說不上誰更大。 ”
從 97 年亞洲金融風暴到 07 年次貸危機,華爾街評級機構都扮演了舉足輕重的角色,甚至成為了這些惡性事件的重要推手。 而在 Web3 這個表面講究「去信任化」實際依靠「社會共識」的圈子裡,「風險評級」是始終繞不開的重要一環。 無論是合約代碼審計還是鏈上異動分析,它們的價值絲毫不遜於零知識證明與共識演算法,甚至有過之無不及。
對模組化區塊鏈這個新領域而言,一套客觀、全面,且能夠把不同 Layer2 區分開的風險評估指標尤為重要,尤其是在 L2 體系已承載近百億美元資產的當下,如何更好的發現 L2 潛在風險、更好的警示大眾,已經是一個不可逃避的現實問題。
在 2022 年的一篇論壇博客中,Vitalik 提到,目前幾乎所有的 Rollup 都不算成熟,大多採用了被稱為 Training Wheels(輔助輪)的輔助手段,來保障 Rollup 的正常運轉。 “輔助輪” 反映了 Rollup 專案在多大程度上依賴於 “人工干預” 和 “社會共識”,越少依賴輔助輪的 L2 越 “去信任化”,風險越低; 反之則風險越高。
比如,包括 Optimism 在內的樂觀 Rollup,大多沒有上線欺詐證明系統,這極大抬高了風險級別; 還有不少 L2 如 Immutable X 把 DA(數據可用性)放在 ETH 鏈下實現,亦或是像 Starknet 一樣缺乏可隨時調用的強制提款/強制交易功能。 對於 Layer2 而言,上述條件是保證其「等同於 ETH 安全性」的必要條件。 當然除了這些之外,目前幾乎所有的 L2 專案方都給自己留了「後門」,靠一組多簽來管理 L2 在乙太坊上的合約代碼,並可隨時更改狀態哈希,這也是巨大的隱患所在。
為了更好的區分和定義 Rollup,Vitalik 等人根據一個 Rollup 專案對輔助輪/人工干預的依賴程度,把 Rollup 劃分為 3 個等級,即 Stage 0、Stage 1、Stage 2。 後來 L2beat 通過社區徵集意見的方式對這套分類方案進行了修正,大致可以歸納如下:
Stage0——完全依賴輔助輪,一個 Rollup 應滿足的最低標準:
·該專案自稱是 Rollup。
· Rollup 處理的交易應該「on-chain」(涉及 L2 狀態轉換過程的數據都要披露至 L1,同時還要披露 L2 狀態的哈希 Stateroot;)
·應該設置一批許可權開放且代碼開源的 Rollup 全節點,可以幫助使用者獲知 L2 上全體賬戶的狀態(包含餘額、交易次數等)。
滿足上述全部條件的 L2 專案才會被 L2beat 標記為 Stage 0,也即滿足一個 Rollup 的最低標準,否則將不被視作一個 Rollup(比如 Arbitrum Nova)。
而 Stage1——部分依賴於輔助輪的 Rollup,有以下特徵:
·必須上線欺詐證明/有效性證明系統,保證 L2 狀態轉換的有效性;
·如果是樂觀 Rollup,至少要有 5 個非官方控制的 L2 節點可發佈欺詐證明(挑戰者白名單里至少包含 5 個 Rollup 官方之外的實體)。
For Example,截至 2022 年 11 月,Arbitrum One 的挑戰者白名單成員包括 9 個實體:Consensys、乙太坊基金會、L2BEAT、Mycelium、Offchain Labs、P2P、Quicknode、DLRC、Unit410。
·任何時候,使用者都可以繞開排序器 Sequencer(Operator),把在 L2 的資產強制提款到 L1,以保證不會被凍結資產; 如果排序器發動審查攻擊,拒絕處理某些交易,用戶可以強行把交易提交進 L1 上的 Rollup 交易序列。 除了發佈錯誤的 Stateroot 外,排序器找不到其他作惡方式。
· Rollup 可以設置安全委員會,由一組多簽管理,有在緊急情況下強制升級 Rollup 合約的權力,或者干預合約上記錄的 L2 狀態哈希。 但委員會多簽私閜必須足夠分散,且閾值夠高。 Vitalik 本人認為,這個數值至少應是 6/8,即多簽被超過 8 個人管理,生效閾值是 75%。
·並非由委員會多簽授權的 Rollup 合約升級,至少受到 7 天的時間鎖延時限制。 這樣一來,如果 Rollup 遭遇治理攻擊等惡意的更新提案(參考 Tornado Cash 治理攻擊事件),可以給使用者至少 7 天的時間來安全提款。
目前的主流 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 有橋接關係。
Base 排序器需要把 L2 的交易數據披露至 L1,具體而言,排序器大概每隔幾分鐘,就向乙太坊上的指定地址發起一筆 Transaction,在 Transcation 的可自定義的附加數據 Calldata 中,記錄一批壓縮后的交易數據。 由於 L2 全節點會自動同步 L1 區塊,它們可以監測到排序器發出的這筆交易,在其 Calldata 里解析出 L2 的交易數據,進而獲知 L2 排序器的最新狀態,並計算出正確的狀態哈希 Stateroot,與 L1 上排序器提交的 Stateroot 進行比較。
目前 Base 沒有上線欺詐證明系統,無法保障 L1 合約中記錄的 L2 Stateroot 是正確的,但有能力運行 L2 全節點的使用者可以及時發現錯誤所在; 此外,Base 沒有強制提款等抗審查攻擊的方案,如果排序器長時間宕機或者故意拒絕使用者請求,L2 使用者將無法安全提款至 L1,所以它存在巨大的安全隱患。
顯然,這樣的 Rollup 在機制設計層面是不安全的,但使用者和 L2 社區成員可在必要時刻通過社交媒體發出警告,讓乙太坊基金會乃至 SEC 等監管機構意識到危險發生,這就是所謂的「社會共識」,即通過高度的數據透明和社區成員自發監督,以「輿論發酵」和「人工干預」及後續「法律追責」的方式來制約 L2 專案方的作惡行為,屬於最低級別的安全保障, 因為它無法在事前就制止作惡,而只能在作惡行為發生后追責。
但事實上,「社會共識」也是保障區塊鏈安全的基礎條件(如果有人嘗試惡意分叉乙太坊,乙太坊社區也會通過社會共識確定哪個分叉鏈是應該追隨的),並且惡意行為者顧及到自己所作所為被曝光的後果,大多數時候不敢挺而走險(當然 FTX 和 ZT、門頭溝等交易所除外)。
当我们把考察对象换为 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 天的延時),之後才會被自動執行。 如果該合約升級提案包含惡意的代碼邏輯,可以被安全委員會否決(通過多簽來執行)。
但 Arbitrum One 安全委員會本身可以越過時間鎖的限制,比如只要 9/12 多簽通過,安委會就可以立刻 upgrade 合約代碼,或者是強行更改 Rollup 合約里記錄的 L2 Stateroot。
至於安全委員會憑什麼有這麼大的權力,Vitalik 曾如此解釋:
“有些 Rollup 可能採用了多個獨立的狀態轉換函數,比如有兩個持不同觀點的的欺詐證明發行者,或者有多個 Prover 節點提交了不同的有效性證明,或是排序器嘗試在 L1 上分叉 L2 賬本,亦或是有效性證明在 7 天內都沒有被提交上鏈,都可能導致 L2 系統徹底崩潰。 安全委員會可以在這種危險局面下做出裁決,用人工干預的方式引導系統採用正確的結果。 ”
當然,Vitalik 只是列舉了幾種簡單的「危險情況」,考慮到 Rollup 合約可能遭遇駭客攻擊,排序器也隨時可能被黑(或者出內鬼),緊急的應對措施顯然是必要的。
按照 Vitalik 的看法,如果是完善的 Rollup,合約可以升級,但必須有大於 30 天的時間鎖延時,給使用者和社區成員足夠長的反應時間。
顯然,由於 Arbitrum 的安全委員會可以在多簽通過後立刻升級合約,如果新版本代碼里包含惡意的業務邏輯,理論上可以捲走使用者在 L2 的資產。 所以 Arbitrum One 並不符合 Vitalik 對完善的 Rollup 的定義,只是風險級別比較低。
當我們要考察 「完善的 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 蓬勃發展的關鍵所在。
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。