本文为参考译文。规范以英文版为准,如有出入,以英文版为准。 阅读英文版

简介

Label 309 是什么、它保证哪些原则,以及任何人如何在不依赖服务方的前提下验证一条记录。

Label 309 是一项面向 Cardano 区块链的存在性证明(PoE)开放标准。发布者先对某段内容计算一个密码学哈希,再把它锚定在一笔 Cardano 交易里,置于元数据标签 309 之下。从那一刻起,任何持有该交易引用的人,仅凭公开的区块链就能证明这段内容在该区块时间或更早之前已经存在,无需信任发布者、某个域名或任何服务器。

这项标准在核心层刻意保持精简:内容哈希本身就是要主张的事实,其余一切都只是关于它的可选元数据。在这一核心之上,标准还定义了可选的作者身份签名,以及一份可选的、面向特定接收方的加密(「密封」)载荷,而这些都从不需要任何可信中间方。

五条不变量

Label 309 中的一切,都从五条不容妥协的原则推导而来:

  1. **内容优先(content-first)。**内容哈希是首要主张,其余每个字段都只是关于它的元数据。
  2. **不依赖签发者(issuer-agnostic)。**任何钱包都可以发布一条记录。验证器从不信任发布者。
  3. **不依赖存储(storage-agnostic)。**存储 URI 是一份可选的、可包含多项的列表(ar://ipfs://);只含哈希的记录同样完全有效。
  4. **可独立验证(standalone-verifiable)。**验证器只需要交易元数据、(涉及内容主张时)内容字节,以及一个公开的区块链浏览器,自始至终都不需要签发者的服务器。
  5. **算法可演进(algorithm-agile)。**哈希、AEAD、KEM、KDF 和签名,全都引用可扩展注册表中的具名标识符。迁移到后量子算法是增量式的,而非破坏性变更。

合规档次

一条记录会落在四个层叠档次中的某一档,从一个裸时间戳,到一份加密的、面向接收方寻址的载荷。每个档次都是其上一档次的严格超集。

档次增加的内容回答的问题
core标签 309 下的一个内容哈希「这段内容在时间 T 之前已经存在」
signed一个或多个 COSE_Sign1 记录签名「……并且这把密钥为它背书」
sealed一份加密载荷(基于口令或接收方)「……保持机密,但带有时间戳」
recipient-sealed每位接收方专属的密钥槽(X25519 或 X-Wing)「……投递给特定密钥,私下持有」

作者身份与加密始终是可选的。即便一个验证器只懂 core,它依然能验证任意记录的时间戳主张。

验证流程一览

Label 309 定义了三种验证器角色,每一种都是前一种的严格扩展:

  • 结构校验器——一个作用于记录字节的纯函数。不涉及网络、不做签名核验、不做解密;它只确认记录在结构上符合模式(schema)以及标准的各项规则。
  • 公开验证器——从公开浏览器获取交易,执行结构校验,确认记录已锚定在链上,并验证任何作者身份签名。它不做解密。
  • 接收方验证器——一个公开验证器,并额外持有一把私钥,对寻址给它的密封载荷进行解密,再重新计算明文的哈希。

由于每种角色都基于公开数据和验证器自行选定的浏览器来工作,验证从不依赖发布者的基础设施。

核心特性

一份 Label 309 证明是你可以自行核查的东西。只要给定一个交易引用,并在涉及内容主张时给定原始字节,任何合规实现都能仅凭公开链得出相同的结论。

本规范的组织方式

后续各章依次定义了线格式(wire format,即标签 309 下的记录)、算法注册表、密码学密钥模型、作者身份签名、密封(加密)投递、验证流水线及其错误目录、安全模型,以及跨语言的合规契约。每一页都自成一体,并列出实现者所需的具名常量与规则。