在开发者修复了安全审查期间发现的另外 11 项软件问题后,XRP Ledger(XRPL)的 Batch V1.1 修正案距离启动为期两周的激活流程仅差一票。目前,该修正案已获得 27 个验证节点的投票支持,距离达到 80% 的激活门槛还缺一票。
在此之前,开发团队针对签名、授权检查以及潜在的服务端崩溃等问题进行了修复。Batch 功能允许用户将最多八笔交易合并为一次操作,并要求关联支付必须同时完成。此前,由于研究人员在主网上线前发现了一个严重的授权漏洞,当前的版本取代了早期的 Batch 提案。
Batch V1.1 允许将多达八笔交易分组为一个单一操作,其执行规则可以要求关联的交易共同成功或失败。例如,在两个用户之间的代币互换场景中,该功能可使两笔转账相互依赖。如果交换的一方失败,另一笔交易也不会独立执行。
钱包和交易所可以利用相同的结构来同时处理客户付款和平台费用。RippleX 表示,已有商业项目正在签约或开发中使用 Batch 功能,尽管开发团队尚未公开披露涉及的公司名称。
过去一周内,验证节点的支持率迅速上升。此前报道显示,9 月 8 日,Batch V1.1 在默认唯一节点列表(UNL)的 35 个验证节点中获得了 24 票支持,占比约为 68.57%。此后又有三个验证节点投出了赞成票。
根据 XRP Ledger 的治理规则,一项修正案必须在连续 14 天内保持至少 80% 的验证节点支持才能激活。鉴于目前有 35 个可信验证节点参与计数,另一个支持票将使 Batch V1.1 超过阈值并启动倒计时。
需要注意的是,一旦倒计时开始,结果并非锁定不变。验证节点可以改变立场,如果在 14 天窗口期内支持率降至 80% 以下,激活过程将被中断。今年 7 月曾出现过类似情况,fixCleanup3_2_0 修正案在获得 85.71% 的支持率后进入激活窗口,并在满足所需期限后于 7 月 29 日正式激活。
此次投票是在原始 Batch 设计因研究人员在主网上线前发现漏洞而撤回之后进行的。在某些条件下,该漏洞可能允许攻击者在未获得必要授权的情况下,将其他用户的交易放入批次中。由于受影响的修正案从未激活,因此没有用户资金面临风险。
发现漏洞后,开发人员重新构建了该功能,Batch V1.1 随后被包含在 8 月 6 日发布的 xrpld 3.3.0 版本中。xrpld 3.3.0 版本引入了修正后的 Batch 实现以及其他几项提议的协议功能。每项修正案仍需单独的验证节点批准才能在主网上激活。
RippleX 软件工程师 Mayukha Vadari 表示,原始的签名问题早在 2 月份主网部署前就被发现。随后的工作包括根本原因修复、四位高级工程师的审查、Sherlock 安全竞赛以及来自 Halborn 和 Common Prefix 的审计。
Vadari 在 X 平台上写道:“在 2 月份(主网前,无资金风险)捕获 v1.0 签名错误后,我们重新构建了它。”
额外的发现涵盖了签名处理、授权检查以及可能导致服务器崩溃的软件条件。Common Prefix 将其中一项漏洞归类为“严重”级别。根据 RippleX 的审查,该问题可能允许攻击者重用用户已签名的权限,从而执行比用户最初授权更多的交易。
其他发现涉及 Batch 交易验证权限和处理签名的方式。开发人员已在修正案进入当前验证节点投票阶段之前解决了报告的问题。
RippleX 表示,有四名高级工程师对实现进行了审查,而 Halborn 和 Common Prefix 进行了外部审计。代码在激活前经过了自动化测试和旨在暴露弱点的公共安全竞赛。安全测试已被用于 XRPL 近期的其他提案中。今年 6 月的一次 Common Prefix 安全审查指出了 XRPL 组件中的数值和行为问题,修复措施已通过 3.2.0 版本部署。随后,该安全公司被委托对网络的其他部分进行形式化验证和分析。
另一次涵盖提议 XRPL 功能的 Sherlock 竞赛在相关修正案上线主网前发现了数十个有效漏洞,包括严重和高危级别的发现。
作为 XRP Ledger 开发人员致力于交易结算、隐私、权限和机构功能的努力的一部分,Batch 是通过 3.3.0 软件周期引入的几项协议变更之一。
在软件发布之前,开发人员概述了五项拟议的 XRPL 修正案,其中包括 Batch 交易、机密 MPT(Confidential MPT)、Sponsor、动态 MPT(Dynamic MPT)和权限委托(Permission Delegation)。
Batch 的设计围绕原子结算展开,即多个相关操作可以作为协调的交易一起处理,而不是单独提交。权限委托允许一个账户向另一个账户授予受限权限,而无需交出完全控制权。机密 MPT 旨在隐藏多用途代币(MPT)的余额和转账金额,同时在公共账本上保留账户身份可见性。
并非所有功能只要代码包含在 xrpld 中就会自动激活。验证节点分别决定是否支持修正案,使每个提案拥有独立的投票时间表。
网络已经在 3.3.0 提案中看到了不同的采用率。Ripple 在 8 月对其支持率为 7/35 的可信验证节点的 PermissionDelegationV1_1 修正案投了赞成票。相比之下,Batch 已更接近激活门槛。其目前的 27 票意味着,只要现有投票保持不变,该修正案只需再获得一个支持验证节点即可开始为期 14 天的激活期。
RippleX 尚未命名其称正在签约或开发以使用 Batch 的商业项目。CoinDesk 曾询问开发团队哪些公司正准备使用该功能,以及最新的 11 项修复是否针对当前由验证节点考虑的版本接受了独立审查。