深讀解讀為什么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% 的時間內被調用。
治理系統負責實現人為幹預,多年來已經出現了幾種方法:
-
集權政黨:單方可以單獨決定如何升級系統(包括比特幣在內的許多項目都是以這種方式开始的)。
-
粗略共識:大多數參與者表示他們已准備好部署升級,確定標記日,然後在標記日執行升級 (比特幣 / 以太坊)。
-
投票協議:各方參與選舉並明確投票決定是否批准升級。
-
無法幹涉:智能合約可以是不可變的,系統永遠無法更改。
除上述內容外,社區還可以決定任命一個安全委員會作為治理的補充選項,以在緊急情況中迅速採取行動。
安全委員會不阻止攻擊。 這是一種被動機制,當區塊鏈協議的用戶資金或系統可靠性 / 性能的受到攻擊時,它與治理一起發揮作用。
最後
所有圍繞區塊鏈協議、治理和安全委員會的討論都至關重要。這種討論的存在使得加密貨幣如此特別。
這是信任工程的一個很好的例子:專注於識別、測量和減少 / 消除系統中信任元素的工程學科。
在加密貨幣中,我們專注於構建不僅能夠保護用戶免受強大的系統運營商侵害的系統,而且能夠使系統在最不利的條件下可靠(安全)地運行。
這就是為什么社區成員對安全委員會的作用保持懷疑是健康的,但他們有責任在緊急事件期間提出更好的解決方案,以被動的方式保護用戶資金。
我希望這篇文章能夠清楚地說明為什么安全委員會有用,它們在今天是必要的,但也只是智能合約系統更廣泛架構的一小部分。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
星球日報
文章數量
7692粉絲數
0