XRP Ledger 紧急修补自身代币增发后门
要点速览
- •XRPL 官方文档建议,在 fixCleanup3_4_0 修正案于主网启用之前,不要委托 PaymentBurn 权限。
- •零余额边界处的漏洞使仅持有销毁权限的委托账户能够增发新的信任线代币或多用途代币(MPT),但无法创造新的 XRP。
- •PermissionDelegationV1_1 于 10 月 8 日上线时,PaymentBurn 修正方案仍在争取验证者支持,因此只有自上线以来授予 PaymentBurn 的发行方存在风险敞口。
- •目前尚未发现受影响的发行方或滥用行为,且每一项委托授权都在 Delegate 账本条目中公开记录。
- •fixCleanup3_4_0 获得 35 位可信验证者中 33 位的支持,并打包了 25 项变更,但激活需要在两周内不间断保持 29 位验证者的绝对多数。

XRP Ledger(XRPL)官方文档建议账户持有者,在网络启用名为 fixCleanup3_4_0 的修正案之前,不要委托 PaymentBurn 权限。该警告的核心是一个位于代币销毁与增发边界处的漏洞——在某些情况下,该漏洞使仅持有销毁权限的委托账户能够增发新代币,而非销毁代币。此漏洞本身无法创造新的 XRP,但它触及的正是权限委托机制原本设计要保存在离线密钥之后的唯一任务。
仅销毁权限的委托账户本应做什么
权限委托允许一个账户将特定任务交给第二个账户,后者使用自己的密钥进行签名。XRPL 的文档明确说明了其用途:日常操作使用保持在线的密钥,而拥有完全控制权的密钥则保持离线,用于发行代币等特殊任务。Coindoo 关于 XRPL 委托账户控制的指南介绍了机构可能如何划分这些角色。
账本的十二项细粒度权限中有两项与代币供应相关。PaymentMint 涵盖创建同质化代币或多用途代币(MPT)的支付。PaymentBurn 涵盖销毁这些代币的支付,文档对其边界作出了精确规定:销毁在余额归零时停止。
漏洞恰好位于这一边界。在修正之前,以 PaymentBurn 权限发送的支付在某些情况下可能越过零点,增发新的信任线代币或 MPT。fixCleanup3_4_0 会拒绝任何金额将越界进入增发的仅销毁委托支付,除非同一委托账户同时持有 PaymentMint。其余十一项细粒度权限不受影响。
这使得该漏洞的影响范围较窄,但触及的内容却十分敏感。只有发行方已选定为委托账户的账户才能利用它,但它解锁的是代币发行——这正是委托机制原本打算保存在离线密钥之后的任务。
冷存储无法覆盖委托账户的密钥
委托交易使用委托账户自己的主密钥、常规密钥或多重签名列表进行签名。即使发行方将其主要凭证完全保存在离线状态,如果持有 PaymentBurn 权限的委托账户遭到入侵、配置错误或超出授权范围行事,发行方仍可能面临风险。
对于法币抵押代币而言,经济风险在于流通中的代币没有对应的储备支撑。储备证明展示的是某个报告日期对应未偿付代币所持有的资产。它无法说明在两次报告之间哪些账户可能改变代币数量——而这正是此漏洞削弱的控制机制。
委托功能在其修正案获得足够票数之前就已上线
这是 XRPL 委托功能中发现的第二个漏洞。原始版本于 2025 年被撤回,原因是社区测试者在 devnet 上发现它可以向未签名的账户收取交易费用,官方披露证实该版本从未进入主网。据 XRPL 修正案仪表板显示,其替代版本 PermissionDelegationV1_1 已于 10 月 8 日上线,而当时 PaymentBurn 修正方案仍在争取验证者支持。
因此风险敞口是逐账户的:只有自上线以来授予 PaymentBurn 权限的发行方受到影响。每一项授权都是公开的,因为 Delegate 账本条目记录了授权账户、委托账户及其权限列表。截至撰稿时,无论是 XRPL 文档还是公开报道,均未发现受影响的发行方或任何滥用行为。
代币供应增加本身并不能证明任何问题,因为发行方可能有意授予了 PaymentMint 权限。需要解释的是:一个仅持有 PaymentBurn 权限的委托账户,其支付却增加了代币数量。
发行方在周三之前可以检查什么
XRPL 公开的建议是,在修正案启用之前停止委托 PaymentBurn 权限。对于已授予该权限的发行方,工作应按以下顺序进行:
- 调取发行账户上的每一条 Delegate 条目,标记任何包含 PaymentBurn 的权限列表。
- 重新发送 DelegateSet,并附上要保留的完整权限列表。新列表会替换旧列表,因此未包含的权限将被移除。
- 只有当变更出现在经过验证的账本中时,才可视为授权已被撤销。
- 单独审计委托账户的历史支付,因为撤销权限只能阻止未来的使用,而无法撤销之前的交易。
- 只有在 fixCleanup3_4_0 显示已在主网启用后,才重新委托 PaymentBurn 权限。
为什么投票仍可能推迟
根据官方修正案规则,一项变更需要获得可信验证者的绝对多数支持,并连续保持两周。在追踪集合中的 35 位验证者中,该门槛为 29 位,跌破该数字将重置计时。这一重置已经发生过一次;目前支持该修正案的可信验证者为 35 位中的 33 位。
即使支持率保持不变,14:46 UTC 是两周窗口开始计时的时间点。激活发生在账本投票检查点,因此该变更可能在那一时刻之后的某个时间才生效。
验证者投票的内容远不止这一项修正。fixCleanup3_4_0 打包了涵盖金库、借贷、自动做市商、NFT、托管和赞助的 25 项变更,PaymentBurn 修正是其中最后一项。它在修复借贷代码的同时,并未启用借贷协议本身,后者仍有自己的修正案在等待投票。
对发行方而言,真正重要的确认是 fixCleanup3_4_0 被列为已在主网启用。在那之前,PaymentBurn 授权所承载的权限超出了其名称所描述的范围。
本文最初发表于 Coindoo。