本文主要介紹了比特幣和以太坊Layer2安全模型與風險指標,使用了「木桶理論」來進行系統分析。作者指出,Layer2安全模型中的最重要的部分包括合約/官方橋的控制權限是否被合理分散、是否具有抗審查的提款功能、DA層/數據發布形式是否可靠以及在Layer1上部署了可靠的有效證明/有效證明系統。同時,針對比特幣和以太幣的Layer2安全模型展開分析,探討了各自的特色和需要關注的重點。最後,對銘文索引協議等新事物為比特幣生態帶來的技術創新做出了積極評價。
原文標題:《用木桶理論拆解比特幣/以太幣Layer2安全模型與風險指標》
譯文作者:Faust & 霧月,極客web3 / 顧問:Kevin He(@0xKevinHe),新火科技技術副總裁
導語:美國管理學家勞倫斯·彼得曾提出“木桶理論”,該理論認為,一個系統的整體性能,是其最薄弱的部分所。換言之,木桶能裝多少水,由它最短的部分組成這塊木板決定。這個道理雖然簡單,但卻又常被忽略。以往對Layer2 安全性的爭論,最注重不同組件的優先順序與重要程度,基本上都集中在狀態轉換可靠性與DA 問題上,但卻常被忽視忽略了更底層更重要的基礎,這樣下來整套理論根基可能都站不住腳。所以,當我們對多模組的複雜系統展開探討時,要先摸清楚哪一塊是「最短的木板」。桶理論的啟示,我們做了系統分析之後發現,比特幣/以太坊Layer2 安全模型中不同的組件間關係,也存在明顯的依賴關係,或者說某些組件的安全性避免其他組件的安全性更基礎、更重要,即所謂「更短」。對此,我們可以初步判斷主流對Layer2安全模型中不同元件的重要程度/基礎程度,進行以下優先排序:
1. 合約/官方橋的控制權限是否被合理分散(多簽控制權集中)
2.是否具有抗審查的提款功能(強制提款、逃生艙)
3. DA層/資料發布形式是否可靠(DA資料是否發佈在比特幣、以太坊上)
4. 是否在Layer1上部署了可靠的有效證明/有效證明系統比特幣L2需要修補(BitVM)
我練習吸收以太坊社群對Layer2的研究成果,避免李森科主義
相較於高度秩序化的以太坊Layer2體系,比特幣Layer2一片鏟刀的天地,這個在銘文熱潮體系後擴容愈發重要的新概念,在表現出崛起的同時,其生態卻日漸混亂、趨向於混沌,霎時間各種Layer2專案方層出不窮,有如雨後春筍。他們在為比特幣生態帶來希望的同時,卻意隱忽視自身的安全風險,甚至有人曾揚言「否定以太坊Layer2,走比特幣生態獨特道路」 」,大有走極端主義路線的音樂。
考慮到比特幣與以太坊在功能屬性上的不同,比特幣Layer2在早期注定無法向以太坊Layer2初始化,但並不能說明,我們應該徹底否定以太坊否則區塊鏈界早有定論的行業常識(參考前生物學家李森科,借用偏見問題,迫害歷史暗示支持者的「李森科事件」)。
恰恰相反,這些由「前人」付出巨大努力取得的評價標準,在得到廣泛認可後,多次表現出強烈的說服力,刻意否定了這些成果的價值,絕非理性之舉。
在比特幣建造Layer2的同時,我們應充分認識到「西學東用」的意義,對以太坊社群的抗生素結論進行適應的吸收與優化。但在收集比特幣生態幣以外的觀點時,我們有必要認識其出發點的差異,並實現最終求同存異。
這相當於在探討「西方」與「東方人」的同與異。不管是西方的還是東方的,「人」這個後綴都表達了類似的特徵,只是在對應「西方」和「東方」但歸根結底,「西方人」和「東方人」之間存在著重合,這就意味著,許多適用於西方人的東西,在東方人身上同樣適用,許多適用於「以太坊Layer2」的東西,也同樣適用於「比特幣Layer2」。
在區分比特幣L2 與以太坊L2 的不同之前,先理清兩者之間的互通之處,或許才是更重要、更有意義的事。
秉著「求同存異」的真理,本文並未探討「什麼是比特幣Layer2,什麼不是」,因為這個話題爭議過大,就連坊以太坊社群都沒有就「哪些是以太坊作者Layer2,哪些不是Layer2 ” ”從而達成一致的意見。
但可以肯定的是,不同的技術方案在為比特幣帶來擴容效應的同時,其安全風險各有不同,其安全模型中存在的信任假設,將是本文擬重點討論的話題。
如何理解Layer2的安全性及評判標準
其實,Layer2 的安全性並不是一個新鮮的討論點。甚至就連安全性這個詞,也是一個包含了多個細化屬性的複合概念。
本身EigenLayer創辦人曾將「安全性」簡單的解讀為「交易不可逆性(抗回溯性)、抗審查性、DA/資料發布可靠性、狀態轉換性」等4個要素。
(EigenLayer創辦人曾就客戶端驗證/主權Rollup方案如何繼承比特幣主網安全性一事,表達了看法)
L2BEAT和以太坊社群OG曾提出比較系統的Layer2風險評估模型,當然這些結論是針對智慧合約型Layer2,而不是Rollup、客戶端驗證等典型的非智慧合約型Layer2。
雖然這並不是100% 適合比特幣L2,但還是包含了值得肯定的批評結論,其大部分觀點已經在西方社區被廣泛認可,也根據我們調查評估了不同比特幣L2 的風險所在。
(Vitalik曾表示,由於Rollup方案在早期啟動時能夠達到理論上的完善度,所以必須求助一些輔助手段提升安全性,而這些輔助手段被稱為“輔助輪”,並會引入信任假設。信任想像就是風險)
那麼安全風險都來自於哪裡?考慮到當前,無論是以太坊Layer2還是比特幣Layer2,很多都依賴於中心化的節點來排序器,或者由少數節點組成側鏈形式的“委員會”,這些趨向於中心化的排序器/委員會如果不受限制,可以竊取用戶資產並隨時跑路,可以拒絕用戶的交易請求,導致資產被凍結無法使用。這便牽涉到前文EigenLayer創辦人提到的狀態轉換功效與抗審查性。
同時,由於以太坊Layer2依賴ETH鏈上的合約進行狀態轉換驗證和充提款行為驗證,合約控制者(其實就是Layer2官方)若能快速更新合約邏輯,在其中中間惡意程式碼段(比如,允許某個指定的地址,把L1-L2充提款合約上鎖定的代幣全部轉走),就可以直接盜走託管的資產。這歸結為「合約多簽分配問題」,而多簽分配問題同樣適用於比特幣Layer2,因為比特幣Layer2往往依賴於「公證人橋」,需要多個節點通過多簽來放行跨鏈請求,所以比特幣Layer2也存在多簽如何合理分配的問題,我們甚至可以把它恢復到比特幣Layer2之上最基礎的「輔助輪」。
另外,DA問題也極為重要。如果Layer2不把資料上傳到Layer1,而自己使用一些不可靠的DA發佈場所,假設這種鏈下DA層(一般稱為DAC資料可用性委員會)進行串謀,拒絕對外發布最新交易數據,資料扣留攻擊將導致網路報廢,並可能導致用戶無法順利提款。
L2BEAT對上述問題進行了總結,並衍生出了Layer2安全模型中的幾個核心要素:
1. 狀態驗證/證明系統是否可靠(State Validation)
2. DA資料發布方式是否可靠(Data Availability)
3.如果Layer2網路拒絕收你的交易/無法,你能否將資產強制撤出Layer2(Sequencer Faliure、Proposer Failure)
4. Layer2相關合約-官方跨鏈橋的控制權,是否足夠分散。若權力比較集中,發生「監守自盜」時,使用者能否有足夠的去時間應急(退出窗口)
(L2BEAT上為不同Layer2專案設定的「風險要素展示圖」)
不管怎樣,當我們分析Layer2安全隱患時,其實就是在探討,Layer2網路內存在多少可能導致使用者資產受損的場景,對於這些危險情況,Layer2系統又可以透過機制設計進行有效否定。如果某些惡意行為是無法杜絕的,我們還需要引入多大程度的「信任」,需要信任一個群體中的多少個體,需要依賴多少「輔助輪」。
以下中我們假設通用的以太坊Layer2/比特幣Layer2模型中,存在的風險要素進行分析(本文所談及的物件不包含「狀態通道」或「支付通道」,也不包括銘文索引協議,因為其中比較特殊)。而我們會嘗試探討,哪些成分是Layer2安全模型中,更基礎、更底層、更重要的,這些更基礎的短板,將是比其他短板更值得我們去重視的信任風險。
Layer2的木桶效應-短板有哪些
最短的那塊板子-合約/官方橋的管理權
,我們感知用「木桶效應」分析Layer2 安全問題,很容易看出,這裡最短的一塊木板就是感知的「合約可升級性」(主要針對以太坊Layer2),或者更進一步的說,是「官方跨鏈橋的管理權」(比特幣和以太坊Layer2 都適用)。
對於以太坊Layer2而言,只要Layer2官方可以在Layer1鏈上快速升級合約,理論上可以把L2官方橋充提款地址上鎖定的Token盜走,無論其DA層或證明系統都有如何可靠。
可以說,橋接合約的控制權限關係到整個系統的安危,它是整個Layer2 看來高速區塊鏈堆疊中最基礎、最關鍵的部分。如果橋接組件/契約是在多簽控制下更新迭代的,那我們就要在這裡引入「信任假設」,假設Layer2 合約/官方橋的控制者不會作惡。
(L2BEAT上對不同Layer2專案的合約升級延遲有標註,大部分L2合約可以立即被控制者升級,如果合約控制者想盜取資產,或者私鑰被駭客盜取,L2託管的用戶資產必然慘遭殃)
顯然以太坊Layer2是的,比特幣Layer2的橋樑基本上不受Layer1上的合約控制,因為比特幣本來就不支援智能合約。相對而言,以太坊Layer2的整個工作流程都高度依賴Layer1上的合約,而比特幣Layer2 則無法連線。
(Starknet原理圖)
這對比特幣Layer2而言,是避不開的問題,可以說有好處也有壞處。目前看來,以太坊Layer2依賴合約實現的「去信任化的橋」,在比特幣L2身上無法實現。這種「Trustless Bridge」需要在Layer1 上部署專用合約,同時需要DA+ 欺騙證明/ZK 證明系統的配合,本質上類似於Orbiter 那種「樂觀橋」或多面體類型的ZK 橋。
目前主流的主流觀點是,若不考慮實務上可能存在的bug,只考慮理論模型,樂觀橋和ZK橋的安全等級基本上是最高的一檔,只要合約程式碼不包含bug,或不能被惡意升級,根本就是去信任化的。
(樂觀橋只需要實現,N個守望者中,有1個誠實,就可以保證安全,信任模型為1/N)
由於比特幣Layer2 不可能在Layer1 上部署合約組件(這裡不涉及閃電網絡),它的官方橋基本上都是少數節點組成的“公證人橋”,或者叫“多簽橋”,這種橋的安全性,取決於多重簽/閾值簽章的設定方式,需要引入引入的信任假設:假設這些公證人不會合謀,或不被盜取私鑰。
目前大多數基於公證人/閾值簽名的橋,在安全性上無法與以太坊Layer2 官方的“去信任化橋”相提並論(其比特前提是以太坊Layer2 的合約不會發生惡意升級)。很顯然,幣層2網路託管的資產安全性,將受制於其官方橋的安全性,或者說設定於多簽橋的權力分散度,這是其第一個「輔助輪」所在。
由於以太坊Layer2官方橋接相關合約的「升級權限」,往往也集中在少數幾個多簽控制者手上,如果多簽控制者串謀,以太坊Layer2的橋也會出現問題,除非其合約不可升級,還是受到了很長的延遲限制(目前只有Degate 和Fuel V1 如此)。
(解除債務合約升級,會給用戶債務人30天的安全信託期,在此期間大家只要發現新版合約代碼有惡意邏輯,就可以透過強制提款/逃生艙功能安全信託)
關於「官方橋」這部分,以太坊Layer2 和比特幣Layer2 的信任模型基本一致:需要信任多簽的控制者不會串謀作惡,這組多簽可以控制L2 官方橋,或者更改其代碼邏輯,或直接放行無效的提款請求,最後的結果是:使用者資產可能被竊。
兩者唯一的差別是,以太坊Layer2持續合約不違規升級/升級窗口期足夠長,其官方橋就是去信任的,但比特幣Layer2無論如何都達不到這種效果。
第二短的板子-抗審查的強制提款
如果我們假設,前文所說的契約多簽/官橋控制權問題可以無視,那麼這一層沒有問題,那麼接下來最重要的一層,必然是提行為款的抗審查性。
抗審查強制提款/逃生艙功能的重要性,Vitalik 在幾個月前的文章“不同類型的Layer 2”中曾強調,用戶能否順利的把資產從Layer2 撤回到Layer1,是一個非常重要的事情的安全指標。
如果Layer2的排序器一直拒絕你的交易請求,或長時間故障/宕機,你的資產將被「凍結」,什麼都乾不了。 ,這樣的Layer2也是不夠安全的,隨時可以把你的資產扣住。
更何況,曾在以太坊生態盛極一時的Plasma,允許任何人在DA方案失效或欺騙證明失效時,安全的把資產撤出至Layer1。這時候,整個Layer2網路基本上已經報廢,但你的資產仍然顯然有辦法全身而退。 ,抗審查的提款功能,無意DA與論證系統更基礎、更底層。
(以太坊基金會的Dankrad 表示,Plasma 在DA 故障/用戶無法同步最新資料時,仍能讓使用者資產安全)
部分以太坊Layer2,如Loopring和StarkEx、dYdX、Degate等,會在Layer1上設定一個抗審查的強制提款/逃生艙激活函數,以Starknet為例,如果用戶在Layer1上提交的強制提款請求,在7天窗期結束時,未得到Layer2排序器回應,則可以手動呼叫凍結請求功能讓L2進入凍結狀態,啟動逃生艙模式。
此時,排序器無法向L1 上的Rollup 簽章提交數據,整個Layer2 將凍結一年。 ,然後用戶可以提交merkle 證明,證明自己在Layer2 上的資產狀態,並在Layer1 上直接提款(其實就是從官方橋的充提款地址中,把自己的等額資金拿走)。
很顯然,逃生艙模式只能在以太坊這種支援智慧合約的鏈上實現,比特幣無法運作這麼複雜的邏輯。換言之,逃生艙功能基本上是以太坊Layer2 的專利,比特幣Layer2 必須中繼一些額外的輔助手段,照貓畫虎的原型,這就是第二處「輔助輪」。
但很容易聲明「強制提款請求」,無法直接啟動逃生艙方便的多。之前只需要讓使用者在Layer1 上向指定位址提交請求交易,並在交易的附加資料中,聲明自己要提交給全體Layer2節點的資料(這樣可以直接繞開排序器,向其他Layer2節點傳送節點請求) 。如果「強制提款」長時間無法回應,使用者再觸發去逃生艙模式,是比較合理的設計。
(參考資料:對於Layer2而言,強制提款與逃生艙功能到底有多重要?
https://mp.weixin.qq.com/s/EheKZWDcJHYZ7vBZZPOMDA)
目前,已經有比特幣Layer2 團隊打算修改Arbitrum 的強制交易實現方式,允許用戶在比特幣鏈上發布強制交易聲明(Forced Transaction Envelopes)。在這種方案下,使用者可以繞開排序器直接向其他Layer2 節點「傳達心聲」。如果排序器在看到使用者的強制交易聲明後仍拒絕其請求,將被其他Layer2 節點感知並可能受到懲罰。
但問題在於,Arbitrum 的強制交易功能,受益於其詐欺證明系統,可以懲罰一直以來無用戶交易的Sequencer/Proposer。對於但難以在Layer1 上驗證詐欺證明的比特幣Layer2,會在這方面遇到一定的挑戰(暫且不討論BitVM)如果是絕對Rollup這種安全級別與客戶端驗證並無太大差異的方案,我們很難認真評估其可靠性,可能要針對不同項目的實現細節進行評估。
當然,目前許多比特幣Layer2以類似側鏈的形式啟用,實際上實現了去中心化排序器,可以用程式解決抗審查問題。但這只是一種有效的輔助手段,絕對不是終極解決方案。
ps:現在的一些Layer2方案,如Validium等,在逃生艙的機制設計上並不完善,排序器啟動資料扣留攻擊/DA不可用時,可以讓使用者無法提款。但最終歸因於Layer2逃生艙設計的不完善,從理論上來看,最優化的逃生艙提款只能依賴歷史數據,不需要對DA/新數據的可獲得性產生依賴)
第三短板:DA資料層發布的可靠性
DA 雖然只是被稱為資料可用性,但這個術語實際上指的是資料發布,因為Vitalik 和Mustafa 在最初給出這個概念的時候,並沒有深思熟慮,因此產生了DA/資料可用性這種名不符實的叫法。
數據發布,顧名思義說的是:最新的區塊/交易數據/狀態轉換參數,是否能夠順利接收。在不同的鏈上發布數據,其可靠性並不一樣。
(參考資料:對資料可用性的誤解:DA=資料發布≠歷史資料檢索
https://mp.weixin.qq.com/s/OAM_l4Pe9Gphn8H55OZUtw)
西方社群普遍認為,比特幣、以太坊等老牌公鏈,是最值得信賴的DA層。如果Layer2排序器在以太坊上發布了新的數據,任何人只需運行以太坊geth客戶端,就可以下載對這些數據並進行同步,幾乎不會受到任何阻礙,這是憑藉以太坊網絡龐大的規模,和交易的公開資料來源來實現的。
值得一提的是,以太坊Rollup 會強行要求排序器在Layer1 上發布交易資料/狀態轉換參數,這一點是透過有效性證明/證明證明來保證的。
比方說,ZK Rollup的排序器在Layer1上發布交易資料後,會一致性觸發邏輯產生一個datahash,而驗證器一致性要確認,Proposer提交的有效證明和datahash有對應關係。
這等價於:確認Proposer提交的zk Proof和Stateroot,與Sequencer提交的Tx data,是關聯在一起的,即New Stateroot=STF(Old Stateroot,Txdata)。 STF就是狀態轉換函數狀態轉換函數。
這樣可以確保將狀態轉換資料/DA強行上鍊,只要提交stateroot和有效性證明,將無法通過驗證器一致性的驗證。
DA 資料發布與證明驗證系統哪個更基礎,以太坊/Celestia 社群多次進行過充分討論,普遍結論是:DA 層坊是否可靠,大概關於欺騙證明/有效證明的解決性更重要。系統如此, Plasma、Validium、Optimium 這類──DA 層在以太坊鏈下、結算層在以太坊鏈上的方案,容易遭遇「資料扣留攻擊」,就是指:
Sequencer/Proposer 可以與ETH 鏈下的DA 層節點串謀,在Layer1 上更新stateroot,但扣住狀態轉換對應的輸入參數不發出來,讓外人無法判斷新的stateroot 是否正確,成為「睜眼瞎」 。
這種情況發生,整個Layer2 網路實際上會報廢,因為這樣,你根本不知道Layer2 帳本變成了什麼樣。如果是基於欺騙證明的Layer2(Plasma 和Optimium),排序器可以隨意改寫任何帳戶下的資料/資產;如果是基於證明的Layer2(Validium),雖然排序器不能隨便改寫你的帳戶,但此時整個Layer2網路成了黑箱,沒人知道裡面發生了啥,跟報廢也沒區別。正因如此,以太坊生態內部的正統Layer2方案,基本上都是Rollup,而Validium和Optimium往往不被以太坊基金會認可。
(參考資料:數據扣留與詐欺證明:Plasma 不支持智能合約的原因
https://mp.weixin.qq.com/s/oOPZqIoi2p6sCxBdfUP4eA
因此,DA 層的可靠性/狀態轉換參數的可獲得性,比破解論證/有效性論證系統的論證性更重要,更基礎。對於比特幣Layer2,尤其是基於客戶端驗證模型的Layer2 而言,即使沒有在Layer1上設定故障證明/有效證明驗證系統,只要DA層照常工作,大家依然能知道L2網路是否出現錯誤的狀態轉換。
目前比特幣主網難以驗證論證/無效論證(此處不討論BitVM),我們先假設比特幣L2沒有論證驗證系統。理想狀態下,如果L2排序器真的作惡,在結算層/BTC上發布一個與DA資料無關聯的stateroot,它還是無法真正意義的被盜取用戶資產,因為它單方面提交的stateroot/狀態轉換結果,不會被挖礦節點認可,到最後可能只是自嗨。
(此時,只要交易所和跨鏈橋等生態內週邊設施提供者運行的節點不與排序器串謀,排序器就無法透過發布錯誤資料的方式來快速變現被盜的資產。 之後,只要有1個權益節點發現情況,在關鍵時刻發布警報,就可以透過社會輿論來糾錯。但社會輿論本身的成本,無法即時生效)
如果是建立側鏈的模型,大多數節點串謀執行惡意的狀態變更,人們可以很快發現問題。只要跨鏈橋、交易所第三方此類設施不認可錯誤的數據,Layer2/側鏈的惡意控制者就無法成功套現,除非他說服別人與他在鏈上直接場外交易。
(Viatlik 曾在文章中指出,客戶端驗證是保證區塊鏈網路安全的真正根基,請自行驗證)
這裡有一個很重要的點,其實以太坊是以太坊Layer2,還是比特幣Layer2,都可以實現「客戶端驗證」。但是以太坊Layer2在「客戶端驗證」的基礎上,借助Layer1和證明驗證系統,保證狀態轉換的有效性,基本上依賴社會共識(前提是有成熟的欺騙證明/有效性證明系統)。
而比特幣Layer2 的「客戶端驗證」方案往往對「社會輿論」有風險,依賴會帶來相應的風險(對於比特幣Layer2 而言,這種安全風險基本上可控,但可能導致某些)對於以太坊Layer2而言,因為其官方橋需要證明系統的配合,如果證明系統不完善,排序器可以盜取用戶資產並提到L1上跑路。當然,具體除了跨鏈橋組件怎麼設計)。
所以說,一個能夠在Layer1上實現欺騙證明/有效性證明驗證系統的Layer2,永遠要比簡單的「客戶端驗證」模型好多。
PS:由於大多數採用了欺詐證明/有效證明系統的比特幣Layer2,無法讓Layer1直接參與到驗證證明流程,所以其本質仍然只是把比特幣當做DA層,安全模型等價於“客戶端驗證” 」。
從理論上來看,在Layer1上通過BitVM的方案,可以在比特幣鏈上驗證驗證論證,但該方案工程落地難度很大,會遇到很大的挑戰。由此可見以太坊社群已經是基於Layer1的驗證驗證系統了做了特別多的討論,已經人盡皆知,所以本文不打算對「基於Layer1 的驗證系統」進行重複敘述。總結
總結
經過簡單的木桶模型分析,我們可以初步得出結論:主流的Layer2安全模型中,按照重要程度/程度基礎,可以進行如下排序:
1. 合約/官方橋的控制權限是否被合理分散
2.是否有抗審查的提款功能
3. DA層/資料發布形式是否可靠
4. 是否在Layer1上部署了可靠的有效證明/有效證明系統
當然,我們並沒有對閃電網路/狀態通道及ICP生態的ckBTC、銘文索引協定等方案進行分析,因為它們與典型的Rollup、Plasma、Validium或客戶端驗證方案有較大的差異。由於時間關係,我們尚難以對其安全性與風險要素進行審慎的評估,但考慮到它們的重大意義,日後相關的評估工作必將如期進行。
同時,對於銘文索引協議是否應該被提及Layer2一件事,項目方之間存在嚴重的分歧,但無需論Layer2定義之事,銘文索引協議等新事物為比特幣生態帶來了充分的技術創新,並終將迸發出巨大的活力。
原文連結
資訊來源:0x資訊編譯自網際網路。版權所有,未經許可,不得轉載!