引言
2026年4月1日(UTC),Solana上的Drift Protocol通过一种结合了多重签名审批操纵和持久性Nonce利用的协调攻击被攻破。持久性Nonce是一种Solana交易机制,它允许预先签名的审批无限期保持有效,导致约2.853亿美元的损失[1, 2]。经过数周的链上准备,攻击者通过网络钓鱼或误导性签名请求,诱使五名安全委员会多重签名签署人中的两人预先签署了恶意治理交易。签名指令被保留,直到攻击者选择的时刻,然后通过两次快速交易执行,完成管理员接管并转移管理控制权。凭借完整的管理员权限,攻击者引入了一个恶意的抵押资产(“CVT”),夸大了其预言机价格,放松了提款保护,并通过协议的借贷通道提取了高价值资产。
截至撰写本文时,Drift已发布了初步声明[1],但尚未发布完整的事件复盘。下文分析基于公开的链上数据、Drift的官方时间线和独立研究[2]。我们首先考察持久性Nonce如何根本性地改变多重签名治理的安全假设,然后重构多周的攻击准备、治理接管执行和资金提取过程,最后总结从中吸取的教训,以减轻此类风险。
背景
Drift Protocol 和 Squads 多重签名
Drift Protocol是Solana上的一个DeFi协议,支持保证金交易、借贷、现货市场和衍生品。其高权限操作,包括管理员更改、市场创建、预言机配置、风险参数更新和提款限额调整,由多重签名而非单一私钥管理。
Drift使用Squads多重签名框架,这是一个Solana上常见的链上治理系统。在Squads中,高权限操作被打包成提案下的交易。一旦足够多的成员批准了提案,存储的指令就可以通过vaultTransactionExecute原子地执行。在攻击发生时,Drift的安全委员会采用2/5阈值配置,零时间锁,这意味着五名签署人中的任何两人都可以授权立即生效的管理操作。该系统的安全性不仅依赖于签名者密钥的保管,还依赖于整个审批流程的完整性:创建了什么交易,签署人认为他们批准了什么,以及最终执行的指令是否与该审查上下文相匹配。
持久性Nonce账户
持久性Nonce账户为交易执行引入了一个关键的时间维度[3]。在正常情况下,Solana交易依赖于最近的区块哈希,并且如果未及时广播,在签名后会很快过期。持久性Nonce用一个存储在专用账户中的Nonce替换了该短暂的区块哈希,允许签名交易无限期保持有效,直到Nonce被推进。此功能在合法的脱机签名或延迟提交等情况下很有用,但它也创建了一个重要的攻击原语:它将交易何时签名与交易何时在链上执行分开了。至关重要的是,一旦签署人批准了持久性Nonce交易,他们就无法撤销其签名,除非Nonce授权者手动推进Nonce账户。
这种分离对多重签名安全产生了微妙但根本性的影响。在正常的基于区块哈希的交易中,短暂的到期窗口充当了隐式安全层:签署人的授权要么及时执行,要么无害地过期。这种时间约束意味着,即使签署人被诱骗批准恶意交易,攻击者也必须在狭窄的时间窗口内广播它,从而限制了协调、多步利用的范围。持久性Nonce完全消除了这一约束。有了无限期有效的签名,一次签名错误的成本发生了根本性变化:被欺骗的批准不再在几分钟内过期,而是可以被利用,没有任何自动时间限制,这使攻击者能够完全控制执行时间,并可以随心所欲地协调后续步骤。
攻击分析
攻击分为三个不同的阶段。在攻击前准备阶段,攻击者进行了一项为期数周的行动,制造了一个虚假的抵押资产,并通过误导性签名请求获得了治理访问权。在治理接管阶段,两笔预先签名的持久性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/5批准阈值。
3月27日,由于安全委员会成员变动,Drift执行了计划中的安全委员会迁移。这次迁移使旧配置下之前收集的签名失效。然而,到3月30日,出现了一个与更新后的多重签名成员相关联的新持久性Nonce账户,表明攻击者在新的配置下重新获得了所需的2/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,“官方声明”: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



