
Solana开发者希望淘汰一项允许已签名交易在数周内暂不发送的功能——今年4月,攻击者正是利用这一机制从交易协议Drift中盗取至少2.7亿美元。
每笔正常的Solana交易都带有一个与近期区块绑定的时间标记,称为区块哈希(blockhash)。由于网络出块时间为200毫秒,该标记会使交易在大约30秒后过期。而名为“持久nonce”(durable nonce)的机制会用一个永不过期的标记替换它,因此今天签名的交易到下个月仍可生效。
托管机构和交易所需要这段缓冲窗口,因为它们的审批在气隙机器(air-gapped machines,即不联网的计算机)上完成,而将签名发送到网络可能耗时超过30秒。
这一机制也同样便利了Drift攻击者:他们提前获得签名批准,让相关交易滞留一周多,随后在4月1日利用这些交易掏空该交易平台。Drift后来将此次攻击归咎于一个与朝鲜政府有关联的组织。
移除该功能的提案SIMD-0723由Anza的Gabe Rodriguez于11月5日提交。Anza是Solana主要验证者软件背后的公司。
提案称:“激活后,每笔交易都需要一个近期区块哈希。”提案并未提及Drift,而是以多年来的漏洞为依据,包括2022年的一起事件:“一笔失败交易同时经由区块哈希和nonce路径处理,导致主网中断约4.5小时。”
该草案还为Solana基金会10月宣布的一项计划首次给出了日期。
提案写道:“该功能不会在2027年5月5日之前在mainnet-beta上激活”,并给予用户“至少六个月的迁移时间,从本提案于2026年11月5日发布之日起计算”。不过,基金会自己的弃用页面仍显示“未设定日期”,且只有在替代方案就绪后才开始计算六个月期限,这可能将截止时间进一步推迟。
少数群体将承受大部分变化。在一个6月的统计周期内,持久nonce交易约占Solana流量的3%,却支付了全部优先费的30%。优先费是用户为让交易优先处理而额外支付的小费。
研究人员Max Resnick的数据显示,仅555个账户发送了其中97.5%的交易。
Resnick的帖子未说明这些账户由谁运营,并将该功能描述为“被用于持久nonce垃圾交易”。提案则将托管机构列为另一个受影响群体。
提案称:“这包括使用气隙签名的托管机构和交易所,其审批耗时超过上述窗口。”
它们的替代方案将是一个检查离线签名的链上程序,Anza的Programmatic Signer和Blueshift的Vector被列为选项。这些程序自身也带来风险,草案警告称:“执行失败可能使授权仍可使用,因此提交失败并不等于撤销。”托管部门若看到转账失败,不能想当然认为其背后的批准已经失效。
该提案仍需至少一名Anza工程师和一名Firedancer工程师签字批准后才能合并。Firedancer是Jump开发的竞争性验证者软件。