一枚代理 NFT 能挂哪些记录:ERC-8004 登记文件与 ERC-5646 状态指纹对照读 图 1
一枚代理 NFT 能挂哪些记录:ERC-8004 登记文件与 ERC-5646 状态指纹对照读 · 图 1

一枚代理 NFT 能挂哪些记录:ERC-8004 登记文件与 ERC-5646 状态指纹对照读

ERC-8004 把 AI 代理登记成一枚 ERC-721 后,留下的老问题一个没少:代币不会替你保证它指向的档案没被换过。agentURI 可以改,登记文件里的描述、端点、模型说明都可以重写。把这件事和 ERC-5646 代币状态指纹标准放在一起读,正好能拼出一套“可替换元数据怎么审计”的完整分层。后者 2022 年 9 月 11 日创建、仓库记录状态为 Final,定义的正是“在不了解实现细节的前提下无歧义识别可变代币状态”的最小接口。

第一层:指针换没换

ERC-8004 的注册环节规定了登记文件必须有固定结构,包含指向标准注册版本的 type 字段、name 与 description,也提供了改 URI 的入口——setAgentURI 改 agentURI 对应注册文件。也就是说,链上身份字段与链下档案之间只有引用关系,没有快照关系。可执行的审计动作随之而来:订阅身份登记合约上 URI 变更对应的事件(标准定义了注册流程,事件名以对应合约实际实现为准),对每次变化留存旧值;在钱包或自动化脚本里,把“当前 agentURI 解析结果”与“上次解析时记录的哈希”比对,这一步不需要任何链上权限。声誉登记表的反馈文件同理,feedbackHash 字段专门为非内容寻址的 URI 提供完整性锚,对 IPFS 这类自寻址内容则可省略。

一枚代理 NFT 能挂哪些记录:ERC-8004 登记文件与 ERC-5646 状态指纹对照读 图 2
一枚代理 NFT 能挂哪些记录:ERC-8004 登记文件与 ERC-5646 状态指纹对照读 · 图 2

第二层:内容变没变

如果档案内容本身没有内容寻址,光盯指针不够:同一台服务器上的同名 JSON 可以悄悄重写。ERC-8004 的反馈文件部分为这类情况准备了哈希字段。推广到一般代币,ERC-5646 给出的答案更彻底:接口只有一个函数 getStateFingerprint(uint256 tokenId),返回一个 bytes32,并配三条强制规则——代币状态变化时指纹必须变、状态不变时指纹必须不变、凡是生命周期内可能改变的状态属性都必须进入指纹;不可变属性可以不进,因为代币编号本身就能标识。它还允许指纹包含依赖时间戳的计算值(比如到期时间),也允许把元数据 URI 直接纳入指纹;ERC-165 探测里 supportsInterface(0xf5112315) 必须返回真。这套规则的审计含义是:对合规实现,观察者不需要理解状态字段,只需要隔一段时间读同一个函数的返回值,两个 bytes32 一比对即可完成检测。对照到代理档案,等价做法是观察者自己定期拉登记文件做摘要哈希、留时间序列——链上没规定这个摘要,但链上留了事件和哈希字段当锚点,两者拼起来才能做到“被改了能知道”。

第三层:谁在什么权力下改的

能改指针的主体在 ERC-8004 里很清楚:721 的所有人,或被授权的 operator——改权直接继承自代币结构,这也是把代理登记成 NFT 的一个副作用:丢了管理权等于能改档案的人换了一个。读代理项目时,这一层的核查清单与读 NFT 合集几乎一致:枚归谁、operator 名单、登记合约的所有权模式。如果登记合约本身可升级,还要叠加壳层检查——逻辑合约在另一个可替换地址上时,档案规则、事件结构、甚至“谁被允许改”都可能整体漂移。

三层各自的失效模式不同:第一层失守表现为“链接换了但内容相同”,通常无害;第二层失守是“链接没变内容变了”,最隐蔽;第三层是前两者共同的根因,但也是唯一能事前预防的一层——把治理结构(改权归属、升级路径、事件透明度)放在选币首查的位置,比事后比对哈希更省成本。

把两份不同主题的规范并排读不是为了强行联姻:一份解决“去哪找代理、怎么打分”,一份解决“怎么问 NFT 现在是什么状态”。共同点是都只承诺接口形状,把“有没有人真的在看”留给了链下。无论对象是代理档案、NFT 元数据还是合集条款,审计的价值从来不在读取那一下,而在持续留痕的那条时间线。本文为机制说明,不构成任何投资建议。