Back to Blog

Drift Protocol 事件:利用持久隨機數(Durable Nonce)漏洞進行的多重簽名治理攻擊

Code Auditing
April 3, 2026
9 min read
Key Insights

2026 年 4 月 1 日(UTC),Solana 上的 Drift Protocol 遭到攻擊。攻擊者結合了多重簽名(multisig)核准操控與持久性隨機數(durable nonce)漏洞——這是一種允許預簽名核准可無限期有效的 Solana 交易機制——造成了總計約 2.853 億美元的損失 [1, 2]。經過數週的鏈上部署,攻擊者透過網路釣魚或誤導性的簽名請求,誘騙了五位安全委員會(Security Council)多重簽名簽署者中的兩位預簽署了惡意的治理交易。這些已簽署的指令被保留,直到攻擊者選擇的時機,隨後在兩筆快速執行的交易中完成了管理員權限奪取與轉移。獲得完整管理權限後,攻擊者引入了一種惡意抵押資產(CVT),人為抬高其預言機價格,放寬了提款保護限制,並透過協議的借貸路徑抽走了高價值資產。

截至撰寫本文時,Drift 已發布初步聲明 [1],但尚未發布完整的事故調查報告。以下分析基於公開的鏈上數據、Drift 的官方時間表以及獨立研究 [2]。我們首先檢視「持久性隨機數」如何從根本上改變多重簽名治理的安全假設,接著重現為期數週的攻擊部署、治理接管執行過程以及資金提取步驟,最後總結針對此類風險的防禦心得。

Web3 最佳安全審計服務

在發布前驗證設計、程式碼與業務邏輯

背景

Drift Protocol 與 Squads 多重簽名

Drift Protocol 是一個運行在 Solana 上的 DeFi 協議,支援保證金交易、借貸、現貨市場與衍生品。其高權限操作(包括管理員變更、市場創建、預言機配置、風險參數更新與提款限額調整)由多重簽名而非單一私鑰進行管理。

Drift 使用 Squads 多重簽名框架,這是 Solana 上常見的鏈上治理系統。在 Squads 中,特權操作被封裝為提案下的交易。一旦足夠的成員核准該提案,儲存的指令即可透過 vaultTransactionExecute 原子化執行。攻擊發生時,Drift 安全委員會採用 2-of-5(五取二)的閾值配置且無時間鎖(timelock),這意味著五位簽署者中的任意兩位即可授權管理操作並立即生效。該系統的安全性不僅取決於簽名金鑰的保管,還取決於整個核准管道的完整性:創建了什麼交易、簽署者認為他們在核准什麼,以及最終執行的指令是否與核准時的背景相符。

持久性隨機數帳戶(Durable Nonce Accounts)

持久性隨機數帳戶為交易執行引入了一個關鍵的時間維度 [3]。在正常情況下,Solana 交易依賴於近期的區塊雜湊(blockhash),若未及時廣播,簽名後會迅速過期。持久性隨機數將這種短期的區塊雜湊替換為儲存在專用帳戶中的隨機數,使已簽署的交易在隨機數被更新前可無限期有效。此功能對於離線簽名或延遲提交等合法案例很有用,但它也構成了重要的攻擊原語:它將「交易何時簽署」與「交易何時在鏈上執行」分開了。關鍵在於,一旦簽署者核准了持久性隨機數交易,除非隨機數授權人手動更新該隨機數帳戶,否則他們無法撤銷簽名。

這種分離對多重簽名安全有微妙但根本性的影響。在正常的基於區塊雜湊的交易中,短暫的過期窗口起到了一種隱含的安全層作用:簽署者的授權要麼及時執行,要麼安全過期。這種時間限制意味著即使簽署者被誘騙核准了惡意交易,攻擊者也必須在極短的窗口內廣播,從而限制了協調多步驟攻擊的空間。持久性隨機數完全消除了這種限制。由於簽名無限期有效,單次簽名錯誤的代價發生了根本性變化:被誘騙核准的交易不再在幾分鐘內過期,而是可以在沒有自動時間限制的情況下隨時執行,賦予了攻擊者對執行時機的完全控制權,並能隨意協調後續步驟。

攻擊分析

此次攻擊分為三個階段。在**攻擊前部署(Pre-Attack Staging)階段,攻擊者進行了為期數週的操作來製造虛假抵押資產,並透過誤導性簽名請求獲取治理權限。在治理接管(Governance Takeover)階段,兩筆預簽署的持久性隨機數交易被連續快速提交,奪取了管理控制權。在資金提取(Fund Extraction)**階段,攻擊者操縱協議參數,透過協議的借貸路徑抽走了真實資產。下圖說明了橫跨三個階段的攻擊執行流程(不包含「攻擊前部署」中詳述的並行 CVT 製造路徑)。

攻擊前部署

此次攻擊並非單一機會主義式的打擊,而是一次為期數週、同步執行兩條預備路徑的行動。第一條路徑專注於製造一種看似合理的抵押資產。3 月 11 日,攻擊者從 Tornado Cash 提取了 10 ETH,並利用這些資金部署了 CarbonVote Token (CVT),鑄造了 7.5 億枚。隨後的幾週內,攻擊者在 Raydium 上注入少量流動性,並透過洗售(wash trading)製造了接近 1 美元的價格紀錄,使 CVT 在表面上看起來具有市場合理性 [4]。

第二條路徑瞄準治理權限。根據 Drift 的官方時間表 [1],3 月 23 日創建了四個持久性隨機數帳戶:兩個鏈接至 Drift 安全委員會多重簽名成員,另外兩個由攻擊者控制。這表示當時已有五位簽署者中的兩位簽署了與持久性隨機數帳戶相關的交易,使攻擊者達到了所需的 2-of-5 閾值。

3 月 27 日,由於委員會成員變更,Drift 執行了一次計劃中的安全委員會遷移。這次遷移使舊配置下收集的簽名失效。然而,到了 3 月 30 日,一個新的持久性隨機數帳戶出現並與更新後的多重簽名成員連結,表示攻擊者在新規配置下再次獲得了所需的核准閾值。

這一序列表明攻擊者一直在主動監控鏈上治理變化,並即時適應。簽名收集並非單一的釣魚行動,而是一場持續運行的行動,甚至在準備期間的多重簽名重組中仍未中斷。遷移過程本身可能無意中幫助了攻擊者:在治理過渡期間,簽署者更容易遇到並處理管理簽名請求,這創造了一個自然的社交工程窗口。

4 月 1 日,攻擊者選擇了精確的執行時機。Drift 首先從保險基金中執行了一次合法的測試提款。約一分鐘後,攻擊者提交了預簽署的攻擊交易。這種時機選擇暗示攻擊者正在即時監控鏈上活動,並等待一次成功的合法操作,以確認系統處於正常運作狀態後才發動攻擊。

治理接管

4 月 1 日大約 16:05 (UTC),攻擊者在相隔四個區塊的時間內提交了兩筆預簽署的持久性隨機數交易。第一筆交易 (2HvMSg...2C4H) 創建並核准了惡意的管理員轉移提案。第二筆交易 (4BKBmA...RsN1) 隨即核准並執行了該提案,首先以 AdvanceNonceAccount 啟動儲存的隨機數,接著透過 proposalApprovevaultTransactionExecute,最終呼叫 UpdateAdmin 將行政控制權移轉至攻擊者控制的位址。

此執行流程突顯了攻擊的關鍵:決定性的授權並非發生在執行時,而是在先前的簽名階段。鏈上交易僅僅是實現了早已被授予的權限。

資金提取

獲得行政控制權後,攻擊者在提取資金前採取了三個預備步驟:為 CVT 建立惡意抵押市場、切換至攻擊者可控的預言機以抬高價格、並放寬提款保護以實現大規模提取。

第一步是為 CVT 創建惡意抵押市場。該市場的問題不僅在於它是新創建的,而且在於它缺乏真實流動性,同時被分配了過於寬鬆的風險參數。一旦這種毫無贖回價值的資產被接受並被賦予高抵押權重,即可被用於創造不存在的借貸能力。

第二步是切換至攻擊者控制的預言機並抬高價格。擁有管理權限後,此步驟無需任何額外檢查即可通過。一旦預言機處於攻擊者控制之下,CVT 的帳面價格即可被隨意抬高,使幾乎沒有市場價值的資產在協議內看起來像高價值抵押品。

第三步是放寬提款防護與熔斷機制(circuit breakers)。即使有了被高估的抵押品價格,主要資產市場的提款限額本會限制大規模提取。這些安全哨兵必須在虛假抵押品變得可轉換為可提取的真實資產前被提升或移除。

完成這些步驟後,攻擊者將大量高估的 CVT 存入協議,隨後在大約 12 分鐘內執行了 31 次快速提款,抽走了包括 USDCJLPSOLcbBTCUSDTwETHdSOLWBTCJTOFARTCOIN 在內的真實資產。這完成了利潤提取循環:獲得治理控制權、修改參數、將無價值資產封裝為高價值抵押品,並透過協議既有的借貸與提款路徑轉移資產。

截至撰寫本文時,總損失為 285,279,417.69 美元,計算依據為攻擊者的提款帳戶 (HkGz4K...pZES)。

心得總結

  • 多重簽名安全不僅止於金鑰保管。 僅僅保護私鑰和強制執行簽名閾值是不夠的。整個授權管道,包括交易構建、顯示與簽署者的解讀過程,都必須值得信賴。本次事件中,簽署者的金鑰並未洩漏,但審核流程被操控,從而授權了非預期的操作。

  • 時間鎖對於高權限操作至關重要。 所有權變更等行政操作不應立即執行。Drift 的零時間鎖設定意味著一旦預簽署的交易被觸發,管理權限在幾分鐘內就被轉移並濫用,沒有留下偵測或干預的機會。時間鎖本可提供一個回應窗口,以識別並阻止惡意轉移。

  • 延遲執行機制在治理環境中需要額外的保護措施。 持久性隨機數將簽署與執行解耦,移除了簽署者所依賴的隱含時間保障。在治理系統中,此類機制應配合更高的簽名閾值、有時效性或可撤銷的核准機制,以及防止已簽署交易無限期有效的限制措施。

結論

本次事件並非由智慧合約漏洞或金鑰外洩引起,而是多重簽名授權流程的崩潰與基於持久性隨機數的延遲執行結合所致。攻擊者透過誘導簽署從五位安全委員會成員中的兩位手中預先收集了有效的多重簽名核准,利用持久性隨機數交易將其保留,並在隨後執行以獲得管理控制權。隨後的資金提取是治理權限被破壞的直接結果,通過協議內合法的操作路徑進行。減輕此類風險需要保護整個授權管道,對高權限操作強制執行時間鎖,並為延遲執行機制實施額外的安全維護措施。將這些措施與能夠即時偵測異常治理活動的鏈上監控系統相結合,才能針對此類治理層面的攻擊形成全面的安全防禦體系。

參考資料

[1] DriftProtocol, "Official statement": https://x.com/DriftProtocol/status/2039564437795836039

[2] Phalcon (BlockSec), "Drift Protocol Exploit Analysis": https://x.com/Phalcon_xyz/status/2039602380074016909

[3] Solana, "Introduction to Durable Nonces": https://solana.com/developers/guides/advanced/introduction-to-durable-nonces

[4] CoinDesk, "How Drift attackers drained more than $270 million using a Solana feature designed for convenience": https://www.coindesk.com/tech/2026/04/02/how-a-solana-feature-designed-for-convenience-let-an-attacker-drain-usd270-million-from-drift


開始使用 Phalcon Security

偵測各種威脅,針對重要事項發出警報,並阻斷攻擊。

立即免費試用

關於 BlockSec

BlockSec 是一家全堆疊區塊鏈安全與加密合規供應商。我們構建的產品和服務協助客戶在協議與平台的完整生命週期中執行程式碼審計(包括智慧合約、區塊鏈與錢包)、即時攔截攻擊、分析事故、追蹤非法資金,並滿足 AML/CFT 合規要求。

BlockSec 已在各大著名學術會議上發表多篇區塊鏈安全論文,通報了多個 DeFi 應用的零日漏洞,攔截了多次攻擊並挽救了超過 2,000 萬美元的資金,為數十億美元的加密資產提供了安全保障。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit