「PAK 機制出問題」跟「多簽金鑰被偷」,在鏈上留下的痕跡有什麼不同,一般人有辦法從交易紀錄本身分辨出來嗎?
如果是金鑰被偷,鏈上通常會出現「異常的簽署模式」——例如平常需要多名不同簽署者的簽名才能通過的交易,突然由少數幾個(甚至理論上超出正常流程)簽名就完成授權,或者簽署行為的時間模式出現異常聚集,這類異常通常需要交叉比對簽署者身分與歷史簽署習慣才能發現。而 PAK 機制的問題則完全不同:從交易格式本身來看,這筆退出交易在協議層面上是「合法通過驗證」的——它符合協議規定的授權格式要求,所以鏈上瀏覽器不會把它標記成任何形式的異常或無效交易,唯一能看出問題的線索,是「這筆退出請求的來源與正當性,實際上不應該被授權」,而這一層判斷,需要對照 Liquid 協議原始碼裡 PAK 驗證邏輯的設計意圖才能發現,單純看交易本身的欄位資料是看不出來的。
這也是為什麼 Liquid 官方需要花時間釐清「金鑰本身有沒有被動」跟「授權邏輯本身有沒有漏洞」這兩個問題,並且明確對外聲明目前傾向於後者——因為前者只要看簽署模式就能相對快速排查,後者則需要逐行檢視授權邏輯的程式碼,才能確認漏洞具體出在哪裡。
如果「白帽」聲稱最終確實把錢還回來,這起事件是不是就可以被歸類成一次成功的漏洞回報,而不是一起真正的駭客事件?
即使最終資金全數歸還,這兩者之間仍然有一個關鍵區別——真正的白帽揭露流程,通常是研究者發現漏洞後,先私下(或透過協議方認可的漏洞懸賞計畫)通報,讓協議方有機會在漏洞被公開利用前修補,資金從未真正離開受保護的環境;而這起事件的實際發生順序是「資金先被轉出、幾乎清空整個儲備,之後才在鏈上留言聲稱善意」,這個順序本身就跟標準白帽揭露流程有本質差異——如果真的是出於善意示警,理論上不需要先把 95% 的儲備轉走才能證明漏洞存在,只轉出極小一部分、或直接私下通報,同樣能達到警示效果,卻不會造成交易所必須暫停服務、機構信任被迫重新評估的連鎖反應。
這也是為什麼即使資金最終歸還,多數審慎的評論(包括 Bitcoin Magazine、News.Bitcoin.com 等媒體)仍然對「白帽」這個標籤保持懷疑——資金全額歸還,只能證明這個人「選擇」把錢還回去,不能反過來證明他們「從一開始就沒有惡意」或「行為方式符合業界公認的負責任揭露規範」。這兩者是不同層次的判斷,資金有沒有還,只回答了其中一個,不代表另一個問題也自動獲得解答。
這起事件裡「聯盟節點增加到 87 個成員組織,但只有 15 個輪值簽署者實際掌握簽署權」,這種設計為什麼會這樣安排,是不是代表其餘 72 個成員形同虛設?
這種分層設計本身不算不合理,是多數聯盟式治理系統常見的權衡:讓所有成員組織都直接參與每一次日常簽署操作,會讓交易確認的協調成本急遽上升——每多一個參與簽署的節點,就多一分溝通延遲、多一個潛在的技術故障點,如果要求 87 個組織全部即時線上、每次交易都要協調到位,日常營運效率會嚴重受損,這正是 Liquid 標榜的「快速結算」優勢會被自己的治理架構拖垮。因此把日常簽署權集中在一組較小的輪值節點(15 個),其餘成員組織則透過某種治理機制(例如定期輪替、共同決策節點名單)參與整體聯盟的長期治理決策,是效率與去中心化之間常見的折衷方案。
但這次事件確實凸顯了這種分層設計的代價:一般使用者原本可能以為「87 個成員組織」代表資金安全性由 87 方共同背書,但實際上日常資金流動的把關者,只有負責輪值的這 15 個節點——這個落差,正是本文反覆強調的「你以為的安全層級」跟「實際運作的安全層級」之間,經常存在需要額外確認的距離。這不代表 87 個成員的存在毫無意義(它們仍然參與治理層級的監督與決策),但如果只看「聯盟成員數量」來評估安全性,會漏掉「實際簽署權集中在多少人手上」這個更關鍵的問題。
如果我不是透過交易所持有 L-BTC,而是自己直接把比特幣鎖進 Liquid 聯盟錢包,這起事件對我的曝險程度會不會不一樣?
會不一樣,但方向不一定是「風險比較低」。透過交易所間接持有 L-BTC 的使用者,面對的是交易所自己決定的暫停政策跟儲備擔保安排,交易所有機會(雖然不保證)動用自身的其他儲備來暫時補足使用者的贖回需求;但如果你是直接自行把比特幣鎖進聯盟錢包、拿到對應的 L-BTC,你承擔的是聯盟儲備本身的信用風險——如果這次流出的資金最終無法追回,聯盟錢包背後真正能兌付的比特幣數量已經大幅減少,你手上的 L-BTC 在理論上依然「應該」能 1:1 兌回比特幣,但實際能不能兌回,取決於聯盟是否有其他方式補足這個缺口(例如成員組織共同注資、或成功協商拿回失竊資金),這個不確定性是直接持有者無法透過中介方的儲備緩衝來分散的。
這也是為什麼「直接跟側鏈互動」跟「透過交易所間接接觸側鏈資產」,兩者的風險結構本質上不同——後者多了一層交易所自身的資產負債表作為緩衝,前者則是直接暴露在底層協議與聯盟治理的風險之下,沒有額外的緩衝層。如果你屬於直接持有 L-BTC 的族群,這起事件更需要你直接關注 Blockstream 官方後續公布的技術復盤報告與資金追蹤進度,而不是等待某個交易所的公告——因為你承擔的風險來源,本來就不是交易所這一層。
9 月 6 日,比特幣側鏈 Liquid Network 發生一起讓整個「聯盟式多簽」信任模型受到質疑的事件——約 3,996 顆比特幣、價值約 3.2 億美元,從支撐 Liquid Network 儲備的聯盟錢包中被轉出,一筆交易就拿走了該儲備約 95% 的資金。這筆提款落在比特幣區塊 965,783、UTC 時間 14:28:56,資金流向一個單一的 bech32 地址。更值得留意的是,這起事件的攻擊路徑,並沒有直接觸碰到理論上該相對安全的多簽門檻本身。
Liquid Network 的安全模型建立在一組「功能節點」(functionary)聯盟之上:目前有 15 名輪值簽署者共同操作區塊簽署基礎設施,而動用儲備資金需要達到 11 之中 5 個節點停止運作,門檻設計的初衷,正是要讓單一簽署者或單一被竊私鑰不足以掏空資金池。但這次事件的資金並非透過多簽門檻本身被繞過,而是透過「錨定退出授權金鑰」(Peg-out Authorization Key,簡稱 PAK)機制流出——這是 Liquid 用來授權資金從側鏈退回比特幣主鏈的工具。Liquid 官方聲明表示,目前沒有證據顯示 PAK 本身或聯盟其他簽署金鑰遭到直接入侵,這個區分至關重要:被竊的金鑰是一次性事件,但授權邏輯本身的設計缺陷,需要硬分叉或協議層修補才能徹底解決。換句話說,11-of-15 這道防線防住了「有人偷到一把鑰匙」,卻防不住「授權流程本身讓某個請求繞過了鑰匙該起的作用」。
追蹤這筆交易的鏈上分析師(包含化名 ErgoBTC 的研究者)在資金轉出後幾分鐘內就標記出這筆異常提款。持有資金的一方隨後在鏈上留下訊息,自稱是「白帽」,並表示「請先修好漏洞。目前這條鏈風險很高,請確保每個節點都已修補。修補確認後,我們會安全地把錢轉回去」。Blockstream 官方對此保持謹慎,公開用語僅稱對方為「聲稱的白帽」,而非直接確認這個身分。截至事件發生隔天上午,沒有任何獨立驗證的資金歸還紀錄,也沒有公開的抓漏獎金協議——在比特幣真正轉回聯盟錢包、或雙方協議公開發布之前,「白帽」目前仍然只是一個聲稱,不是已經確認的事實。
事件發生期間,比特幣價格穩定維持在 8 萬美元左右,市場明確把這起事件解讀成「側鏈層級的問題」,而不是比特幣協議本身的問題——比特幣本身超過 15 年不曾在雙重支付或共識層級被攻破的紀錄完好無損,同一個 24 小時窗口裡,約 1.6 兆美元的比特幣市值持續受到 proof-of-work 共識保護,沒有中斷。但對機構跟交易所而言,這起事件帶來的衝擊會更持久:Liquid 過去被視為比包裝代幣橋接更保守、更受信任的方案(畢竟由深耕比特幣基礎設施十多年的 Blockstream 建構),這起事件是這套特定設計首次在規模上失守,且失守的方式,剛好不是 11-of-5 門檻原本設計要防範的那種攻擊——這正是整個產業最不舒服的一課:門檻簽章解決的是「一把鑰匙被偷」的問題,不會自動解決「建立在健全多簽之上的授權邏輯本身有漏洞」這個問題。
如果你透過交易所間接持有 L-BTC(Liquid 側鏈上代表比特幣的代幣),你的贖回保證目前正處於不確定狀態——聯盟錢包損失了將近 95% 的儲備,多家交易所已暫停 L-BTC 的存提功能,直到情況進一步釐清。比較務實的做法,不是假設整個生態系統一律暫停,而是直接查看你所使用的那個交易所針對這起事件發布的公告——不同平台各自決定暫停時程與儲備擔保方式,沒有全行業統一的處理標準。更長遠來看,這起事件也提供了一個具體案例,示範「多簽門檻」與「授權邏輯」是兩個需要分開評估的風險層次:下次評估任何跨鏈橋接或側鏈方案時,除了問「多簽門檻設得夠不夠高」,也值得多問一句「誰能繞過這道門檻、透過什麼機制」。