ZK-SNARKs 數學推導完整指南:從零知識證明基礎到 Groth16 協議工程實踐
本文從工程師的視角出發,提供零知識證明數學基礎的完整推導。從密碼學安全假設出發,逐步建立零知識證明的理論框架,深入分析 zk-SNARKs 的核心協議——包括 Groth16、PLONK 與 Halo2 的設計原理與數學推導,並提供完整的程式碼範例說明如何在以太坊上實際部署零知識證明系統。
ZK-SNARK 數學推導
這篇深入 ZK-SNARK 的數學原理,適合對密碼學有興趣的讀者。
Schnorr 協議
最基礎的零知識證明協議,用於證明知道離散對數。
設定:
- 公開值:g(生成元),Y = g^x(公鑰)
- 私密值:x(離散對數)
協議步驟:
- 承諾:證明者選 r,計算 t = g^r,發送 t
- 挑戰:驗證者選 c,發送
- 回應:證明者計算 s = r + c·x mod q,發送 s
- 驗證:檢查 g^s = t · Y^c
數學推導:
g^s = g^(r+cx) = g^r · g^(cx) = t · (g^x)^c = t · Y^c ✓
橢圓曲線上的應用
以太坊使用 BN128 曲線:y² = x³ + 3
點加法公式:
λ = (y₂ - y₁) / (x₂ - x₁) mod p
x₃ = λ² - x₁ - x₂
y₃ = λ(x₁ - x₃) - y₁
Groth16 協議
目前最高效的 ZK-SNARK 實現之一。
可信設置
需要生成公共參考字串(CRS):
SRS = (g^τ⁰, g^τ¹, ..., g^τⁿ, g^α·g^τ⁰, ..., g^β·g^τ⁰, ...)
τ 必須被銷毀,否則可以被偽造證明。
證明生成
給定 QAP 多項式 A(x), B(x), C(x):
- 計算 A = A_τ(τ) + α + β
- 計算 B = B_τ(τ) + β
- 計算 C = C_τ(τ) + δ·H(τ)
- 輸出證明 π = (A, B, C)
驗證
e(A, B) = e(g, g)^(αβ) · e(g^δ, g^β) · e(C, g)
只需要 3 個配對運算,極快。
安全性分析
知識假設:如果能偽造證明,就能解決 q-SDH 問題。
模擬安全性:存在模擬器可以模擬任何真實證明者的視角。
結語
ZK-SNARK 的數學很優雅,但核心思想很簡單:用多項式承諾和配對來實現「簡潔、可驗證、零知識」的證明系統。
COMMIT: Add ZK-SNARK mathematical derivation guide
相關文章
- ZK-SNARK 電路設計數學推導進階教程:從理論到 Circom/Noir 實作 — 本文深入探討 ZK-SNARK 電路設計的數學推導與實作細節,是對現有 ZK-SNARK 數學推導文章的進階補充。我們從電路複雜度理論出發,詳細推導約束系統的數學原理,並提供完整的 Circom 與 Noir 實作範例。涵蓋電路複雜度邊界、橢圓曲線群運算、配對函數、R1CS 到 QAP 轉換、查找表約束、Merkle 樹驗證等核心技術。
- ZK-SNARK 數學推導完整指南:從零知識證明到 Groth16、PLONK、STARK 系統的深度數學分析 — 本文從數學基礎出發,完整推導 Groth16、PLONK 與 STARK 三大主流 ZK 系統的底層原理,涵蓋橢圓曲線密碼學、配對函數、多項式承諾、LPC 證明系統等核心技術,同時提供 Circom 與 Noir 電路開發的實戰程式碼範例。截至 2026 年第一季度,ZK-SNARK 已被廣泛部署於 zkRollup、隱私協議、身份驗證系統等場景。
- Privacy Pool ZK-Proof 驗證合約完整實作指南:從電路設計到 Solidity 部署 — 本文深入探討 Privacy Pool 系統中零知識證明(ZKP)驗證合約的完整實作流程。我們從密碼學基礎出發,詳細解釋 Groth16 和 PLONK 兩種主流零知識證明系統的原理,提供完整的 Circom 電路代碼範例,並展示如何將這些電路部署到以太坊區塊鏈上進行驗證。涵蓋 Merkle 樹驗證電路、承諾方案實現、完整隱私池合約代碼、以及可信設置教學。
- ZK-SNARK 完整學習路徑:從基礎數學到 Circom/Noir 電路設計再到實際部署 — 本學習路徑提供零知識證明從理論基礎到實際開發的完整指南。從離散數學、群論、有限域運算開始,深入橢圓曲線密碼學和配對函數,再到 Groth16、PLONK 等主流證明系統的數學推導,最終落實到 Circom 和 Noir 兩種電路描述語言的實戰開發。涵蓋有限域運算、多項式承諾、KZG 方案、信任設置等核心主題,提供從基礎到部署的完整學習地圖。
- 以太坊隱私技術的密碼學原創分析:ZK 電路設計的信任假設深度比較 — 本文原創分析不同零知識證明系統的信任假設差異,深入比較 Groth16、Plonk、Halo2、STARK 等主流 ZK 系統的信任模型。以太坊隱私方案如 Tornado Cash、Aztec Network、Privacy Pools 的信任假設如何影響安全性?為什麼 Halo2 被稱為「透明」的系統?完整的密碼學推導和量化評估框架,幫助理解信任與透明之間的平衡取捨。
延伸閱讀與來源
- zkSNARKs 論文 Gro16 ZK-SNARK 論文
- ZK-STARKs 論文 STARK 論文,透明化零知識證明
- Aztec Network ZK Rollup 隱私協議
- Railgun System 跨鏈隱私協議
這篇文章對您有幫助嗎?
請告訴我們如何改進:
0 人覺得有帮助
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!