深讀解讀為什麼Rollup都需要安全委員會?
原文作者:PATRICK MCCORRY
原文編譯:Luffy,Foresight News
任何與加密資產互動的資料庫終有一天都會選擇Rollup 作為技術堆棧。開發人員做出這樣的決定是有很多充分理由的:
即時審計
預設償付能力證明
用戶資金的託管是可選的
誠實的一方參與者可以保護整個系統
最重要的是,Rollup 的所有設計和實現工作都集中在保護用戶、他們的資金以及他們的所有交互,免受潛在未知且強大的系統操作員的侵害。
即使整個系統離線,用戶也可以憑一己之力收回資金。
如果Rollup 能夠作為技術堆疊廣泛部署,那麼我們可能有能力打破信任壁壘,使全球社群中的任何人都能進行財務互動,從而進入全球電子商務、遠端招募和無摩擦提供服務的新時代。
要讓Rollup 正確執行,確實需要付出很多努力。
多重簽名怎麼樣?
這聽起來不錯,但整個系統最終由多重簽名控制。如果簽名者受到損害或萌生惡意,那麼他們可以輕易地竊取所有資金。
那麼,誰會關心Rollup 呢? CT 上的某個地方。
確實,目前所有Rollup 都具有多重簽名,有權升級底層智慧合約,但正如我們將看到的,它是一種保護用戶資金的保守主義機制,也是更廣泛的系統架構的一部分。
安全委員會的責任
多重簽名是技術術語,指的是需要多個簽署者授權某項操作的系統。例如,N 個簽名者中的K 個完成數字簽名,交易才會被允許。
在Rollup 的背景下,多重簽名通常被稱為安全委員會,簽署者被賦予升級所有相關智慧合約的權力。
讓我們來看看Arbitrum 中的安全委員會(因為我對它非常熟悉),以了解這個組織可能承擔的職責類型:
否決權。如果安全委員會認為Arbitrum DAO 通過的提案違反了Arbitrum 章程並可能損害Arbitrum 生態系統,則可以取消提案。例如,取消因受到治理攻擊而通過的提案。
維護。升級Arbitrum 智慧合約套件以進行細微更改,這些更改影響較小,不需要Arbitrum DAO 參與其中。
緊急事件。在緊急情況下迅速回應,如果他們認為用戶資金面臨迫在眉睫的風險,則可以緊急升級智慧合約。
當然,最重要的是,安全委員會的首要職責是應對緊急事件並迅速採取行動保護用戶資金。
安全委員會的成員需要非常值得信賴的人員來擔任。
人們相信簽名者能夠迅速做出反應,在緊急情況發生時能夠升級智慧合約,並相信他們會盡最大努力保護智慧合約中的資金安全。
選擇正確的多重簽名閾值
在決定成立安全委員會時,需要考慮兩個重要因素:
一共有多少簽名者?
至少需要多少簽署者才能批准一項行動?
這看似是個微不足道的問題,畢竟它只是兩個數字,但必須考慮一個平衡行為:
安全違規: K 個成員可能串通更改智慧合約並竊取用戶資金。
活性違規:N-K+ 1 成員串通阻止對智慧合約進行任何更改,如果發現嚴重漏洞,問題尤其嚴重。
困難在於確定一個閾值,既能在和平時期維護資金安全,又能在緊急情況下當用戶資金受到威脅時迅速採取行動。
讓我們考慮一個具體的例子。假設閾值設定為9/10 ,其中9 個簽署者必須共同簽署一則訊息。這是一個嚴苛的安全閾值,因為必須9 個簽名者合謀才能竊取資金。然而,缺點是任何兩個簽名者都可以阻止緊急情況下的任何行動。例如,如果兩名簽署者乘坐跨大西洋航班遠遊,則安全委員會將無法履行其職責。
當然,如果安全閾值較低,假設為2/10 ,那麼只需任意兩個簽署者串通(或私鑰被洩露),用戶資金就會被盜。

對一個人誠信的看法很可能會隨著時間的推移而改變
選擇適當的閾值更多的是一個社會問題,而不是一個技術問題,我認為這更多的是一門藝術而不是一門科學。安全性很大程度上取決於個人簽署者的誠信。正如我們很快就會看到的,有一些方法可以減少對多重簽名的信任,但這會帶來一系列權衡。
安全委員會成員
主要Rollup 即時升級所有智慧合約所需的多簽閾值
大多數Rollup 在其安全委員會中都有一組匿名簽署者。我們懷疑這可能是由於:
Rollup 的發展階段,
保護成員人身安全,
認為匿名是保護用戶資金的最佳選擇。
另一方面,有三個Rollup 項目公開宣布了其安全委員會成員資格:
Arbitrum:簽名者由公開選舉產生,目前名單可在Tally上查看。只有三名簽署者與Arbitrum 計畫相關(兩名來自Offchain Labs,一名來自Arbitrum 基金會)。
Base: 2/2 多重簽名,一個由Base 控制,另一個由Optimism 控制。
Polygon zkEVM:尚未實施,但他們已宣布將其多重簽名升級至10/13 ,其中包括來自Polygon Labs 的兩名成員以及Polygon Labs 的一名顧問。
zkSync Lite:zkSync Lite 應該與ZkSync Era 區分開,其安全委員會是公開宣布的,並且不包括來自Rollup 項目的直接附屬機構(zkSync 的投資者除外) 。
在Arbitrum 中以及在即將到來的Polygon 中,只有少數簽署者與Rollup 項目直接相關,而且數量足夠小以確保附屬機構不能串通阻止安全委員會採取的行動。在zkSync Lite 中,除了zkSync 的投資者之外,他們還任命了獨立於專案的簽署者。
在所有情況下,Rollup 都非常重視與專案沒有直接關係的簽署者。
然而,對於如何構成良好的多重簽名似乎缺乏共識,這給我們帶來了幾個設計問題:
是否應該允許匿名成員?
成員應該來自不同的地域嗎?
成員應該是個人還是公司?
成員應該由任命還是選舉產生?
應允許多少名來自同一公司(或國家)的成員?
是否存在被認為合適的最小規模和閾值?
一般經驗法則應該是挑選高度誠信的成員,以便大眾對系統的安全充滿信心。至少,我相信大多數項目可能都會這樣做,即使這並不總是可以公開驗證。
附註Arbitrum 安全委員會的六名成員目前已被預先任命,但他們將在三月的選舉中被替換。
削弱委員會的權力

到目前為止,我們只考慮了一個有權立即升級智慧合約的委員會,但有一些方法可以限制委員會的權力:
時間延遲(Time delay)。委員會授權的所有操作只有在時間T 過去後才會被執行並生效。
僅暫停(Pause-only)。原生跨鏈橋持有的所有資產都可以被委員會凍結。這可能會暫停以下功能:
將訊息從L2 傳遞到L1(即提款),
完成待處理交易的排序,
完成新的檢查點/ 證書,
接受新的Rollup 資料(即待處理的事務)。
繞過委員會(Removed)。放棄委員會並依靠另一種治理機制(如DAO)來批准升級。
當然,這會限制委員會迅速採取行動的能力以及他們能否有效應對威脅用戶資金的緊急事件。
如果漏洞已私下向委員會披露,但尚未被駭客利用,安委員會可以選擇升級智慧合約並修復錯誤。在升級中加入時間延遲,會增加攻擊者研究公開披露的升級、找到漏洞然後利用它的風險。
例如,比特幣中的CVE-2018-17144 最初被宣傳為DDoS 漏洞,而試圖隱藏更嚴重的代幣通膨漏洞。升級速度對於防止其被利用至關重要。
評估僅暫停機制的防禦能力
讓我們考慮一下攻擊者主動利用漏洞的潛在場景:
惡意L2 → L1 訊息。攻擊者可以製作源自Rollup 上的智慧合約的任意訊息,並透過原生跨鏈橋將訊息轉發到以太坊上的智慧合約。
無效的狀態轉換。攻擊者可以在Rollup 上執行違反狀態轉換函數規則的交易,通常應視為無效。
提款漏洞。攻擊者只需在以太坊(第1 層)上發出交易即可從原生跨鏈橋提取資金。
在這三種情況下,時間延遲只會讓攻擊者有更多時間繼續竊取資金,並減少委員會保衛系統的機會窗口。延時功能無法防禦主動攻擊,只能用於日常維護和不緊急的任務。
我們只會評估暫停系統的能力以及系統可以暫停的程度。
在惡意L2 → L1 訊息的情況下,暫停功能可以減輕攻擊而不干擾交易活動。委員會應暫停訊息傳遞和/ 或最終確定新檢查點的功能。有一種觀點認為,L2 → L1 訊息在執行之前應該有一個時間延遲,以便委員會有時間檢測錯誤並對緊急事件做出反應。
防禦無效狀態轉換更加棘手,因為交易最終性在Rollup 中具有不同的層。如果我們只考慮Rollup 交易而不考慮任何副作用,那麼安全委員會的最佳防禦就是停止檢查點最終確定的能力,但繼續允許交易排序。這可以留出時間來修復錯誤、重新啟動檢查點完成以及簡單地忽略無效交易。
然而,如果不關閉Rollup 上的交易活動,那麼使用者體驗將會很混亂,而Rollup 可能會出現被嚴重破壞的狀態,直到客戶端軟體升級為止。
這將我們帶入下一個場景。如果我們考慮Rollup 上的無效交易可能如何影響其他系統,委員會應該如何回應。最好的防線是凍結原生跨鏈橋最終確定交易排序的能力,或完全關閉排序器。
這是因為某些系統,例如將資金從一個Rollup 轉移到另一個Rollup 的快速跨鏈橋,一旦它們認為Rollup 的交易(包括無效交易)被排序,就可能會授權資金轉移。在這個例子中,它可能允許攻擊者利用Rollup 上的DeFi 協議,然後透過快速跨鏈橋將其轉移到另一個Rollup 來快速轉移資金。
當委員會修復漏洞並恢復無效交易時,損害可能已經造成。無論是DeFi 協定還是跨鏈橋中的LP 都可能承擔攻擊帶來的損失。
最後,如果該漏洞允許攻擊者直接從原生跨鏈橋提取資金,類似於Nomad Hack,則安全委員會可能無法阻止。
暫停機制存在一個最終的總體問題。我們必須假設有一個更廣泛的治理系統可以批准升級並重新啟動Rollup。如果我們假設治理系統是一個帶有在Rollup 上運行的鏈上投票系統的DAO,那麼就會出現棘手的實施問題。
例如,如果L2→L1 訊息跨鏈橋暫停,則DAO 的投票結果無法從Rollup 傳遞到以太坊上的原生跨鏈橋,必須存在一種DAO 發送批准資訊並執行升級的替代方法。
逐步取消安全委員會
社區中有些人認為應該逐步取消安全委員會,但在我看來,這會帶來兩個問題:
錯誤的安全感。了解漏洞利用的攻擊者會等到安全委員會逐步淘汰後再執行攻擊。隨著時間的推移,這會削弱我們對系統安全性的信心。
恢復選項有限。如果沒有安全委員會,社區就無法反擊攻擊者。唯一可用的選擇是進行並行的白帽黑客攻擊,並希望奪回部分資金。
我認為,安全委員會永遠是必要的,但賦予它們的權力應該逐漸縮減。
考慮到這一點,設計問題應該是:
我們如何讓安全委員會在對使用者影響最小的情況下暫停系統,同時允許更廣泛的社區參與決定如何修復錯誤並重新啟動系統?
換句話說,我們需要一個真正允許社區介入並恢復系統的方案,然後再限制安全委員會的暫停權力。
在Layer 1 區塊鏈領域,社群確實可以透過使用用戶啟動的分叉來直接達成,但這種方法不適用於以太坊上的智慧合約(如Rollup),因為無需分叉整個以太坊。在某些情況下,以太坊社群可能會集體決定保存Rollup,就像2016 年的TheDAO,但Rollup 永遠不應該依賴或期望這樣一個結果。
沿著這些思路的另一個有趣的想法是實現以太坊最高法院來決定智慧合約升級並啟用類似於用戶啟動的分叉。
如前所述,如果Rollup 將其安全性委託給DAO,那麼應該有一個實現允許DAO 直接在以太坊上投票。這是非常棘手的,特別是如果投票協議存在於Rollup 中。
最後一點,我認為要對可能需要安理會做出反應的情況類型進行全面審查,以幫助圍繞其必要性的討論。
如果有了多重簽名,為什麼還要擔心Rollup?
我們花了相當多的時間來理解安全委員會的責任、設計和需求,但重要的是回到本文最初的問題:
Rollup 只是多重簽名嗎?
答案是不行。
為了幫助理解為什麼,最好退後一步並理解區塊鏈系統真正想要做什麼。
區塊鏈協議是一種工具,允許用戶計算數據庫的副本,並確信他們擁有與其他人相同的數據庫。
考慮到這一點,任何區塊鏈系統都有兩個組件:
區塊鏈協議。軟件、密碼學和分散式系統的組合,使任何人對數據庫的完整性充滿信心。
治理系統。一種協調機制,允許所有利益相關者共同努力並同意更改區塊鏈協議。
任何區塊鏈系統(包括Rollup)的目標都是確保區塊鏈協議始終以99.9999% 的極其可靠的正常運行時間運行。受信任的系統運營商對系統的日常運作應該幾乎沒有乾擾。最終負責保護使用者餘額、智慧合約代碼和狀態的應該是軟件、密碼學和分散式系統。
有時需要更改區塊鏈協議以改善用戶的利益。社群可能想要修復配置問題、新增功能或對威脅系統完整性的關鍵漏洞做出反應。這需要人工幹預,並且只能在0.0001% 的時間內被調用。
治理系統負責實現人為幹預,多年來已經出現了幾種方法:
集權政黨:單方可以單獨決定如何升級系統(包括比特幣在內的許多項目都是以這種方式開始的)。
粗略共識:大多數參與者表示他們已準備好部署升級,確定標記日,然後在標記日執行升級(比特幣/ 以太坊)。
投票協議:各方參與選舉並明確投票決定是否批准升級。
無法干涉:智慧合約可以是不可變的,系統永遠無法改變。
除上述內容外,社區還可以決定任命一個安全委員會作為治理的補充選項,以便在緊急情況中迅速採取行動。
安全委員會不阻止攻擊。這是一種被動機制,當區塊鏈協議的用戶資金或系統可靠性/ 性能的受到攻擊時,它與治理一起發揮作用。
最後
所有圍繞區塊鏈協議、治理和安全委員會的討論都至關重要。這種討論的存在使得加密貨幣如此特別。
這是信任工程的一個很好的例子:專注於識別、測量和減少/ 消除系統中信任元素的工程學科。
在加密貨幣中,我們專注於建立不僅能夠保護用戶免受強大的系統運營商侵害的系統,而且能夠使系統在最不利的條件下可靠(安全)地運作。
這就是為什麼社區成員對安全委員會的角色保持懷疑是健康的,但他們有責任在緊急事件期間提出更好的解決方案,以被動的方式保護用戶資金。
我希望這篇文章能清楚地說明為什麼安全委員會有用,它們在今天是必要的,但也只是智慧合約系統更廣泛架構的一小部分。


