Summary

  • 这份个人 Internet-Draft 允许发行方针对一个引用的链状态判断钱包条件,再用 JWKS 可离线验证的方式签出布尔结果。
  • JSON 形式只把 id、pass、results、attestedAt 放进签名字节;expiresAt、kid、外层包装以及通常的钱包身份都在签名范围之外。
  • 签名有效只证明发行方签过这份规定格式的观察,不能证明该区块仍是 canonical、状态仍是当前、结果不可重放,或依赖方理应放行。

绿色答案可能指向已经离开的世界

一个访问系统询问某钱包是否仍有足够质押。发行方从链数据源读取状态,选定一个区块,算出 pass: true 并签名。依赖方五秒后验证成功。此时质押可能已经转走,索引器可能落后,原区块也可能被重组移出 canonical 历史。

签名没有说谎。它如实保护了“发行方在这个锚点上作出这次判断”这一句话。错误发生在产品把它改写成“钱包现在满足条件,因此动作已获授权”。

01 版于 2026 年 9 月 27 日提交。Datatracker 把它归入 Individual Submissions,stream 为空,状态是 Active 与 I-D Exists。文本说明自己只是用 JWT、JWKS、JOSE 组合一个 use case,而不是定义新的 wire protocol。它不是工作组采纳文本、IETF 共识、RFC、互操作结果或部署证明。

四个签名成员,多个相邻决定

JSON 的签名对象只有 id、pass、results、attestedAt。每个 result 包含实际求值条件、conditionHash 和链特定引用:EVM 是区块号与时间,XRPL 是 ledger index 及可用时的 hash,Solana 是 slot,Bitcoin 是高度与 tip hash。

01 版保留依赖精确成员顺序的 bare scheme,又增加带 domain tag 与版本号、采用 RFC 8785 canonical JSON 的方案。新方案解决的是不同实现能否重建同一串字节。字节一致并不会让 RPC 路径独立,也不会让所选区块获得最终性。

kid 从发行方 JWKS 中选定密钥和重建方案。缺失或未知时,结论是 unverifiable,而不是 refuted,验证器不得拿另一把密钥代替。新密钥发布后的缓存窗口里,同一份材料会让一部分验证器成功,另一部分无法验证;这是一种知识状态分裂,不等于有人伪造了签名。

钱包绑定也随格式变化。签名 JSON 通常并不写明钱包;某些 evaluatedCondition 可能带地址,但二手接收者不能凭空补上。JWT 用签名的 sub 绑定钱包,用签名的 exp 保护到期时间。读取这些 claim 的一方必须验证 JWT 自己,旁边 JSON 的签名不能替代它。

新鲜度是锚点之上的政策

result 内的链引用与签名的 attestedAt 是受到密码保护的新鲜度锚点。它们是否够新,取决于依赖方的业务窗口。签名年龄、区块年龄和动作发生时间是三个变量。刚签出的材料完全可能引用一个不适合即时支付的旧区块。

JSON 的 expiresAt 只是未签名 TTL 提示。01 版建议把它限制在签名 attestedAt 加发行方公开有效期以内;需要防篡改到期时间时,应使用 JWT 的签名 exp。更关键的是,到期检查是 RECOMMENDED。审计必须保存该步骤究竟做过、通过、失败还是未做,不能从“签名成功”倒推。

重放同样没有被时间窗口自动消除。签名 id 可用于 seen-set,但 nonce 与 audience 绑定留给集成 profile。尚未过期的材料也可能被拿到另一笔交易或另一个接收方使用。

链会改写昨天,签名不会跟着撤销

草案明确不规定 RPC 路由、索引器、archive node、finality 与 data availability,并承认签名后发生的 reorg 可能让被观察状态不再 canonical。确认深度、强最终性链、独立数据源与撤销流程都是运营决定。

重新计算 conditionHash 能发现声明的条件被改动,但不能证明发行方查询了正确链、正确区块或使用了正确商业阈值。Merkle proof 可以把一个值连接到指定 state root;仍需判断这条 root 是否 canonical、是否足够 final、历史事实现在是否仍能支持动作。

因此至少有三只钟:发行方观察时钟、链 canonical/finality 时钟、依赖方决策时钟。材料把它们连接起来,却没有把它们合并。

不要把证据链压成一个布尔值

Lu Heng 的现实层次要求把签名表示、发行方观察、canonical 链状态、当前状态与业务结果分开。Running-Code Primacy 把真实链与实际服务结果放在“attestation verified”标签之上。Minimum Initial Specification 则支持小而确定的共享格式,同时把 finality 与授权作为显式、可撤销的本地决策。

完整记录应保存发行方、精确 kid、scheme 与 domain tag、重建字节 hash、主签名及 companion verdict、condition hash、钱包绑定位置、链引用、独立复核与 finality 判断、签名时间、到期判断、replay/audience 判断、授权规则和动作结果。

来源与限制

这些来源不能证明 IETF 共识、工作组采纳、实现、部署、独立链观察、最终性、钱包控制或持有人同意,也不能证明授权、结算、交付或业务结果。草案中关于生态采用的介绍仍只是作者提供的 informative claim。