Smart Escrow 系列 #3:安全

发布: (2025年12月19日 GMT+8 02:28)
5 min read
原文: Dev.to

Source: Dev.to

XRP Ledger (XRPL) 被公认为具有 稳定性、效率和强健性。随着 XRPL 通过智能托管(Smart Escrows)以及底层的 WebAssembly(WASM)虚拟机引入自定义链上业务逻辑,首要的设计目标是保持网络的完整性和安全性。

智能托管的实现依赖于 安全优先的设计

严格的沙箱:防止未授权访问

WASM 代码在 安全、沙箱化的环境 中执行。为限制漏洞和利用的攻击面,禁用了高级 WASM 功能,并严格限制 WASM 模块的内存上限。

Smart Escrows 中的 WASM 代码的基本规则是 只读访问,仅允许极其特定的写入。WASM 代码对所有账本对象以及各种链上数据(例如账本头信息)拥有只读访问权限。它只能对其所附属的 Escrow 中的 Data 字段进行写入。WASM 代码唯一的影响是更新 Data 字段并返回 escrow 是否可以释放。此严格限制确保自定义逻辑不会对账本完整性或其他账户的余额产生负面影响。

保护网络:资源限制与 Gas

引入可编程代码的一个主要安全隐患是可能出现拒绝服务(DoS)攻击,恶意代码可能尝试创建无限循环或消耗过多资源。为此,执行被严格限制

WASM 执行的每一步都会消耗 gas。当用户提交 EscrowFinish 交易时,必须在其中包含 ComputationAllowance 字段,指明他们愿意为代码执行支付的最大 gas 量。如果自定义代码消耗的 gas 超过了 ComputationAllowance 中提供的预算,执行将 立即终止 并产生确定性的失败。这可以防止恶意或有缺陷的代码无限运行,并确保执行保持快速且可预测。

关键资源约束——例如最大 WASM 代码大小和最大计算量——是 UNL‑adjustable 参数,通过标准的费用投票流程进行控制。这使得网络能够 根据性能变化或出现滥用尝试时动态调整资源使用和定价,而无需单独的修正案。它还提供了 快速关闭机制,只需将计算限制设为 0,即可关闭所有 WASM 代码的使用。

用户和开发者保护

为了降低因自定义代码错误导致资金永久锁定的风险,任何包含 FinishFunction 的托管 必须 同时具备可取消功能。此强制性特性确保如果自定义条件永远无法满足(由于错误或逻辑缺陷),发送方仍可在指定的 CancelAfter 时间过去后收回资金。

审计与测试

整个实现目前正接受 严格的测试和多次安全审计,以确认 WASM 运行时已安全地集成到 rippled 中,并且 WASM 代码不会违反已建立的假设和不变式。

所选的运行时 Wasmi 之前已针对区块链使用场景进行过两次审计。这些审计报告可在此公开获取:
https://github.com/wasmi-labs/wasmi/tree/main/resources

该安全框架确保通过 小而可控的步骤 引入自定义编程的灵活性,利用现有 XRPL 原语的稳定性,同时 严格限制用户部署代码所带来的风险

Back to Blog

相关文章

阅读更多 »

推出全新 Front-End Framework

WebForms Core — 将 Server‑Command/Client‑Execution 引入前端 前端生态长期被状态驱动和基于组件的框架所主导