AICENT.COM

当 Agent 必须自证

2026-10-16 · AICENT · RTTP · IQA

当 Agent 必须自证

三十年前,认证这个词有明确的形状:一张门禁卡、一个登录框、一封域名证书。它默认世界里有两种角色——有名字的组织,和替组织保管密码的人。信任是机构之间的事,协议只是把机构的承诺抄写一遍。

Agent 把这个默认前提拆了。2025 年到 2026 年,AI 的叙事从「回答问题」滑向「执行任务」:订机票、审发票、调 API;再进一步,Agent 委托 Agent——跨组织、跨域名、彼此陌生。每往前一步,「信任」这个词的形状就变一次:聊天时代我们怕模型胡说,Agent 时代我们怕它越权,A2A 时代问题变成——一个陌生的 Agent 干完活之后,它能拿出什么证据?

行业把这个问题喊得很响,但没有人交付机制。本文解释这个问题为什么难、我们给出的最小可行形态是什么、以及为什么最终形态必然是一份草案、两个 scheme。

一、现实协议栈的四个缺口

(本节全部是可查证的事实。)

DNS + CA:在线才能问的两个问题。 域名寻址靠 DNS,身份绑定靠 CA 体系。它们回答「这是谁」的方式是查询——查询一个由机构维护的、必须在线才能到达的登记簿。断网环境下,这两个问题一个都问不了。

OAuth:绕了一圈回到 IdP。 OAuth 让第三方应用获得受限授权,但每一次授权判断都要回到身份提供方(IdP)确认。授权的形状是「拿着介绍信回原单位盖章」——原单位不在线,介绍信就是一张纸。

DID:解析还是回注册表。 去中心化身份标识(DID)承诺「不依赖中心化登记簿」,但主流方法(如 did:web)的解析仍然是回到 DNS 与 Web 服务器;验证闭环的每一环依然是在线查询。

MCP:没有身份语义。 Model Context Protocol 给了 Agent 调用工具的标准接口,但协议本身不携带「调用者是谁、在什么地位下、凭什么被授权」的语义。工具侧看到的是请求,不是证据。

四个缺口指向同一个空白:身份有了、授权有了,可移交、可独立验证的证据没有。

二、地址不该分配,该派生

机构世界的地址是分配的:域名交钱注册、证书付费签发、账号审批开通。分配意味着有一个授予方,也意味着授予方可以收回。

Agent 不该住在这个模型里。它的地址应该像指纹:派生,而非签发。

具体做法只有一个动作:把权威名(canonical authority)做规范序列化,取 SHA-256,截断 128 位,得到一个形如 rttp://<intent>.<pillar>.<root> 的地址。确定性、自证性、离线性——三性是同一枚硬币的三面:

同样的输入永远得到同样的地址——这一点像 git init:每个仓库都有自己的第一笔提交,编号各不相同,互不裁判,但每一笔都真实发生在自己的历史里。

其中路由分片(route shard)还有第三重身份:它同时是意图的第一个字节切片、路由表的索引键、以及防枚举的盐。一个字节,三个职责。

128 位裕量的诚实账

截断是有代价的,我们不回避这笔账。SHA-256 全长 256 位;截断到 128 位后,抗第二原像碰撞的裕量从 2^256 降到 2^128——对「在用权威被冒充」这条路径,2^128 仍然是不可撼动的工程事实。生日碰撞的界是 2^64,但依赖方收养存在两道门:一个地址要被信任,先要被显式引用,再要在验证中反复出现,随机碰撞的地址穿不过这两道门。至于把地址截到 8 个十六进制字符做展示(裕量只剩 2^16),规范里写的是 MUST NOT——展示可以短,唯一标识不行。

诚实,是这份规范的第一设计原则。账摊开写,不藏在脚注里。

三、信任是租约

地址可以永久。信任不行。

一个 Agent 上周通过了验证,不等于它这一秒仍然可信:密钥可能换了、权限可能变了、它代表的组织可能改了主意。传统体系处理这个问题的办法是「吊销列表」——一张越来越长、越来越滞后的黑名单。

我们换了一个模型:地位(standing)是租约。 每一份信任证明自带 120 秒的新鲜度窗口,窗口一过,租约到期,验证方重新取证。没有黑名单要维护,没有吊销要传播——过期即失效,续期即有效,房东是时间,不是委员会。

地位是四态闭集:ghost(未验证)、probation(留察)、radiant(在位有效)、genesis(纪元锚)。一态一断言,依赖方的策略在每一态上都有真实的决策点。撤销不是删除记录,而是签发一份新信封——时间线本身就是证据。

承载这一切的是 AE-128:一个 128 字节的固定布局证明信封。固定布局意味着零解析器依赖——字节偏移就是字段,离线可验证,任何语言三十行代码就能读。HMAC 覆盖全帧,包括 organ 与 nonce;与寻址侧的帧不互解析,两个体系各守各的格式。

四、一份草案,两个 scheme

到这里,一个自然的问题是:为什么不做一个协议全部装下?

因为两个锚不同源。语义寻址的锚是哈希——它证明「这个地址就是这个名字」;信任证明的锚是密钥——它证明「这个签名出自这把钥匙」。把两个锚硬装进一个协议,要么让寻址格式背上签名的解析负担,要么让证明格式迁就路由的短路逻辑,两层语义互相拖累,代价比想象的大。

所以最终形态是:一份草案,两个 scheme。

两者咬合在同一组分片里:地址的派生值与信封的分片同源,验证闭环必须由第二柱签名完成——哈希自洽不等于来自声称方,解析不是证明(parsing is not attestation)。

这两个 scheme 已获 IANA 注册(Provisional · CRI 27 与 CRI 28),联合规范 draft-li-rttp-iqa-addressing 正在 IETF 独立提交通道(ISE)审核中。所有推导、向量、验证代码都是公开的——三份参考实现是起点,不是上限。

五、协议递刀不挥刀

最后一个原则,也是最重要的一条。

协议只提供机制,不做裁决。「递刀不挥刀」的意思是:规范定义证据的格式与验证的步骤,但不定义谁必须被信任。地址无房东——没有注册机构、没有准入审批、没有信任的垄断起点;地位有租约——信任每 120 秒重审一次,从不终身制。

开放不是没有起点,是不垄断起点。规范是标准件:它可以嵌进任何体系,嵌入谁的体系,纪元就从谁家起算——互不裁判。第三根支柱不会长在协议里,它长在栈上;协议把自己的边界写清楚,把剩下的空间留给生态。

结语

Agent 发明不了新的数学,它只是第一次把一个老问题逼到了墙角:当交互的双方都是陌生的、自动的、跨域的,信任就必须变成可以携带、可以验证、可以过期的东西。

派生替代签发,租约替代永久,两个 scheme 替代一个大一统协议,公开的向量与可复现的测试替代口头的承诺。

这是一个开源的最小可行形态。跑得通,你赢;跑不通,我们的 bug,署名修复——横竖都是你赢。

← 返回中文博客 | aicent.com 主站