ATEL
AVIP 规范

A2B 子协议 (AVIP-A2B)

Agent 对 Business 子协议的规范 profile —— 由哪些 AVIP 组件组合而成,以及端到端场景。

A2B Profile —— AVIP-A2B

A2B 是一个 profile,用于"AI Agent 代表用户或企业向 Web2 商户付款"的情形。对手方有公开 API 或 webhook,但没有 DID、没有链上身份、没有签名。这个 profile 的任务是约束 Agent 和平台,使不可信的 Web2 一侧拿不走用户资金,也无法让用户求告无门。

概念性总览见 协议 · A2B 子协议。本页是组件级 profile。


组件组合

阶段组件在 A2B 中的角色
身份AVIP-ID-DID、AVIP-ID-SIG、AVIP-ID-SA只有 Agent 签名;用户智能账户是退款目的地
声明AVIP-INT-DECL(+A2B 字段)、AVIP-INT-CON、AVIP-INT-VER意图声明 maxAmount、deadlineUnix、allowedTools、requiresConfirmAbove、userSA
托管AVIP-SET-CHKA2BOrderGateway 五格提交清单
执行AVIP-EXE-GW、AVIP-EXE-TR每次工具调用都被策略门控;每次调用一条 ActionTrace
结算AVIP-AUD-MK、AVIP-AUD-PRF、AVIP-AUD-ANCCompletionProof 锚定审计 root + 裁决
退款AVIP-SET-EXPexpireOrder 在截止后无许可退款

三幕流程

<b>第一幕 · 声明</b>Intent 签名 +链上 order(INT/SET-CHK)<b>第二幕 · 执行</b>Gateway 门控工具调用+ ActionTrace(EXE-GW/TR)<b>第三幕 · 结算</b>合约清单+ 密封交付(AUD)

每一幕都产出链上证据。任一幕失败或超时,资金路径都默认退款 —— 用户从不失去托管。


Normative Requirements

  • 意图 MUST 用 allowedTools 白名单工具;Action Gateway MUST 拒绝白名单外的任何调用。
  • 在存在一张金额 ≤ 充值的已提交 invoice 之前,资金 MUST NOT 到达商户;支付 MUST 由已提交 invoice 的字段构造。
  • 合约 MUST 拒绝乱序的格迁移。
  • deadlineUnix 之后,expireOrder MUST 可被任何人调用,且 MUST 退回 userSA。
  • 商户交付物 MUST 用信封加密密封;链上只锚定密文哈希。

场景走查

设定。 用户让其 Agent 买一张 5 USDC 礼品卡。Agent 以其 DID 行动;用户智能账户 userSA 是退款目的地。

  1. 声明。 Agent 签一份 A2B 意图(category = gift_card,maxAmount = 5,deadlineUnix,allowedTools = [wallet.deposit, bitrefill.createInvoice, ...],userSA)。AVIP-INT-VER 后,平台调 A2BOrderGateway.createOrder(intentHash, ...)。状态 → CREATED。
  2. 注资。 userSA 向合约充值 USDC。状态 → FUNDED。
  3. 门控与提交。 Agent 调工具;每次都经 AVIP-EXE-GW,产一条 ActionTrace(allow / deny / pending_user_confirm)。商户 invoice 链上提交(commitInvoice)。状态 → INVOICE_COMMITTED。
  4. 支付。 合约用已提交 invoice 字段构造并执行支付;审计 root(全部 ActionTrace 的 Merkle root)被锚定。状态 → PAID。
  5. 交付与密封。 商户确认交付。一份 CompletionProof(intentHash、auditRoot、deliveryHash、verdict = DELIVERED)锚在 keccak256("proof:a2b:" + intentHash)。礼品卡码被密封到用户公钥;链上只存密文哈希。状态 → DELIVERED。

失败 / 超时分支。 若商户失败(FAILED)或截止已过(EXPIRED),AVIP-SET-EXP 把充值退回 userSA,不依赖平台、Agent 或商户。


链上记录

记录Anchor key数据
createOrderintentHash意图哈希 + 用户 SA + max + deadline
depositOrderintentHash充值金额(USDC)
commitInvoiceintentHash商户地址 + 金额 + 选择哈希 + invoice 哈希
executePaymentintentHash审计 root(全部 ActionTrace 的 Merkle root)
confirmDeliveryintentHash交付哈希 + 成功标志
CompletionProofkeccak256("proof:a2b:" + intentHash)完整 CompletionProof JSON

一笔已交付订单约产生六次链上迁移,外加 CompletionProof 锚定。


零信任审计

三条审计命令都对公开端点和链只读,无需平台认证(AVIP-AUD-VFY):

atel bitrefill verify-intent <intentId>   # 签名 + 链上 order 匹配
atel bitrefill audit <intentId>           # 重算 Merkle root 对链上 auditRoot
atel bitrefill proof <intentId>           # 解码 CompletionProof 对平台裁决

与 A2A 的分歧

方面A2AA2B
对手方签名 Agent(DID)Web2 商户(无 DID)
执行模型里程碑验证经合约清单的原子操作
放款双边 escrow(EscrowManager)五格清单(A2BOrderGateway)
争议仲裁(AVIP-SET-DSP)截止 expireOrder 退款(AVIP-SET-EXP)
信任反馈双边分数调整单边:给用户的审计证明、给商户的交付证明

两个 profile 共用同一套身份、锚定、证明结构和超时逃生口 —— 下游消费者可统一对待它们的证据。

On this page