卡达诺的元数据另存法:CIP-68 参考 NFT 与 Datum 图 1
卡达诺的元数据另存法:CIP-68 参考 NFT 与 Datum · 图 1

卡达诺的元数据另存法:CIP-68 参考 NFT 与 Datum

卡达诺的 NFT 本质是带名字的原生资产,资产本身装不下多少数据。早期的 CIP-0025 把元数据写进铸造交易的元数据字段,问题随之而来:程序读不到、改不动、还容易被不守规矩的铸造者 spoofing。CIP-68(Datum Metadata Standard)状态为 Active(生效),创建于 2022 年 7 月 13 日,用”另开一存”的思路重写这件事。本文讲机制,不构成任何投资建议。

双资产结构:一枚给你,一枚存说明书

CIP-68 的资产成对发行:进入用户钱包的 user token(可以是 NFT 也可以其他资产类型),以及一枚被发行方锁住的 reference NFT。元数据不在钱包资产上,而在”锁着参考 NFT 的那个交易输出”携带的 datum(链上数据槽)里。要读某资产的元数据,先按资产名找到参考 NFT,再找它当前被锁在哪个输出,输出里的 datum 才是正文。

这一分离的妙处在于锁定脚本由发行方设计:想永久不可变,就把参考 NFT 锁进一个无花费路径的脚本地址;想给元数据留出演化机制(版本升级、属性更新),就锁进带逻辑的脚本,datum 可以随脚本规则换代。规范还指出,配合 CIP-0031 的引用输入机制,Plutus V2 脚本可以直接读取 datum——智能合约第一次能在链上验证 NFT 的元数据内容,这给程序化玩法开了门。

卡达诺的元数据另存法:CIP-68 参考 NFT 与 Datum 图 2
卡达诺的元数据另存法:CIP-68 参考 NFT 与 Datum · 图 2

资产名字里的标签前缀

配对关系靠命名维持:资产名由标签前缀加 32 位十六进制标签组成,规则在配套的 CIP-67 里。标签相同即视为同一资产的两半,NFTFTRFT 等前缀让钱包一眼分清类型,也解释了为什么同一枚代币可能显示”有版本”——新旧版本就是不同 datum 的两代记录。CIP-0025 时代的平台默认解析某一种 JSON 约定,而这里协议层的名字规则是可程序化校验的。

读一枚卡达诺 NFT 元数据的顺序

  1. 读资产名称,按 CIP-67 拆出前缀与标签。
  2. 全链搜索同标签的参考 NFT 资产,找到它当前所在的输出。
  3. 取该输出 datum,按版本标记解析元数据正文;解析失败时先怀疑版本与编码而不是内容造假。
  4. 检查参考 NFT 被锁在哪类脚本地址——无花费脚本意味着发行方放弃了修改,其他脚本则保留了修改可能,对”永久”的预期要相应调整。

与以太坊路线的对照

以太坊的常见形态是合约账本加一个可变 tokenURI;卡达诺没有链上智能合约账本,CIP-68 把”可变性”从 URI 指针挪到了 datum 与锁定脚本的组合上,并把选择权明码写进地址设计。评估两边的元数据耐久问题时,找对”哪一层在承诺不变”才是关键。

与 CIP-25 老玩家的兼容困扰

生态里同时存在两代写法:CIP-0025 的元数据直接挂在铸造交易的元数据字段里,平台默认按标签 721 解析;CIP-68 则改走 datum 路线,标签换成 100 与 222。同一市场里两代资产并存时,钱包要按资产名前缀分流处理;把一枚老资产”升级”到新标准,本质是重新铸造一对新资产并迁移引用,老资产与历史交易仍然留在账面上。判断一枚卡达诺 NFT 用哪代标准,最快的线索就是看资产名的十六进制前缀——老格式内容里带 721 标记,新格式的参考 NFT 以标签 100 的编码 000643b0 开头、用户代币部分则使用 222 一类标签。此外配对规则还有硬条件:用户代币与参考 NFT 必须同属一个政策 ID,且一个用户代币必须恰好对应一枚参考 NFT。

用脚本条件化时多留一眼

对开发者与安全读者:datum 经引用输入进脚本,意味着脚本逻辑第一次能基于元数据内容做判断,这给”属性达标才可交换”类规则开了门;但脚本读到的 datum 只是当时那个输出的快照,验证逻辑必须自己处理”元数据已换代”的版本漂移问题,否则旧交易视图里的属性可能与最新版本对不上。

元数据机制决定藏品可读多久,本文仅为机制科普,不构成任何投资建议。