2026年4月1日(UTC),Solana上的Drift Protocol通过多重签名审批操纵和持久性nonce利用相结合的协同攻击被攻破。持久性nonce是一种Solana交易机制,允许预签名审批无限期保持有效,导致估计损失约2.853亿美元[1, 2]。经过数周的链上准备,攻击者通过网络钓鱼或误导性签名请求,诱使五名安全委员会多重签名签署者中的两人预先签署恶意治理交易。签名的指令被保留,直到攻击者选择的时机,然后通过两笔快速交易执行,以完成管理员接管并转移管理控制权。凭借完整的管理员权限,攻击者引入了一个恶意的抵押品资产(CVT),夸大了其预言机价格,放宽了提款保护,并通过协议的借贷通道提取了高价值资产。
截至撰写本文时,Drift已发布了初步声明[1],但尚未发布完整的事故复盘报告。以下分析基于公开的链上数据、Drift的官方时间线和独立研究[2]。我们首先考察持久性nonce如何根本性地改变多重签名治理的安全假设,然后重构多周的攻击准备、治理接管执行和资金提取过程,并最后总结吸取的经验教训,以减轻此类风险。
Web3最佳安全审计机构
在上线前验证设计、代码和业务逻辑
背景
Drift Protocol和Squads多重签名
Drift Protocol是一个位于Solana上的DeFi协议,支持保证金交易、借贷、现货市场和衍生品。其高权限操作,包括管理员更改、市场创建、预言机配置、风险参数更新和提款限额调整,均由多重签名而非单个私钥管理。
Drift使用Squads多重签名框架,这是Solana上一个常见的链上治理系统。在Squads中,高权限操作被打包成一个提案下的交易。一旦足够数量的成员批准了该提案,存储的指令就可以通过vaultTransactionExecute原子地执行。在攻击发生时,Drift的安全委员会采用2-of-5阈值配置,零时间锁,这意味着五名签署者中的任何两人都可以授权立即生效的管理操作。该系统的安全性不仅取决于签署者密钥的保管,还取决于整个审批流程的完整性:创建了什么交易,签署者认为他们批准了什么,以及最终执行的指令是否与该审查上下文匹配。
持久性Nonce账户
持久性nonce账户为交易执行引入了一个关键的时间维度[3]。在正常情况下,Solana交易依赖于最近的区块哈希,如果在未及时广播的情况下签名,会在短时间内过期。持久性nonce将这个短暂的区块哈希替换为存储在专用账户中的nonce,允许签名交易在nonce被推进之前无限期保持有效。这一功能在离线签名或延迟提交等合法场景中非常有用,但它也创造了一个重要的攻击原语:它将交易签名的时间与交易在链上执行的时间分开了。关键是,一旦签署者批准了持久性nonce交易,除非nonce授权者手动推进nonce账户,否则他们无法撤销签名。
这种分离对多重签名安全产生了微妙但根本性的影响。在正常的基于区块哈希的交易中,短暂的过期窗口充当了隐式的安全层:签署者的授权要么迅速执行,要么无害地过期。这种时间限制意味着,即使签署者被欺骗批准了恶意交易,攻击者也必须在狭窄的窗口内广播它,限制了协同、多步骤利用的范围。持久性nonce完全消除了这种限制。有了无限期有效的签名,一次签名错误的成本发生了根本性变化:被欺骗的批准不再在几分钟内过期,而是可以被利用,没有自动时间限制,这使得攻击者可以完全控制执行时机,并可随意协调后续步骤。
攻击分析
攻击分为三个 distinct 阶段。在攻击前准备阶段,攻击者进行了数周的操作,制造了一个虚假的抵押品资产,并通过误导性签名请求获得了治理访问权限。在治理接管阶段,两笔预先签名的持久性nonce交易被迅速提交,以夺取管理控制权。在资金提取阶段,攻击者操纵了协议参数,并通过协议的借贷通道提取了真实资产。下图说明了三个阶段的攻击执行流程,对应于下面的小节。CVT制造的并行轨道在攻击前准备阶段有详细介绍,图中未显示。
攻击前准备
这次攻击并非一次性的机会主义打击,而是为期数周,分两条并行准备轨道进行。第一条轨道侧重于制造一个看似合理的抵押品资产。3月11日,攻击者从Tornado Cash提取了10 ETH,并用这些资金部署了CarbonVote Token(CVT),铸造了7.5亿单位。在接下来的几周里,攻击者在Raydium上注入了少量流动性,并通过洗售交易建立了接近1美元的人工价格历史,使CVT表面上具有市场合法性[4]。
第二条轨道针对治理访问。根据Drift的官方时间线[1],3月23日,创建了四个持久性nonce账户:两个与Drift安全委员会多重签名成员相关联,另外两个由攻击者控制。这表明至少有两名签署者已经签署了与持久性nonce账户相关的交易,使攻击者获得了所需的2-of-5批准阈值。
3月27日,由于安全委员会成员变动,Drift执行了一次计划的安全委员会迁移。这次迁移使之前在旧配置下收集的签名失效。然而,到3月30日,出现了一个与更新后的多重签名成员相关联的新持久性nonce账户,这表明攻击者在新的配置下重新获得了所需的2-of-5批准阈值。
这一系列事件表明,攻击者一直在积极监控链上治理的变化并实时适应。签名收集是一项持续性的操作,它在多重签名重新配置的中期准备阶段得以幸存,而不是一次性的网络钓鱼活动。迁移本身可能无意中帮助了攻击者:在治理过渡期间,签署者更有可能遇到并批准管理签名请求,从而创造了一个自然的社交工程窗口。
4月1日,攻击者选择了精确的执行窗口。Drift首先从保险基金进行了合法的测试提款。大约一分钟后,攻击者提交了预先签名的攻击交易。这一时机表明攻击者正在实时监控链上活动,并在采取行动前等待成功的合法操作以确认系统处于正常运行状态。
治理接管
4月1日大约16:05 UTC,攻击者以四位间隔提交了两笔预先签名的持久性nonce交易。第一笔交易(2HvMSg...2C4H)创建并批准了恶意的管理员转让提案。第二笔交易(4BKBmA...RsN1)批准并执行了该提案,首先是AdvanceNonceAccount以激活存储的nonce,然后通过proposalApprove和vaultTransactionExecute,最终调用UpdateAdmin将管理控制权转移到一个攻击者控制的地址。
这一执行流程突显了攻击的一个关键特性:决定性的授权并非发生在执行时,而是在较早的签名阶段。链上交易仅仅是实现了已经授予的权限。

资金提取
获得管理控制权后,攻击者在提取资金前采取了三个准备步骤:为CVT创建了一个恶意的抵押品市场,切换到一个攻击者控制的预言机以夸大其价格,以及放宽提款保护以实现大规模提取。
第一步是为CVT创建一个恶意的抵押品市场。这个市场的问题不仅在于它是新的,还在于它缺乏真实的流动性,同时被分配了过于宽松的风险参数。一个没有可赎回价值的资产,一旦被接受为协议内的高权重抵押品,就可以用来创造不存在的借贷能力。
第二步是切换到攻击者控制的预言机并夸大价格。有了管理员权限,这一步无需进一步的限制即可绕过。一旦预言机受到攻击者控制,CVT的市场价格就可以被任意夸大,使几乎没有真实市场价值的资产在协议内显得像高价值抵押品。
第三步是放宽提款保护和熔断机制。即使抵押品定价被夸大,主要资产市场的提款限额也会限制大规模提取。在将虚假的抵押品价值转换为可提取的真实资产之前,必须提高或移除这些保护措施。
完成这些步骤后,攻击者将大量被高估的CVT存入协议,然后在约12分钟内执行了31次快速提款,提取了包括USDC、JLP、SOL、cbBTC、USDT、wETH、dSOL、WBTC、JTO和FARTCOIN在内的真实资产。这完成了利润提取闭环:获得治理控制权,更改参数,将无价值资产包装成高价值抵押品,并通过协议预先存在的借贷和提款路径转移资金。
截至撰写本文时,总损失为285,279,417.69美元,根据攻击者的提款账户(HkGz4K...pZES)计算。

吸取的教训
-
多重签名安全不仅仅是密钥保管。 保护私钥和强制执行签名阈值是不够的。整个授权流程,包括交易构造、显示和签名者解释,都必须值得信任。在此事件中,签名者的密钥未被泄露,但审批流程被操纵以授权非预期操作。
-
时间锁对于高权限操作至关重要。 管理操作,如所有权转移,不应立即执行。Drift的零时间锁配置意味着一旦预先签名的交易被触发,管理控制权就会在几分钟内转移并被利用,不留下检测或干预的机会。时间锁本可以创造一个响应窗口来识别和阻止恶意转让。
-
延迟执行机制在治理上下文中需要额外的安全措施。 持久性nonce将签名与执行脱钩,消除了签名者依赖的隐式时间保证。在治理系统中,此类机制应与更高的签名阈值、有时间限制或可撤销的批准以及防止签名交易无限期保持有效的限制相结合。
结论
此事件并非由智能合约漏洞或密钥泄露引起,而是由多重签名授权流程的崩溃与基于持久性nonce的延迟执行相结合所致。攻击者通过误导性签名预先收集了五名安全委员会签署者中两名的有效多重签名批准,利用持久性nonce交易将其保留,并在稍后执行以获得管理控制权。随后的资金提取是治理被破坏的直接后果,并通过完全有效的协议操作完成。减轻此类风险需要保护整个授权流程,在关键操作上强制执行时间锁,并为延迟执行机制实施额外的安全措施。结合能够实时检测异常治理活动的链上监控系统,这些措施共同构成了针对此类治理层攻击的全面安全体系。
参考文献
[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
关于BlockSec
BlockSec是一家全栈区块链安全与加密合规提供商。我们构建产品和服务,帮助客户在协议和平台的整个生命周期内,进行代码审计(包括智能合约、区块链和钱包)、实时拦截攻击、分析事件、追踪非法资金,并满足AML/CFT义务。
BlockSec在知名会议上发表了多篇区块链安全论文,报告了多起DeFi应用的零日攻击,阻止了多次黑客攻击,挽救了超过2000万美元的资金,并保护了数十亿美元的加密货币。
-
官方网站: https://blocksec.com/
-
官方Twitter账号: https://twitter.com/BlockSecTeam
-
🔗 BlockSec审计服务: 提交请求
-
🔗 Phalcon安全APP: 预订演示



