跳到主要内容

协议:概览

这是 DIG 协议的规范性说明,定义为自底向上的七个层次。每一层都以其规范性的 crate/文件作为标准参考。

这是权威的协议参考文档

本部分是该网络实际运行方式的权威来源。它按照网络实际运行的样子记录协议,并附带指向规范实现的 file:line 引用。

最基础的单位:capsule

有一个概念贯穿每一层:capsule = (store_id, root_hash),规范写法为 storeId:rootHashstore 是一系列有序排列(从旧到新)的 capsule,每次提交对应一个;它的身份标识 store_id 就是 Chia 上的一个 CHIP-0035 DataLayer singleton launcher id。身份、编译、定价、检索、缓存和溯源全部都是按 capsule 来定义的。

核心论点:盲态主机、客户端验证、链上锚定根哈希

  • 盲态主机。 主机只持有以哈希为键的不透明密文。它不持有任何 URN 或密钥,仅原样中继 capsule 自身的输出,也无法分辨命中与未命中。协议中不存在 decoy 字段,也没有 CDN —— 内容只通过 dig RPC 提供服务。
  • 客户端验证。 每一个字节都会在读取方的设备上,使用针对该资源的 Merkle 包含性证明,对照链上根哈希进行校验,然后再完成认证解密。信任永远不会建立在服务源之上。
  • 链上锚定根哈希。 受信任的根哈希来自 Chia 上的 CHIP-0035 singleton(通过 coinset.org 解析获得),而绝不来自服务端所提供的"最新版本"。

七个层次

#层次定义内容规范参考
0身份与命名store、capsule、generation;store_id = launcher iddigstore-core::capsule::urn
0URN 与寻址urn:dig:chia:… 语法;不含根哈希的 retrieval_keydigstore-core::urnlib.rs
1密码学HKDF 密钥派生函数;AES-256-GCM-SIV 加密封装digstore-core::crypto
1Merkle 包含性证明D5 逐资源叶子节点;NODE_TAG 折叠计算digstore-core::merkle
1BLS 签名与 DSTChia AugScheme;五种角色 DSTdigstore-crypto::bls
2capsule 格式DIGS 数据分段(BINDING D1)digstore-core::datasection
2自我防护模块固定大小的混淆处理;服务端 guestdigstore-compilerdigstore-guest
4链上锚定store = singleton;capsule = 根哈希推进chip35_dl_coindigstore-chain
4DIG CAT 支付与定价按 capsule 计价、动态调整、锚定美元chip35_dl_coin::dig
6dig RPC机器接口(JSON-RPC 2.0)hub retrievaldig-node
5§21 传输与推送dig:// 定位符、REST、push v1digstore-remote
7DIG 节点对等网络mTLS 对等身份、NAT 穿透、STUN、introducer、中继协议、对等 RPCdig-gossipdig-relaydig-natdig-node
6验证与溯源四道有序的完整性关卡digstore-core::merkledig-node
6盲态主机模型提供者匿名性;解析器;/v1 控制平面hub retrieval/resolver/api
一致性与对等实现跨实现的一致性纪律固定的黄金基准数据、OpenRPC diff

(第 3 层和 §21 传输层与读取路径相互交织;表格将它们归类到读者最先遇到的位置。完整的层级编号见各自页面。)

capsule 如何流经各层

一位发布者对内容进行分块加密(L1),封装成一个capsule 格式(L2),该格式能够自我提供服务(L3),随后被锚定上链(L4),并通过 §21 传输层推送出去(L5)。任何客户端都可以通过 dig RPC读取它,并完全在客户端验证它对照链上锚定根哈希的正确性(L6)。每一个密码学常量在生产者、主机和验证者之间都只有一处定义 —— 这就是 C8 一致性不变式

术语说明

  • chia:// —— 网络内容地址(浏览器打开的形式)。
  • dig:// —— §21 传输层定位符(CLI/对等平面)同时也是 DIG Browser 内部的页面协议 —— 两种不同的用途,绝不作为内容地址。
  • urn:dig: —— 前两者共同派生自的 URN 命名空间。
  • store / capsule —— 身份及其不可变的 generation。
  • $DIG —— 每个 capsule 需要支付的 CAT 代币;DigStore —— 该 store 的格式名称。