AVIP 规范
ATEL 可验证意图协议(AVIP)的规范性说明 —— 能力域、组件、数据结构、状态机与链上映射。
AVIP 规范
本板块是 ATEL 可验证意图协议(AVIP)的规范性说明。它把协议拆成一个个可单独引用的组件,每个组件都给出数据结构、状态机、错误条件和链上映射。它面向需要精确、可复现协议行为描述的实现者、审计方和集成伙伴 —— 不是教程。
面向任务的指南和概念性介绍,见 快速上手、协议总览 和深入文档 Pro File。本板块以实现级的精度补充它们。
本规范中的每个组件,都对应一个在公链上可观测、或可从公开数据复现的行为。凡是组件在链上留证的,它的链上映射小节都会写明具体的合约调用、event 和验证路径。
约定
本规范中的关键词 MUST、MUST NOT、REQUIRED、SHALL、SHALL NOT、SHOULD、SHOULD NOT、RECOMMENDED、MAY、OPTIONAL,当且仅当以全大写出现时,按 RFC 2119 与 RFC 8174 解释。
- 序列化。 除非另有说明,任何被哈希或签名的载荷都 MUST 采用确定性 JSON 序列化:对象键在每一层都按字典序排序,数组保持原序,数字用最小表示,
null保留,无多余空白。 - 哈希。
SHA-256指 FIPS 180-4 哈希;keccak256指以太坊/EVM 的 keccak 变体。两者不可互换,每个组件会注明用哪一个。 - 签名。
Ed25519指 RFC 8032 的 detached 签名,作用于序列化后的载荷,除非另有说明均为 Base64 编码。 - 组件编码。 每个组件有一个稳定标识,形如
AVIP-<域>-<组件>(如AVIP-SET-ESC)。这些编码是稳定引用,实现报告、审计和一致性声明中 SHOULD 直接引用它们。
能力域
AVIP-IDAVIP-INTAVIP-EXEAVIP-SETAVIP-AUDAVIP-TRUAVIP 分为六个能力域,外加两个子协议 profile。子协议(A2A、A2B)是为某一类交易组合域组件的产物,它不引入新的原语。
| 域 | 编码前缀 | 范围 | 组件数 |
|---|---|---|---|
| 身份 | AVIP-ID | 自主 DID、签名、密钥轮换、派生智能账户 | 4 |
| 意图 | AVIP-INT | 对授权动作及其边界的签名声明 | 4 |
| 执行 | AVIP-EXE | 策略门控的动作、防篡改记录、检查点、里程碑 | 4 |
| 结算 | AVIP-SET | 链上资金托管、提交清单、超时退款、争议裁决 | 4 |
| 审计 | AVIP-AUD | Merkle 承诺、证明包、链上锚定、独立验证 | 4 |
| 信任 | AVIP-TRU | 由可验证结果推导的信誉 | 4 |
| A2A Profile | AVIP-A2A | Agent 对 Agent 的组合 | profile |
| A2B Profile | AVIP-A2B | Agent 对 Business 的组合 | profile |
组件结构
每个组件页都遵循同一套结构,读者可以用同样的方式浏览任意组件:
| 小节 | 内容 |
|---|---|
| Purpose(用途) | 一句话:这个组件负责什么。 |
| Normative Requirements(规范要求) | 一致性实现 MUST 满足的 RFC 2119 条款。 |
| Data Structures(数据结构) | 字段级表格:名称、类型、是否必填、说明。 |
| State Machine(状态机) | 有状态组件的状态与允许的迁移。 |
| Error Conditions(错误条件) | 已定义的失败模式及其处理。 |
| On-Chain Mapping(链上映射) | 组件触链时的合约调用、event、anchor key 与验证路径。 |
并非每个组件都有全部小节 —— 无状态组件没有状态机,纯链下组件没有链上映射。不适用的小节直接省略,而不是留空。
密码学底座
所有域共用同一套底座。无论哪个子协议,同一套身份、同一套序列化、同一个锚定合约、同一个验证 API 支撑着每一笔交易:
威胁模型与安全目标
规范针对以下威胁设计。每条目标都标出由哪些组件来落实。
| # | 威胁 | 安全目标 | 落实组件 |
|---|---|---|---|
| T1 | 攻击者冒充某个 Agent | 只有持有私钥的人才能以某个 DID 行动 | AVIP-ID-DID、AVIP-ID-SIG |
| T2 | 被泄露的密钥被长期使用 | Agent 能在不丢失身份历史的前提下停用旧密钥 | AVIP-ID-ROT |
| T3 | Agent 超出用户授予的权限 | 授权边界在执行前声明、在运行时校验 | AVIP-INT-DECL、AVIP-INT-CON、AVIP-EXE-GW |
| T4 | 已记录的动作被事后篡改 | 对执行记录的任何改动都可被发现 | AVIP-EXE-TR、AVIP-AUD-MK |
| T5 | 对手不交付却拿走资金 | 资金只在交付被验证后放款,否则退款 | AVIP-SET-ESC、AVIP-SET-CHK |
| T6 | 平台宕机或跑路导致资金被锁死 | 一条无需许可的超时路径始终能把资金退回用户 | AVIP-SET-EXP、AVIP-SET-ESC |
| T7 | 某一方伪造交易结果 | 裁决可由任意第三方从公开数据重新计算 | AVIP-AUD-PRF、AVIP-AUD-VFY |
| T8 | Agent 给自己刷信誉 | 信誉只来自链上可验证记录,并按 txHash 去重 | AVIP-TRU-SCR、AVIP-TRU-CS |
| T9 | 争议有结论却不执行 | 结论与资金移动在链上原子完成 | AVIP-SET-DSP |
信任模型建立在 EVM 共识和公开可验证之上,不依赖信任任何单一运营方。任何角色 —— 包括平台 operator —— 都无法在 结算 域所述规则之外移动被托管的资金。
阅读顺序
首次阅读 SHOULD 按域的依赖顺序进行:
- 身份 —— 所有签名和地址的根。
- 意图 —— 被授权的是什么。
- 执行 —— 授权范围内的工作如何执行与记录。
- 结算 —— 价值如何在合约控制下移动。
- 审计 —— 结果如何被承诺与验证。
- 信任 —— 结果如何累积为信誉。
然后读与你集成相关的 profile:Agent 对 Agent 看 A2A,Agent 对 Business 看 A2B。