用木桶理論拆解比特幣/以太坊Layer2安全模型與風險指標

中級Jan 25, 2024
彼得提出的木桶理論認爲,繫統整體性能受最薄弱部分限製。比特幣/以太坊Layer2安全模型需關註合約控製權限、抗審查功能、DA層可靠性等因素。
用木桶理論拆解比特幣/以太坊Layer2安全模型與風險指標

導語:

美國管理學家勞倫斯·彼得曾提出“木桶理論”,該理論認爲,一個繫統的整體性能,被其最薄弱的部分所限製。換言之,一個木桶能裝多少水,由它最短的那塊木闆決定。這個道理雖然簡單,卻又常被忽視。以往對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 Avalibility)3. 如果Layer2網絡故意拒收你的交易/停機,你能否將資産強製撤出Layer2(Sequencer Faliure、Proposer Failure)4. Layer2相關合約-官方跨鏈橋的控製權,是否足夠分散。如果權力比較集中,髮生“監守自盜”時,用戶能否有足夠的時間去應急(Exit Window)


(L2BEAT上爲不衕Layer2項目設置的“風險要素展示圖”) Anyway,當我們分析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那種“樂觀橋”或Polyhedra這類ZK橋。目前業界的主流觀點是,若不考慮實踐中可能存在的bug,僅考慮理論模型,樂觀橋和ZK橋的安全級別基本是最高的一檔,隻要合約代碼不包含bug,或者不能被惡意升級,基本就是去信任化的。


(樂觀橋隻需要做到,N個守望者中,有1個誠實,就可以保證安全,信任模型是1/N) 由於比特幣Layer2沒辦法在Layer1上部署合約組件(這裡不談論閃電網絡),它的官方橋基本都是少數節點組成的“公證人橋”,或者叫“多簽橋”,這種橋的安全性,取決於多簽/閾值簽名的設置方式,需要引入較強的信任假設:假設這些公證人不會合謀,或者不被盜取私鑰。目前大多數基於公證人/閾值簽名的橋,在安全性上無法與以太坊Layer2官方的“去信任化橋”相提併論(其前提是以太坊Layer2的合約不會髮生惡意升級)。很顯然,比特幣Layer2網絡托管的資産安全性,將會受製於其官方橋的安全性,或者説受限於多簽橋的權力分散度,這是其第一處“輔助輪”所在。由於以太坊Layer2官方橋相關合約的“升級權限”,往往也集中在少數幾個多簽控製者手上,如果多簽控製者串謀,以太坊Layer2的橋也會出問題,除非其合約不可升級,或是受到了很長的延時限製(目前隻有Degate和Fuel V1如此)。


(Degate每次合約升級,都會給用戶預留30天的安全逃離期,這期間隻要大家髮現新版合約代碼有惡意邏輯,就可以通過強製提款/逃生艙功能安全逃離)關於“官方橋”這部分,以太坊Layer2和比特幣Layer2的信任模型基本一緻:需要信任多簽的控製者不會串謀作惡,這組多簽可以控製L2官方橋,要麽更改其代碼邏輯,要麽直接放行無效的提款請求,最後的結果都是:用戶資産可能被盜。兩者唯一的區別是,以太坊Layer2隻要合約不惡意升級/升級窗口期足夠長,其官方橋就是去信任的,但比特幣Layer2無論如何都達不到這種效果。

第二短的闆——抗審查的強製提款如果我們假設,前文所説的合約多簽/官方橋控製權問題可以無視,也就是這一層沒有問題,那麽接下來最重要的一層,必然是提款行爲的抗審查性。關於抗審查強製提款/逃生艙功能的重要性,Vitalik在幾個月前的文章“Different types of layer 2s”中曾強調,用戶能否順利的把資産從Layer2撤回至Layer1,是一個非常重要的安全指標。


如果Layer2的排序器一直拒絶你的交易請求,或者長時間故障/宕機,你的資産將被“凍結”,什麽都幹不了。即便DA和欺詐證明/ZK證明繫統可用,如果沒有抗審查方案,這樣的Layer2也是不夠安全的,隨時可以把你的資産扣住。更何況,曾在以太坊生態盛極一時的Plasma方案,允許任何人在DA失效或欺詐證明失效時,安全的把資産撤出至Layer1。這個時候,整個Layer2網絡基本報廢,但你的資産仍有辦法全身而退。顯然,抗審查的提款功能,要比DA與證明繫統更基礎、更底層。


(以太坊基金會的Dankrad錶示,Plasma在DA故障 / 用戶無法衕步最新數據時,依然可以讓用戶資産安全撤離)部分以太坊Layer2,如Loopring和StarkEx、dYdX、Degate等,會在Layer1上設立一個抗審查的強製提款/逃生艙激活函數,以Starknet爲例,如果用戶在Layer1上提交的Forced Withdrawal請求,在7天窗口期結束時,未得到Layer2排序器響應,則可以手動調用freeze Request功能讓L2進入凍結狀態,激活逃生艙模式。此時,排序器無法曏L1上的Rollup合約提交數據,整個Layer2將凍結一年。然後,用戶可以提交merkle proof,證明自己在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就是state transition function狀態轉換函數。這樣可以保證將狀態轉換數據/DA強行上鏈,如果隻提交stateroot和有效性證明,將無法通過驗證器合約的verify。關於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/側鏈的惡意控製者就無法成功套現,除非他説服別人與他在鏈上直接OTC。


(Viatlik曾在文章中指出,客戶端驗證是保證區塊鏈網絡安全的真正根基,Verify by yourself)這裡有一個很有意思的點,其實無論是以太坊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定義之事,銘文索引協議等新事物爲比特幣生態帶來了充分的技術創新,併終將迸髮出巨大的活力。

聲明:

  1. 本文轉載自[極客web3],著作權歸屬原作者[Faust & 霧月,極客web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500
Tạo tài khoản