跳至主要内容

Protocol: Overview

這是 DIG 協定的規範性規格,以由下而上的七個層級定義。每個層級都以其規範性 crate/檔案作為權威參考。

這是權威的協定參考文件

本章節是這個網路實際運作方式的權威來源。它會以指向規範性實作的 file:line 引用方式,記錄協定實際運行的樣貌。

最基本的單位:capsule

有一個概念貫穿每一個層級:capsule = (store_id, root_hash),規範表示為 storeId:rootHashstore 是一連串按時間排序(由舊到新)的 capsule 序列,每次提交產生一個;其身分識別碼 store_id 即是 Chia 上一個 CHIP-0035 DataLayer 單例的 launcher id。身分、編譯、定價、取回、快取與來源證明,全部都是依 capsule 為單位定義的。

核心論點:主機盲目、用戶端驗證、鏈上錨定的 root

  • 主機盲目。 主機只持有以雜湊值為鍵的不透明密文。它不持有 URN 也不持有金鑰,僅原樣轉發 capsule 自身的輸出,且無法判斷是命中還是未命中。傳輸中並沒有 decoy 欄位,也沒有 CDN——DIG 上的內容僅透過 dig RPC 提供服務。
  • 用戶端驗證。 每一個位元組都會在讀取端裝置上,依照鏈上 root 搭配逐資源的 merkle 納入證明進行檢查,然後才進行帶驗證的解密。信任永遠不會建立在服務來源之上。
  • 鏈上錨定的 root。 受信任的 root 來自 Chia 上的 CHIP-0035 單例(透過 coinset.org 解析),絕不會來自伺服端提供的「最新版本」。

七個層級

#層級定義內容規範性參考
0身分與命名store、capsule、generation;store_id = launcher iddigstore-core::capsule::urn
0URN 與定址urn:dig:chia:… 語法;不含 root 的 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 = 單例;capsule = root 推進chip35_dl_coindigstore-chain
4DIG CAT 付款與定價依 capsule 計價、動態、以美元計價chip35_dl_coin::dig
6dig RPC機器介面(JSON-RPC 2.0)hub retrievaldig-node
5§21 傳輸與推送dig:// 定位器、REST、推送 v1digstore-remote
7DIG 節點對等網路mTLS 對等身分、NAT 穿越、STUN、介紹者(introducer)、中繼傳輸協定、對等 RPCdig-gossipdig-relaydig-natdig-node
6驗證與來源證明四道有序的完整性關卡digstore-core::merkledig-node
6盲目主機模型對提供者的盲目性;解析器;/v1 控制平面hub retrievalresolverapi
一致性與對等驗證跨實作的一致性紀律固定的黃金測資、OpenRPC diff

(第 3 層與 §21 傳輸與讀取路徑相互交錯;此表格依讀者實際接觸到的位置分組。完整的層級編號則列於各頁面之中。)

capsule 如何流經各層級

發布者將內容進行分塊加密(L1),封裝成一個capsule 格式(L2),使其能夠自我提供服務(L3),將其錨定至鏈上(L4),並透過 §21 傳輸協定推送出去(L5)。任何用戶端都能透過 dig RPC 讀取它,並完全在用戶端對照鏈上錨定的 root 驗證它(L6)。每一個密碼學常數在生產者、主機與驗證者之間都只有唯一一份定義——這就是 C8 一致性不變量

術語

  • chia://——網路的內容地址(瀏覽器開啟的對象)。
  • dig://——§21 的傳輸定位器(CLI/對等網路層面),同時也是 DIG Browser 內部的頁面配置方案——兩種用途各自獨立,都不是內容地址。
  • urn:dig:——上述兩者共同衍生出的 URN 命名空間。
  • store/capsule——身分識別碼及其不可變的世代(generation)。
  • $DIG——每個 capsule 需支付的 CAT;DigStore——store 格式本身。