Humanity Protocol 事件裡,攻擊者取得的是私鑰本身,還是某種能繞過多簽驗證的漏洞?這個區別重要嗎?
這個區別非常關鍵。根據事後公開的細節,攻擊者取得的是完整、真實的私鑰本身——不是透過任何密碼學漏洞、也不是繞過了多簽合約的驗證邏輯,而是直接從被入侵的裝置裡,拿到了三把真正合法的簽名金鑰。這代表從區塊鏈與智能合約的角度來看,這整起事件裡發生的每一筆交易,簽名數量都確實達到門檻、驗證都完全通過,沒有任何一個環節被「駭」——合約程式碼本身完全正確地執行了它被要求做的事。
這也是為什麼 Humanity Protocol 技術長會把這起事件定性為「操作面失誤」而非「合約漏洞」:如果問題出在合約邏輯本身,解法是修補程式碼;但這裡的問題出在金鑰的實體保管方式,這代表就算把整份智能合約重新審計一百遍,也不會發現這個弱點,因為弱點根本不在合約裡,而在合約之外、關於「這些金鑰實際上放在哪裡」這個從未被寫進程式碼、卻同樣攸關資產安全的實務問題。
如果多簽的持有人基於工作方便,本來就傾向把金鑰集中管理,這種「便利性」跟「安全性」之間的拉扯,業界有沒有具體的解決方式,而不只是口頭呼籲要分散?
業界目前比較成熟的做法,是把「地理與裝置分散」直接寫進正式的營運政策裡,而不是依賴個別簽名者自主決定——例如明確規定每一把金鑰必須使用不同品牌、不同型號的硬體裝置,避免單一廠商或單一產品線的漏洞同時影響所有金鑰;同時要求金鑰持有人分散在不同的實體地點,甚至跨越不同的司法管轄區,讓單一地區的實體威脅(例如辦公室遭入侵)無法一次性影響所有金鑰。部分機構級保管服務商,會透過正式的「金鑰產生儀式」流程來落實這個原則,在金鑰產生的當下就要求多位獲授權人員同時在場、依照既定腳本操作,確保後續分散保管的規則從一開始就被確實執行,而不是等到金鑰生成之後才臨時補救。
除了架構層面的分散,另一個經常被建議的做法,是針對簽名門檻與資產規模做動態調整——例如管理日常小額支出的多簽帳戶,門檻可以設得寬鬆一些以維持營運效率;但管理跨鏈橋、代幣鑄造權限這類一旦被攻破就會造成災難性後果的關鍵基礎設施,門檻應該設得更嚴格,並額外搭配時間鎖機制,讓任何一筆重大操作,即使核准門檻被達成,也還有一段緩衝期讓其他人有機會發現異常並喊停。
Humanity Protocol 這起事件跟本站已經介紹過的 Bybit 事件,同樣都牽涉多簽錢包出問題,兩者的根本原因有什麼不同?
這兩起事件雖然都涉及多簽錢包,但攻擊的層次完全不同,值得仔細區分。Bybit 事件裡,簽名者手上的每一把金鑰本身都保管得當、彼此獨立,多簽架構在金鑰分布這一層是健全的——攻擊者真正繞過的,是簽名者用來「看懂」自己正在簽署什麼內容的介面軟體,讓簽名者在畫面顯示正常交易的假象下,實際簽署了一筆惡意交易,屬於介面層遭到竄改的供應鏈攻擊。Humanity Protocol 事件則完全不同:介面顯示的內容跟簽名者實際簽署的內容並沒有落差,簽名者(如果真的有多位獨立簽名者親自參與這次操作)看到的、簽的,就是攻擊者想要的那筆交易本身——問題發生在更前面的環節,也就是金鑰的實體儲存位置,從一開始就沒有落實「地理與裝置分散」這個多簽架構的基本前提。
把這兩起案例放在一起看,能幫助建立一個更完整的風險地圖:多簽錢包至少存在兩個完全不同、需要分別防範的攻擊面——一個是「金鑰本身有沒有被真正分散保管」,Humanity Protocol 示範了這一層的失守;另一個是「簽名當下看到的內容是不是真的」,Bybit 示範了這一層的失守。一個健全的多簽架構,需要同時通過這兩層檢驗,只顧好其中一層,並不足以構成真正的安全。
我不是機構、也沒有管理大型協議,只是用多簽錢包保護自己的個人資產,這起事件對我有什麼實際參考價值?
個人用戶設定多簽錢包時,最容易複製 Humanity Protocol 這起事件裡犯下的錯誤,通常不是因為疏忽,而是因為「方便」——例如把兩支簽名用的硬體錢包都放在同一個抽屜、同一個保險箱,理由是這樣比較好整理,或者兩支簽名裝置都是同一個廠牌、同一個型號,理由是操作介面比較熟悉,甚至把其中一支簽名裝置的備援助記詞,跟另一支的助記詞寫在同一張紙上「方便一起收好」——這些做法在日常操作上確實比較省事,但都精準複製了 Humanity Protocol 事件裡「金鑰集中」的核心弱點:只要這個共同的儲存地點或裝置類型出事,原本應該互相獨立的多道防線,會一起被攻破。
具體可以做的調整包括:至少讓其中一支簽名裝置採用跟其他裝置不同品牌的硬體錢包,避免單一廠牌的韌體漏洞同時影響全部金鑰;把不同簽名裝置實際存放在不同的實體地點,例如一支放在自家保險箱、另一支放在銀行保管箱或值得信任的親友處,而不是為了「找起來方便」全部堆在同一個地方;以及定期(例如每半年)實際檢查一次每支裝置是否還能正常運作、備援資訊是否還完整可用,而不是設定完成後就再也沒有驗證過。這些調整不需要額外的技術能力,純粹是儲存習慣上的改變,卻能真正讓多簽架構發揮它原本被設計出來的保護效果。
2026 年 6 月 8 日晚間,去中心化身分驗證專案 Humanity Protocol 遭遇一起橫跨以太坊與幣安智能鏈的協同攻擊,總計損失超過 3600 萬美元的 H 代幣,該協議的原生代幣價格在約 12 小時內崩跌超過 80%。這起事件最耐人尋味的地方,不在於損失金額,而在於根本原因——按照這個站點已經介紹過的多重簽名錢包設計邏輯,Humanity Protocol 的跨鏈橋管理權限,理論上需要以太坊端 6 把金鑰中的 3 把、幣安智能鏈端 5 把金鑰中的 3 把才能核准重大操作,這正是多簽架構被設計出來,用來防止單一裝置或單一個人就能擅自動用資產的核心保障。但攻擊者最終只需要入侵一台裝置,就同時跨過了這兩條防線。
根據 Humanity Protocol 創辦人 Terence Kwok 事後公開的說明,攻擊起點是一名員工的筆記型電腦遭到入侵——問題在於,這台筆電上同時存放著控制以太坊端 Hyperlane 跨鏈橋管理權限的 Gnosis Safe 多簽帳戶裡,6 把金鑰中的 3 把。攻擊者取得這台裝置的存取權限後,等於一次性拿到了跨過核准門檻所需要的全部金鑰,接著利用這個權限,把橋接合約的管理權限(ProxyAdmin)轉移到自己控制的錢包,再把橋接合約升級成惡意版本,單筆交易就轉走約 1.412 億枚 H 代幣。攻擊者在幣安智能鏈端複製了完全相同的手法——5 把金鑰中的 3 把同樣存放在這台裝置上——奪取控制權後,部署了一個具備無限鑄幣功能的惡意合約,分兩筆交易額外鑄造了 2 億枚 H 代幣。負責處理這起事件的資安公司 Halborn 與該協議自己發布的事後檢討報告,最終統計出這起事件牽涉的代幣總影響規模已上修至約 4.47 億枚。
多簽架構的核心承諾,是把單一裝置或單一個人的風險,分散到多個獨立的裝置與人員身上——但這個承諾能不能真正兌現,完全取決於「獨立」這兩個字有沒有被真正落實。如果多把金鑰的持有人,基於工作方便或流程疏忽,把好幾把金鑰集中存放在同一個裝置、同一個地理位置,或者乾脆由同一個人保管,這個多簽架構在實質上就已經退化成單簽——差別只是多了幾個簽署步驟做心理安慰,一旦這個共通的弱點被攻破,原本應該互相獨立的多道防線,會在同一時間一起失守。Humanity Protocol 的技術長 Meir Dolev 在事後也直接把這起事件定性為「一次操作面的失誤,而不是智能合約層面的漏洞」——合約程式碼完全按照設計正確執行,問題出在金鑰的實際存放方式,從一開始就沒有落實多簽架構原本要求的地理與裝置分散原則。
如果你正在參與任何採用多簽治理的 DAO、協議、或是自己為了保護較大金額資產而設定了多簽錢包,這起事件提供了一個具體、可操作的檢查清單:先確認每一位簽名者實際使用的裝置、地理位置是否真的彼此獨立,而不是為了流程方便,把多把金鑰的實體儲存或簽署裝置集中在同一處;其次,值得建立定期的「金鑰分布稽核」習慣,定期確認簽名者名單裡有沒有人因為職務調整、離職,導致原本設計的地理或人員分散結構出現漏洞;最後,對於管理大型資產或關鍵基礎設施(例如跨鏈橋、代幣合約升級權限)的多簽帳戶,額外加上時間鎖機制,能在惡意升級被核准之後,爭取一段緩衝時間讓其他人發現異常並介入,而不是讓惡意交易一經核准就立即生效。多簽本身從來不是萬能保障,它只是把「攻擊者需要攻破的目標數量」從一個變成多個——但如果這些目標其實都擠在同一台筆電裡,這個數字從頭到尾都沒有真正變多過。