概括:網路驗證私有狀態轉換
Overpass通道引入了一種創新的第二層擴充套件方法,透過使用加密證明和稀疏默克爾樹,實現了網路驗證私有狀態轉換,而無需依賴傳統的共識機制。這確保了隱私性、可擴充套件性和可驗證性。
工作原理
1. 默克爾樹結構
- 私有稀疏默克爾樹(SMTs):每個錢包維護一個包含其所有資料(如餘額和通道狀態)的私有稀疏默克爾樹。
- 默克爾根(RR):網路只知道默克爾根RR,它代表錢包的聚合狀態。底層資料保持在客戶端私有。
2. 狀態轉換
- 更新狀態:當錢包執行狀態轉換(如通道更新)時,它計算:
- 一個新的默克爾根R'R′反映更新後的狀態。
- 一個證明PP來演示R'R′是如何從之前的狀態派生出來的。
- 證明元件:該證明包括重新計算R'R′所需的兄弟雜湊。
3. 網路的作用
- 無需訪問私有資料的驗證:網路透過以下方式驗證轉換:
- 使用提供的證明PP和新狀態資料重新計算R'R′。
- 確保轉換遵守預定義的約束條件(如餘額完整性、nonce遞增)。
- 約束條件執行:透過檢查這些約束條件,網路可以在不需要檢視底層私有資料的情況下確保每個狀態轉換的有效性。
4. 網路如何知道期望什麼
- 初始默克爾根(R_0R0):在錢包建立時,網路儲存初始默克爾根R_0R0。
- 後續轉換:對於每個狀態轉換:
- 網路期望一個證明PP與新根R'R′保持一致。
- 它驗證轉換約束條件得到滿足,確保有效性。
- 無需信任的驗證:依靠初始根和加密證明,網路可以在不訪問私有客戶端資料的情況下檢測篡改或無效操作。
5. 隱私和安全
- 資料隱私:所有底層資料都保留在SMT中的客戶端。
- 最小暴露:網路只檢查公共根(R_0R0、R'R′)和證明(PP),以及轉換約束條件。
- 安全保證:這種方法確保了網路的隱私性、可擴充套件性和可驗證性。
為什麼這種方法有效
透過僅依賴默克爾根和加密證明,網路可以在不檢視私有客戶端資料的情況下檢測篡改或無效操作。每個轉換都必須與初始狀態加密對齊,並遵循規則,從而確保無需信任的驗證。這種設計在沒有共識的情況下也能很好地工作,因為它利用了單向加密證明以及稀疏默克爾樹和單邊通道的固有屬性。
使用LaTeX數學和虛擬碼的正式解釋
默克爾樹初始化和驗證
1. 默克爾樹基礎
初始化:默克爾樹使用一組葉子\{L_1, L_2, \ldots, L_n\}{L1,L2,…,Ln}進行初始化,其中每個葉子L_iLi表示某些資料(如通道狀態)。
計算根:該樹計算雜湊直到默克爾根RR:
R = H(\ldots H(H(L_1, L_2), H(L_3, L_4)), \ldots)R=H(…H(H(L1,L2),H(L3,L4)),…)
2. 狀態轉換證明
更新葉子:對於狀態轉換,客戶端計算:
- 基於通道操作更新的葉子L_i'L′i。
- 一個證明P_iPi,包含重新計算根所需的兄弟雜湊。
新根計算:
R' = \text{RecomputeRoot}(L_i', P_i)R' = 重新計算根(L_i', P_i)網路接收到 R_{k+1}、P_k^{(i)}和L_{k+1}^{(i)}。
驗證:
R_{k+1} = \text{RecomputeRoot}(L_{k+1}^{(i)}, P_k^{(i)})確保:
C(L_k^{(i)}, L_{k+1}^{(i)})