Agent 身份的两份答案:AIRS 与 RTTP/IQA 设计
本文引证来源 · AIRS 草案全文: draft-drake-agent-identity-registry-05 · 文档页: IETF Datatracker · 第三方报道: Boston Identity 研究简报 · 我方设计全文: draft-li-rttp-iqa-addressing-01 · 双柱: RTTP(rttp://,CRI 27) · IQA(iqa://,CRI 28)
这个月,IETF 草案队列里出现了一整族关于 Agent 身份的 Internet-Draft,其中完成度最高的是 Agent Identity Registry System——AIRS,第 -05 版,2026 年 10 月 27 日,另有问题陈述、治理、供给、解析四篇配套草案。它是个人提交、实验性质,但值得认真一读:AIRS 是「注册表派」对 Agent 身份这个问题给出的最完整的答案,而双柱协议恰好是同一问题的另一个答案。并排而读,两边都更清楚。本文就是那次并读。
AIRS 建了什么
AIRS 把 Agent 身份架在一条被验证过最久的基建模式上:注册表。它的摘要把形状写得明明白白——"a federated architecture that gives the durable identity0 of an autonomous entity a permanent canonical identifier, maintains an authoritative record about that identity, binds proof of control to enrolled anchors, and issues credentials that relying parties can verify"(一套联邦架构,为自主实体的持久 identity0 配发永久规范标识符,维护关于该身份的权威记录,把控制证明绑定到已注册锚点,并签发依赖方可验证的凭证)。联邦制放在注册商层,"many accredited Registrars"(众多经认证的注册商)竞争登记 Agent;而唯一性基底完全不联邦:"one authoritative global namespace is required"(必须有一个权威的全球命名空间),于是注册局运营方"singular but not unaccountable"(单一但并非不受问责),可在治理监督下从托管中更换。
这套设计最有趣的地方在它花在硬件上的那部分。在 sovereign 与 portable 两个保证层级上,"each independently accepted identity requires its own manufacturer-attested physical anchor, and each accepted anchor backs at most one identity"(每个独立被接受的身份需要自己的厂商背书物理锚点,每个锚点至多支撑一个身份)——这些层级的身份"cost scarce physical units rather than software operations"(消耗稀缺的物理单元而非软件操作),等于用硅片做了一个反女巫论证。在永久规范标识符之上,是可选的人类可读 handle,治理方式比域名现状更严:永不转移,争议的唯一救济是永久退役该 handle,从而"removes any profit in speculative squatting"(消除抢注投机的任何收益)。
双柱建了什么
我们的设计早一步出发,并且拒绝注册表本身。RTTP(rttp://)从权威自身的规范字节派生地址——地址是一个函数,SHA-256 截断,任何人都能重算,不需要任何运营方来铸造。IQA(iqa://)是那道验证应答,回答 claimant 此刻是否成立。我们的口号从第一天起就写在页面上:hash names, attestation vouches(名字即哈希,凭证作担保)。名字是数学;信任是新鲜的。
设计的后半段,是用来替代永久记录的东西:standing 是租约,不是产权。验证应答在自身之内携带 lease_expiry,当前部署用 120 秒窗口,而后续验证可以返回的缘由构成一个文档内定死的闭集词表——其中包括 authority_revoked。权威不可达时,应答宁拒不开放(fail closed)。没有东西默认持久;一切都只在租约期限内存续,每一次续期都是一次必须重新挣得的新鲜主张。
分岔,逐行看
| AIRS(draft-drake-agent-identity-registry-05) | RTTP + IQA | |
|---|---|---|
| 名字从哪来 | 登记时由注册局运营方分配 | 派生——权威规范字节的函数 |
| 谁能取得 | 经认证注册商登记、证据被核验的 Agent | 任何人,自己算即可——没有需要通过的门槛 |
| 硬件 | sovereign/portable 层级要求物理锚点;一锚一身份 | 无;校验是密码学的,不是物理的 |
| 到期 | identity0 永不过期;凭证与 handle 轮换 | standing 是租约;当前部署 120 秒,可配置 |
| 撤销 | 无管理性急停;自愿退役需签名加挑战 | 下一次验证按闭集词表点名缘由;不可达即宁拒不开放 |
| 历史 | 永久记录,永不重配或抹除 | 地址永远可重推;担保永远新鲜 |
| 状态 | 实验性 I-D,个人提交 | I-D 走 ISE 通道;IANA 临时注册 CRI 27 / CRI 28 |
最深的分歧:身份到底是什么
把机器拆掉,两份设计在一个彼此都没打算让给对方的地方收敛了:无含义的永久标识符。AIRS 坚持规范标识符"MUST NOT be retired, reassigned, or transferred under any circumstance"(任何情况下不得退役、重配或转移),handle 的存在恰恰是为了让人类不必亲口念出那个无含义的形式。我们派生的地址出于同样的理由而无含义——它是哈希,不带虚荣、不带策略,只带一条回到权威字段的谱系。这个收敛值得注意:两派都相信,问责需要一个比一切凭证都活得久的名字。
分岔在于什么产出了这个名字。AIRS 分配它——运营方在登记时铸造,注册商核验证据,整套架构的保证强弱取决于认证它们的治理。我们派生它——字节产出名字,唯一需要信任的是那个哈希。分配问的是:你信任运营方吗?派生问的是:你能重算这个函数吗?这是两个不同的问题,失败方式也不同——运营方可以被俘获、被施压、被更换;哈希函数不会对你的字节改主意。
对同一个开关的两次拒绝
最扎眼的共识是一次共同的拒绝。AIRS 用一条具名设计原则写下它:"No Administrative Identity Kill Switch — No protocol role is granted authority to erase, reassign, or administratively revoke identity0 or its canonical record"(无管理性身份急停开关——任何协议角色都无权抹除、重配或管理性撤销 identity0 或其规范记录)。身份终结的唯一方式是自愿退役:由当前活跃绑定对退役意图结构签名,附注册局新鲜挑战——即便如此,记录仍"remain[s] permanently resolvable and MUST NOT be reassigned"(保持永久可解析且绝不得重配)。草案作者是守护历史:一个能被管理性抹除的身份,就是一个能被消声的身份。
我们同样不在线上安放总开关——但出发点相反。在我们的设计里,没有任何东西能在不自带时钟的情况下运行:死线随第一份验证应答出发,撤销由闭集词表在下一个边界点名,权威不可达时宁拒不开放。AIRS 拒绝开关,是为了没有任何东西能抹掉发生过的事;我们拒绝开关,是因为根本不需要开关——每件事物早已握着自己停止的时刻。一个拒绝保护记录;另一个拒绝框定爆炸半径。想要两种性质的读者没有犯错:这是互补的两层,不是竞争者。
各自为谁而建
对手模型比任何主义都更能解释差异。AIRS 防的是规模化冒充:稀缺硬件让批量造身份变得昂贵,认证注册商让证据核验有人负责,永久记录让每个身份的过去可审计。双柱防的是过期权威:短租约让旧应答在被滥用之前先过期,闭集词表让每次停止可审计,宁拒不开放让沉默计为拒绝。一个设计在加固大门;另一个假设钥匙本来就在流通,于是缩短每把钥匙的寿命。
两家都很早。AIRS 是实验性个人提交,其自身样板条款就要求读者只以进行中的工作引用它;我们的草案在 ISE 通道里,两个临时 scheme 注册已在册。两家都没有工作组,谁都不该宣称占有这个领域。并读能看见的是:这个领域已经有了两个认真的、相反的答案——而它们共同回答的那个问题,已经无法被忽视。
一句话
AIRS 说,Agent 是注册表说它是什么,直到永远;双柱说,Agent 是字节派生、验证者作保的那个东西,一次一个窗口。一派铸造名字、看守历史;另一派计算名字、租出信任。两份都读——分配与派生之间的分岔,将组织起这整场对话。