加密待处理交易
加密待处理交易允许你提交一笔其 Move 负载(入口函数、参数及相关可执行数据)在 交易处于待处理状态时被加密 的交易——例如当它停留在内存池中并在节点之间传播时.验证者只有在区块确认后准备执行时才会解密负载.与完全明文的负载相比,这减少了观察者能从公开的待处理交易流中获取的信息.
此功能目前已在 开发网(devnet) 上线,测试网(testnet) 支持即将推出,主网(mainnet) 随后跟进.你使用的全节点必须在启用加密提交时通过账本暴露 encryption_key.在没有该密钥的网络或节点上,客户端无法构建加密交易.
客户端仍可观察到的内容
Section titled “客户端仍可观察到的内容”加密保护的是在传输过程中以及在待处理阶段静止存储的 负载字节,但交易仍然是一个对链发出的已签名请求.根据配置和负载类型,客户端可能仍可看到诸如发送方、gas 参数、过期时间、签名等元数据,以及——当协议要求时——从负载派生的元数据(例如某些多签或赞助流程中的 声明的入口函数).请将”加密待处理”理解为 负载隐私,而非整笔交易的匿名性.精确的安全模型请参见 AIP-144:加密内存池,底层密码学细节参见 eprint 2025/2032.在协议层面,该功能称为 加密内存池(AIP-144);两个名称指代同一特性.
加密交易需要支付 每 gas 单位至少 200 Octas 的最低 gas 单价(为网络基础最低值的两倍),以补偿验证者的解密开销.SDK 在构建时强制执行该下限;低于该价格的加密提交将被服务器拒绝.
Keyless、联邦 Keyless 和 账户抽象 账户无法签署加密交易.该规则在客户端(支持的地方)和服务端均会强制执行.
与无序交易的关系
Section titled “与无序交易的关系”你可以将加密负载与 无序交易 结合使用,使并行提交者在加密可执行内容的同时使用重放保护 nonce.具体构建选项请参见下方的 TypeScript SDK 页面.
与机密资产的区别
Section titled “与机密资产的区别”加密待处理交易 保护的是 待处理交易 通往执行途中的交易负载.它与 机密资产 交易无关——后者允许余额和金额在 交易确认后 仍保持隐私.
SDK 支持
Section titled “SDK 支持”- TypeScript SDK —— 使用
options.encrypted构建(senderAuthenticationKey为可选项),提交加密构建. - 其他 SDK —— 不同版本的支持情况和 API 名称有所不同;请查阅相应 SDK 的更新日志和示例,寻找加密或批量加密交易 API.
- AIP-144:加密内存池 —— 协议层面的规范与设计动机.
- Aptos 加密内存池(eprint 2025/2032) —— 形式化的密码学论述.