Week 33 复习 — ZK 理论整合
整合 Day 209-221 全部 ZK 理论;建立从定义到前沿系统的完整知识网
日期: 2026-12-09 方向: 零知识证明 / ZK理论 阶段: Phase 4 - ZK基础理论 (Day 209-222) 标签: #ZK #Review #整合 #理论核心
今日目标
| 类型 | 内容 |
|---|---|
| 学习 | 整合 Day 209-221 全部 ZK 理论;建立从定义到前沿系统的完整知识网 |
| 实操 | 自检 50 题;mind map;面试 30 题速答 |
| 产出 | zk_theory.md — 一站式 ZK 理论手册 |
一、14 天知识地图
┌──────────────────────────────────────────────────────────────┐
│ Phase 4 ZK基础理论 (Day 209-222) │
└──────────────────────────────────────────────────────────────┘
209 ZK 定义 (Completeness / Soundness / ZK / 模拟器)
│
210 Σ-协议 (Schnorr ID, special soundness, HVZK)
│
211 Fiat-Shamir (交互→非交互, Random Oracle Model)
│
┌────┴─────────────────────────────────────────────────┐
│ │
特殊语言 (DL) 通用 NP 语言
Schnorr signature, ring sig │
▼
212 电路化 (R1CS, AIR)
│
213 QAP (Lagrange 插值)
│
214 Groth16 (3 group elt)
│
215 Week 32 复习 (SNARK basics)
│
┌───────────────────┼─────────────────────┐
│ │ │
216 PlonK 217 Halo2 218 STARK
(univ setup, (no setup, (transparent,
custom gates) IPA, recursion) post-Q, FRI)
│ │ │
└───────────────────┼─────────────────────┘
│
219 SNARK vs STARK 全对比
│
220 PIOP / Sumcheck (理论核心)
│
221 Recursion (Halo / Nova / Mina)
│
222 Week 33 复习 (本文)
二、核心概念矩阵
2.1 ZK 三性质
| 性质 | 形式化 | 工具 |
|---|---|---|
| Completeness | $x \in L \Rightarrow \Pr[V=1] \geq 1-\text{negl}$ | 协议正确性证明 |
| Soundness | $x \notin L \Rightarrow \Pr[V=1] \leq \text{negl}$ | Schwartz-Zippel, list decoding |
| Zero-Knowledge | $\exists$ sim s.t. sim ≈ real view | rewinding, programming RO/CRS |
| Knowledge sound | extractor outputs $w$ | special soundness, KEA |
2.2 协议族
| 类别 | 代表 | 输出形式 |
|---|---|---|
| Σ-protocol | Schnorr, Chaum-Pedersen | 3-round, public coin |
| NIZK (FS) | Schnorr signature, BBS+ | non-interactive |
| SNARK | Groth16, PlonK | succinct (KB), pairing |
| STARK | StarkNet, Risc Zero | scalable, hash-only |
| Recursive | Nova, Halo | folded / amortized |
三、关键数学工具
| 工具 | 用途 | 出现于 |
|---|---|---|
| Lagrange interpolation | R1CS → QAP | Day 213 |
| Schwartz-Zippel | poly identity test | Day 213, 220 |
| Bilinear pairing | KZG, Groth16 verify | Day 214, 216 |
| FFT / NTT | Lagrange / FRI 加速 | Day 213, 218 |
| Reed-Solomon code | low-degree test | Day 218 |
| Merkle tree | hash-based commitment | Day 218 |
| Sumcheck | multivariate poly sum | Day 220 |
| Cycle of curves | recursion native arith | Day 217, 221 |
| Multilinear extension | hypercube poly | Day 220 |
| Pedersen commitment | binding, hiding | Day 221 (Nova) |
四、SNARK / STARK 系统比较表(决策卡)
| 系统 | Setup | Proof | Verify | Field | Quantum | Recur | EVM gas |
|---|---|---|---|---|---|---|---|
| Groth16 | per-circuit MPC | 192 B | 3 ms | BN254/BLS | ❌ | 难 | 200K |
| PlonK | universal MPC | ~500 B | 10 ms | BN254/BLS | ❌ | 中 | 300K |
| Halo2 | none | 3-10 KB | 50-200 ms | Pasta/BN254 | ❌ | 易 | 600K |
| STARK | none | 50-200 KB | 5-50 ms | Goldilocks | ✅ | 易 | 400K-5M |
| Bulletproofs | none | $\log N$ | $O(N)$ | secp/BN | ❌ | 难 | 不实用 |
| Nova | none | $\sim$ 10 KB | $O(N)$ + Spartan | Pasta | ❌ | 极易 | NA |
| Spartan | none (transparent PCS) | KB | $O(\log N)$ | BN254 | ❌ | 中 | NA |
五、协议-应用映射
| 协议 | 真实部署 |
|---|---|
| Schnorr signature | Bitcoin Taproot, Ed25519 |
| Groth16 | Tornado Cash, Filecoin, Zcash Sapling, Aztec V1, Sui zkLogin |
| PlonK | Aztec Connect, Polygon zkEVM, Mina (variant) |
| Halo2 | zkSync Era (boojum), Scroll, Privacy Pools, Axiom |
| STARK | StarkNet, Polygon Miden, Risc Zero, dYdX (StarkEx) |
| Bulletproofs | Monero (range proofs), Lightning |
| Nova | Lasso/Jolt zkVM (research) |
六、面试 30 题速答
1. ZK 三大性质? 完备性、可靠性、零知识(模拟器存在)。
2. Soundness vs Knowledge soundness? 前者证 $x\in L$;后者保证 prover 知道 witness。
3. 为什么 SNARK 是 argument 而非 proof? Succinct + ZK 信息论上不可能(Gentry-Wichs),需要密码假设 → 仅对 PPT 对手安全。
4. Σ-协议 3 性质? Completeness, special soundness, special HVZK。
5. Schnorr 如何防 nonce 重用? 确定性 nonce $r = H(\text{sk}, m)$(RFC 6979 / EdDSA 风格)。
6. Fiat-Shamir 如何转非交互? $c = H(\text{statement} | \text{commitment})$ 替代 verifier 真随机。
7. Weak FS 攻击本质? 哈希漏掉 commitment / statement → 攻击者后选 commitment 反推 witness。
8. R1CS 形式? $Az \circ Bz = Cz$,每行 rank-1 quadratic constraint。
9. R1CS 和 AIR 区别? R1CS 通用电路;AIR 是 trace + transition constraints,适合 VM。
10. QAP 关键关系? $A(X)B(X) - C(X) = H(X) Z(X)$,$Z(X) = \prod (X - r_i)$。
11. Groth16 proof 大小?为什么? 192 bytes (3 group elements)。$\alpha\beta\gamma\delta$ 分母 absorb 所有 terms 进 $C$。
12. Trusted setup 风险? Toxic waste 泄露 → soundness 完全 broken。MPC ceremony 解决。
13. PlonK 创新点? Universal SRS + custom gates + plookup + permutation argument。
14. Halo2 优势? 无 setup + recursion-friendly (cycle of curves + IPA accumulation)。
15. STARK 全称含义? Scalable Transparent Argument of Knowledge。
16. STARK 后量子安全? 是,仅基于 hash collision-resistance,Grover 给 $\sqrt{N}$ speedup。
17. FRI 协议核心? deg-$k$ poly fold to deg-$k/2$,$\log k$ 轮 + query phase 检查 fold consistency。
18. KZG 与 IPA 区别? KZG: pairing-based, $O(1)$ verify, 需 trusted setup。IPA: DL only, no setup, $O(\log N)$ proof, $O(N)$ verify。
19. Schwartz-Zippel 用途? 非零 deg-$d$ poly 在随机点 = 0 概率 ≤ $d/|F|$ → 多项式 identity 测试。
20. Sumcheck 协议复杂度? prover $O(2^v \cdot d)$, verifier $O(vd) + 1$ oracle query。
21. Multilinear extension? ${0,1}^v \to F$ 函数的 deg-1-per-var 多项式扩展,唯一存在。
22. Recursion 为什么需要 cycle of curves? EC ops in scalar field 必须用 base field arithmetic → cycle 让两曲线交替,每层 native。
23. Nova folding scheme? fold 两个 relaxed R1CS instances $(z, u, E)$ 成新 instance,保持 satisfiability。
24. Mina 区块链特点? 全 recursion,链 size 常数 22 KB。
25. zk-rollup 用什么 SNARK? zkSync (Halo2/boojum), Scroll (Halo2), Polygon zkEVM (PlonK), StarkNet (STARK)。
26. EVM-friendly hash? Poseidon, Reinforced Concrete, MiMC(设计为 R1CS 友好)。
27. plookup 用途? $O(1)$ lookup 表(XOR, range, SBox),降 SHA256 电路 5-10x。
28. Groth16 的 verify gas (BN254)? ~200K gas (3 pairings precompile alt_bn128)。
29. STARK proof on-chain 为什么 5M gas? EVM 无 STARK precompile,纯 Solidity verify Merkle paths + FRI checks。
30. SNARK 选型流程?
- 是否 EVM 部署?2. proof size 限制?3. trusted setup OK 否?4. recursion 需求?5. 量子威胁?6. 团队工具熟悉度。
七、术语速查表
| 术语 | 一句话 |
|---|---|
| ZK | 不泄露 witness 的证明 |
| NIZK | 非交互式 ZK |
| SNARK | Succinct NIZK Argument of Knowledge |
| STARK | Scalable Transparent ARgument of Knowledge |
| CRS | 公共参考字符串(trusted setup output) |
| MPC ceremony | 多方协作生成 CRS |
| Toxic waste | setup 中应销毁的随机性 |
| QAP | Quadratic Arithmetic Program |
| R1CS | Rank-1 Constraint System |
| AIR | Algebraic Intermediate Representation |
| PCS | Polynomial Commitment Scheme |
| KZG | Kate-Zaverucha-Goldberg PCS |
| IPA | Inner Product Argument |
| FRI | Fast Reed-Solomon IOP |
| Sumcheck | LFKN 1992 多元 sum 协议 |
| MLE | Multilinear Extension |
| PIOP | Polynomial IOP |
| GKR | Goldwasser-Kalai-Rothblum 协议 |
| IVC | Incremental Verifiable Computation |
| PCD | Proof-Carrying Data |
| Folding | Nova-style instance reduction |
| Cycle of curves | base/scalar field 互换的两曲线 |
八、必读论文清单
| 论文 | 年份 | 链接 |
|---|---|---|
| GMR (ZK 定义) | STOC 1985 | foundational |
| GMW (NP=ZK) | JACM 1991 | foundational |
| LFKN (Sumcheck) | JACM 1992 | foundational |
| Schnorr ID | CRYPTO 1989 | classic |
| Fiat-Shamir | CRYPTO 1986 | classic |
| Pinocchio | IEEE S&P 2013 | first practical SNARK |
| Groth16 | EUROCRYPT 2016 / ePrint 2016/260 | must read |
| PlonK | ePrint 2019/953 | must read |
| Halo | ePrint 2019/1021 | must read |
| STARK | ePrint 2018/046 | must read |
| Nova | CRYPTO 2022 / ePrint 2021/370 | must read |
| Spartan | CRYPTO 2020 | sumcheck SNARK |
| HyperPlonk | EUROCRYPT 2023 | multilinear |
教材: Justin Thaler《Proofs, Arguments, and Zero-Knowledge》(免费)— ZK 现代理论标准教材。
九、自检题(50题)
基础(10)
- Computational vs Statistical ZK 区别?
- PoK 的 extractor 干什么?
- HVZK 与 Full ZK 区别?
- ROM 假设的局限?
- forking lemma 给什么 bound?
- Schnorr 抽 witness 的公式?
- weak FS 实战漏洞举例?
- R1CS 中 boolean check 怎么写?
- QAP 的 $H(X)$ deg?
- Groth16 的 $[A]_1, [B]_2, [C]_1$ 各 absorb 什么?
中级(15)
- PlonK 的 selector vs advice column?
- plookup 用途?
- Halo2 selector compression?
- cycle of curves 安全等级?
- STARK 的 blowup factor 选择?
- FRI 每轮 fold 的代数?
- KZG vs IPA 选择标准?
- Schwartz-Zippel error 算法?
- Multilinear extension 唯一性?
- Sumcheck soundness loss?
- GKR 与 sumcheck 关系?
- Spartan 与 PlonK 的优势对比?
- HyperPlonk 用 multilinear 的好处?
- Nova relaxed R1CS 形式?
- Halo accumulation 直觉?
高阶(15)
- 设计 zkRollup 选 STARK or SNARK?
- zk-EVM 中 trace 大小约束?
- recursive proof 的 verifier circuit 大小?
- 量子时代 SNARK 怎么办?
- 可信 setup ceremony 协调难点?
- Frozen Heart attack 修复?
- 后量子 SNARK 路线图?
- Lasso/Jolt 用 sumcheck 的优势?
- Nova vs HyperNova 选择?
- Mina 22 KB 区块链 trade-off?
- RISC-V zkVM 的 PIOP 选择?
- 链上 Groth16 verifier 优化?
- 多方 ZK proof aggregation?
- PCS 的 linear-time prover 趋势?
- 同态加密 + ZK 结合方向?
系统(10)
- Tornado Cash 选 Groth16 原因?
- StarkNet 选 STARK 原因?
- zkSync Era 选 Halo2 原因?
- Aztec 选 PlonK 原因?
- Risc Zero 选 STARK + Groth16 wrap 原因?
- Mina 选 PlonK + Pasta cycle 原因?
- Polygon zkEVM 选 PlonK + STARK 混合原因?
- Filecoin 选 Groth16 原因?
- Privacy Pools 选 Halo2 原因?
- Penumbra 选 Halo2 原因?
十、ZK 技能进阶路径(接 Day 222 后)
短期(Day 223-250 Phase 4 后续)
- Circom / Halo2 实战
- 写 zkApp(mixer, range proof, anonymous voting)
- 链上 Groth16 verifier 部署
- 阅读 Plonky3 / stwo 源码
中期(Phase 5)
- 写 zkVM 的小子集(RISC-V subset → STARK)
- 贡献 arkworks / halo2 / barretenberg
- 设计 application-specific circuit (ZKML, zkBridge)
- 安全审计 ZK code(under-constrained 漏洞)
长期(求职 ZK 协议工程师)
- 攻读 ZK research(HyperPlonk / Folding 系)
- 加入 Linea/Scroll/zkSync/Aztec/Risc Zero
- 提案 / 参与 ZK 标准化(EIP-XXXX, ISO ZKP TC68)
十一、求职定位
你(10年金融零售 PM/BA + ZK 理论 + Web3 + 架构)的稀缺组合:
┌─────────────────────────────────────────────────┐
│ 目标岗位 │
├─────────────────────────────────────────────────┤
│ ZK Protocol Researcher (Linea/Scroll/zkSync) │
│ ZK Product Manager (Aztec, Risc Zero) │
│ Cryptography Lead (RWA/合规 ZK) │
│ zkVM Architect (Polygon Miden / Risc Zero) │
│ ZK Auditor (Trail of Bits, ZKSecurity, Veridise)│
└─────────────────────────────────────────────────┘
面试核心装备:
- 14 篇 Day 209-222 笔记(数学严格)
- Schnorr.py / sigma.py / sumcheck.py / nova_fold.py 实战代码
- 能 30 分钟白板推 Groth16 verify equation
- 能解释 STARK FRI fold 数学
- 能对比 5 个主流 ZK 系统的 trade-off
十二、ZK 学习里程碑(Phase 4 后续)
| Day | 主题 | 状态 |
|---|---|---|
| 209-222 | ZK 基础理论 | ✅ |
| 223-235 | Circom / Halo2 实战 | 待 |
| 236-250 | zkML / zkBridge / Aggregation | 待 |
| 251-270 | zkVM (Risc Zero / Cairo) | 待 |
| 271-285 | ZK 安全审计 | 待 |
| 286-300 | 综合作品集 + 求职 | 待 |
十三、明日预告
Day 223 — Circom 实战入门:写第一个 Halo2 / Circom 电路;设计 mixer 风格 nullifier 电路;运行端到端 Groth16 setup → prove → verify pipeline。