零信任审计
如何独立端到端核验任一笔历史 A2B 订单 —— 三条 SDK 命令,不需要信任 ATEL,也不需要信任商户。
零信任审计
A2B 建出来就是为了让你不必信任 ATEL。关于一笔历史交易的每一条有意义的声明 —— 签名 Intent、链上资金流、审计记录、商户交付 —— 都会产出公开证据,任何第三方都能用自己的工具重算。
本页讲怎么做。下面三条命令属于 ATEL SDK,运行在公开端点加区块链上。它们故意不需要 Platform 认证。你只需要想审计的订单的 intentId。
每条命令证明什么
| 命令 | 它核验的声明 |
|---|---|
verify-intent | Intent 的签名有效,链上 Order 与之匹配。 |
audit | 审计记录自锚定以来没被篡改过。 |
proof | 链上 CompletionProof 与本地重算的裁决一致。 |
三条都是绿色,就在不信任 ATEL 的前提下确认了:交易由授权密钥发起、在声明额度内执行、并以所述结果结束。
命令 1 · 核验 Intent
atel bitrefill verify-intent <intentId>它做什么:
- 从 Platform 的公开验证 API 拉 Intent JSON。
- 从 Intent 的
issuerDid提取公钥。 - 重建规范的签名载荷,核验 Ed25519 签名。
- 从
A2BOrderGateway.getOrder(intentHash)拉链上 Order。 - 把链上字段(
userAddr、maxAmount、deadline)和 Intent 做对比。
PASS 结果意味着:Intent 确实是用那个 DID 的私钥签的,链上 Order 与签名声明逐字节一致。
失败意味着签名有问题,或者链上记录和 Intent 对不上 —— 无论哪种,这笔交易都不该被信任。
命令 2 · 审计执行记录
atel bitrefill audit <intentId>它做什么:
- 拉订单的每一条 ActionTrace 记录(哈希链式的工具调用列表)。
- 本地重算每条记录的哈希。
- 从记录哈希重建 Merkle 树。
- 把本地 Merkle 根和链上
executePayment交易里记录的auditRoot字段对比。
PASS 意味着:executePayment 交易上链之后,没有记录被改过、加过或删过。审计记录与结算时锚定的字节完全一致。
失败意味着有人(Platform、被入侵的运营方、bug)事后改过记录。链上锚定不可篡改,所以不匹配意味着数据被动过手脚。
命令 3 · 核验 CompletionProof
atel bitrefill proof <intentId>它做什么:
- 按 intent id 查 CompletionProof 的锚定交易。
- 通过验证 API 拉完整锚定 JSON。
- 重算哈希,确认与链上锚定一致。
- 把锚定的裁决(
DELIVERED/FAILED/EXPIRED)和 Platform 侧订单状态对比。
PASS 意味着:链上证明真实、与链下表示一致,并且报告的裁决和 Platform 报告的一致。
"全绿"给你换来什么
三条都返回 PASS,你就知道:
- Intent 上的签名是真的。
- 链上订单与签名 Intent 一致。
- 审计记录自锚定以来没被改过。
- CompletionProof 说的就是 Platform 说的。
信任链是:Intent 签名者 → 链上 Order → 审计根 → CompletionProof → 交付哈希。每一环要么是一次密码学签名、要么是一个哈希、要么是一次链上锚定。没有一环依赖 ATEL 在线、诚实、甚至存在。
什么时候跑审计
订单完成之后,任何时候都能跑。典型情况:
- 你要在使用一笔大额订单的交付物之前先信任它。
- 你是审计师或合规官,需要给监管拿证据。
- 你在查一个争议 —— "这笔交易真的像系统说的那样发生了吗?"
- 你正在把 A2B 接入自己的流程,想验证证据模型。
仪表盘集成
你的 ATEL 仪表盘会对每一单自动跑上面三个审计,展示一个状态徽章:
- 绿色 —— 三项都通过。
- 琥珀 —— 至少一项失败或不确定。点进去看详情。
- 待定 —— 订单还没到能跑审计的阶段。
仪表盘用的就是相同的 SDK 代码路径。你随时可以切到 CLI 独立复现结果。