為什麼有些協議選擇不公開 Security Council 的完整權限清單?
公開資訊不足通常有兩種可能:一種是團隊單純沒有把文檔整理完善,屬於治理成熟度不足的問題;另一種則是團隊刻意保持模糊,理由可能是擔心公開細節會被有心人士拿來設計針對性的社交工程攻擊。但從讀者風險評估的角度來看,這兩種情況的結果是一樣的——你無法驗證這組簽署人實際能做到什麼程度的操作,也就無法評估萬一簽署人被騙,你的資金曝險有多大。
值得留意的是,Drift Protocol 事件裡,攻擊者正是利用了社交工程去誘導簽署人,這代表「不公開細節以防被針對性攻擊」這個防禦邏輯本身有其侷限——攻擊者不需要知道權限清單的細節,只需要知道有哪些人是簽署人、並針對這些人下手即可。
如果一個協議的 Security Council 時間鎖只有 24 小時,這樣夠不夠?
這個問題沒有單一正確答案,取決於幾個變數:第一,這 24 小時的緩衝期,實際上有沒有機制主動通知社群與監控單位(例如自動化的鏈上警報系統),還是完全仰賴用戶自己盯著治理提案頁面;第二,這個協議的監控系統反應速度有多快,如果協議本身有專業的鏈上監控團隊或合作的安全公司,24 小時可能足夠;如果完全依賴社群自發監督,24 小時可能不夠讓足夠多人注意到並形成有效反制。
更重要的是,時間鎖天數本身不是越長越好——時間鎖太長會拖慢協議應對真正緊急狀況(例如正在進行中的攻擊)的能力,這也是為什麼多數協議會把「一般治理提案」跟「緊急操作」設計成不同的時間鎖長度,甚至讓緊急操作完全繞過時間鎖。這正是 Drift 事件裡最關鍵的設計缺陷所在:緊急路徑被設計成完全沒有時間鎖,等於把「效率」跟「可攔截性」的取捨,完全押注在效率這一邊。
除了時間鎖跟簽署門檻,還有沒有其他方式可以進一步降低 Security Council 被濫用的風險?
有幾個實務上會被採用的補充機制:第一是「操作範圍白名單」,明確限定 Security Council 只能執行預先定義好的特定操作類型(例如只能暫停合約、不能修改資產白名單),而不是給予無限制的萬用權限;第二是「速率限制」,即使是合法的緊急操作,也對單次可調整的參數幅度或可提領的資金上限設置硬性限制,避免單一筆交易造成災難性損失;第三是「多層次時間鎖」,針對不同風險等級的操作設置不同長度的時間鎖,而不是一刀切用同一個天數。
查核這些機制是否存在,同樣可以從協議的治理文檔或合約程式碼裡尋找——如果合約程式碼裡完全沒有針對 Security Council 操作設置任何上限或範圍限制,代表這組簽署人理論上擁有的權限範圍可能遠比文檔描述的更廣。
如果我發現某個協議的 Security Council 配置有問題(例如門檻過低或沒有時間鎖),但我已經把資金放在裡面了,該怎麼辦?
第一步是評估實際曝險程度:查看該協議目前的 TVL 規模、你的資金占比、以及 Security Council 權限是否直接觸及你所使用的那個產品模組(例如你只用借貸池,Security Council 的權限如果只涉及另一個衍生品模組,直接曝險相對較低)。第二步是持續關注該協議的治理討論區或 Discord,特別留意是否有社群成員已經提出類似疑慮、團隊是否有回應改善計畫。
如果評估後認為風險超出你能接受的範圍,逐步減少曝險(而非恐慌性全部撤出,以免自己承受不必要的滑點或手續費損失)是比較穩健的做法。這類治理配置問題通常不會無預警爆發,多半有跡可循——例如 Drift 案例裡,門檻調整與時間鎖移除是在攻擊發生前幾天就已經在鏈上發生的公開紀錄,只是當時沒有引起足夠關注。
越來越多協議設置了所謂的「Security Council」——一組被授權可以在緊急狀況下快速行動的多簽簽署人,用來處理暫停合約、調整風險參數、甚至升級合約邏輯這類需要迅速反應的操作。這個設計立意良好:一般治理投票往往需要數天甚至數週才能通過,遇到正在進行中的攻擊時緩不濟急,Security Council 提供了一條更快的應變路徑。但這個「快」本身,如果沒有搭配足夠的制衡機制,反而可能變成攻擊者的捷徑,而不是保護傘。
不同協議賦予 Security Council 的權限範圍差異很大,常見的授權包括:暫停或恢復特定合約功能、調整清算相關參數、更新價格預言機的白名單資產、甚至直接執行合約升級。權限範圍越大,這組簽署人一旦被攻破或被誘導做出錯誤簽署,能造成的損害就越大。多數協議會在治理文檔或 GitHub 儲存庫的 governance 或 security 資料夾裡,明確列出 Security Council 的具體權限清單——如果你找不到這份清單,這本身就是一個值得警覺的訊號。
簽署門檻(例如 3-of-5、2-of-5)決定了需要多少位簽署人同意才能執行一筆交易。門檻本身沒有絕對的安全或危險,但有兩個原則值得留意:第一,門檻是否跟該協議鎖倉的資金規模相匹配——管理數億美元資產的協議,若簽署門檻低到 2-of-5 這種只需拉攏兩人就能通過的程度,風險明顯偏高;第二,比門檻數字本身更重要的是簽署人身份的獨立性——如果五位簽署人裡有三位是同一家機構的員工,門檻寫著 3-of-5,實際安全性可能只等同於單一機構的內控水準。查核方式:多數協議會在文檔或區塊鏈瀏覽器上公開多簽地址,透過 Etherscan 或 Solscan 等工具可以查到該多簽合約的簽署人清單與歷史簽署記錄,交叉比對這些地址是否關聯到可辨識的獨立實體。
時間鎖規定一筆交易在提案通過後,必須等待一段固定時間才能真正執行,這段等待期給了社群與監控系統機會,去審查這筆交易是否異常、並在必要時發出警告或啟動反制。查核時間鎖配置需要確認三件事:第一,這個時間鎖是否適用於所有 Security Council 操作,還是只適用於一般治理提案,緊急操作被排除在外;第二,時間鎖的天數是多少,業界常見範圍在 24 小時到 7 天之間,天數越短,社群能反應的窗口就越窄;第三,這個時間鎖設定是否曾經被臨時調整或移除過——查看協議的治理提案歷史或合約升級紀錄,搜尋「timelock」「delay」「security council」等關鍵字,確認是否有任何一次治理投票是專門用來縮短或取消時間鎖,這類變更往往是風險升高的明確訊號,尤其如果變更發生的時間點接近攻擊事件,更值得深究背後原因。
實際操作上,可以照以下順序快速檢查:第一步,在協議官方文檔或 GitHub 搜尋「Security Council」或「Emergency Multisig」,確認其權限範圍清單是否公開;第二步,找到多簽合約地址,用區塊鏈瀏覽器查看簽署門檻與簽署人清單,評估簽署人身份是否具備獨立性;第三步,確認是否有時間鎖搭配 Security Council 的操作,以及時間鎖的具體天數;第四步,搜尋該協議的治理歷史,確認時間鎖設定是否曾被調整,特別留意調整時間點是否早於任何已知的安全事件。如果這四步裡有任何一步找不到公開資訊,代表這個協議的治理透明度本身就是一個需要納入風險評估的因素。
你在選擇要不要把資金放進一個協議時,通常會看 TVL、APY、審計報告,但這些指標都不會告訴你「如果 Security Council 的簽署人被騙了,你的資金有沒有緩衝時間可以被搶救」。一個協議即使程式碼完美無瑕、審計全部通過,只要 Security Council 的簽署門檻過低、簽署人不夠獨立、或時間鎖被移除,治理層面依然可能是最大的單一風險來源。花三分鐘做這個檢查,能讓你在比較不同協議時,多一個審計報告不會告訴你的判斷依據。