Archipelago

Lec 18GKR 协议

讲义完成更新于 2026-09-16

Lec 18 GKR 协议

MIT 6.5610 · Lecture 18 · 关键词:GKR、可验证计算、电路求值、逐层 sumcheck、多线性扩展、对数空间验证者 说明:以标准处理撰写(Goldwasser–Kalai–Rothblum 2008),要点与本课"GKR Protocol"一致。


TL;DR

  • GKR 把分层算术电路的输出正确性,逐层归约为输入层上的少量随机点求值。
  • 每一层借助 Sumcheck 与布线多项式压缩声明,避免验证者重做整个计算。
  • 它改善验证复杂度,但是否零知识、是否需要预处理仍取决于具体协议组合。

0. 目标

把一个分层算术电路的求值结果交给验证者,让其以远低于重新计算的代价确信结果正确——"委托计算(delegating computation)"。GKR 让验证者工作量近似与电路深度成正比、而非电路规模,且无需密码假设(信息论安全的交互证明)。


1. 设置:分层算术电路

电路有 dd 层,每层是 F\mathbb{F} 上的加法/乘法门。第 ii 层的值由第 i+1i+1 层决定。把每层的值看成函数 Wi:{0,1}ki→FW_i:\{0,1\}^{k_i}\to\mathbb{F}(输入是门的二进制编号),取其多线性扩展(multilinear extension, MLE) W~i\widetilde{W}_i 延拓到整个 Fki\mathbb{F}^{k_i}。

🔎 MLE 唯一性:布尔超立方上的任意函数有唯一的多线性扩展。把"层的值表"提升为低次多项式,正是为了能用 sumcheck(L15)这类多项式工具去验证。


2. 核心:逐层归约 + Sumcheck

定理

GKR 主循环 对每一层 ii,相邻层之间满足一条 "布线恒等式": W~i(z)=∑u,v∈{0,1}ki+1(add~i(z,u,v)(W~i+1(u)+W~i+1(v))+mult~i(z,u,v) W~i+1(u)W~i+1(v)),\widetilde{W}_i(z) = \sum_{u,v\in\{0,1\}^{k_{i+1}}} \Big(\widetilde{\mathrm{add}}_i(z,u,v)\big(\widetilde{W}_{i+1}(u)+\widetilde{W}_{i+1}(v)\big) + \widetilde{\mathrm{mult}}_i(z,u,v)\,\widetilde{W}_{i+1}(u)\widetilde{W}_{i+1}(v)\Big), 其中 add~i,mult~i\widetilde{\mathrm{add}}_i,\widetilde{\mathrm{mult}}_i 是描述布线(哪个门连哪两个门)的"布线谓词"多项式。

  • 对该求和跑一次 sumcheck:把"验证第 ii 层在随机点 zz 的值"归约为"验证第 i+1i+1 层在两个随机点 u,vu,v 的值"。 :::

🔎 逐层下推:验证者从输出层(它能直接看到声称的输出)开始,用 sumcheck 把对第 ii 层的信任,转化为对更靠近输入的第 i+1i+1 层在某随机点取值的信任;一层层推到输入层,验证者对输入有完整访问,可自行单点求值 W~d\widetilde{W}_d 完成最终核对。每层一次 sumcheck,可靠性由 Schwartz–Zippel 累积控制。

(两点 u,vu,v 通常用一条直线 + "reduce-to-one-point"技巧合并成单点,避免点数指数膨胀。)


3. 复杂度与意义

  • 验证者:O(d⋅polylog ∣C∣)O(d\cdot\mathrm{polylog}\,|C|) —— 与电路深度 dd、对数规模成正比,远小于 ∣C∣|C|。
  • 证明者:O(∣C∣)O(|C|)(精心实现可做到线性)。
  • 轮数:O(d⋅log⁡∣C∣)O(d\cdot\log|C|)。
  • 信息论安全:无需任何密码假设(可用 Fiat–Shamir 去交互后再变成密码假设下的非交互论证)。

完备性:诚实证明者必通过。 可靠性:错误结果通过概率 ≤O(d⋅deg⁡/∣F∣)\le O(d\cdot\deg/|\mathbb{F}|),大域下可忽略。


4. 工程视角

  • GKR 是"结构化计算的高效可验证外包"代表:把可表示为浅而规则电路的计算(如某些 ML 推理、数据并行任务)委托给不可信方并廉价验证。
  • 是许多现代 SNARK(如基于 sumcheck 的 Spartan/Hyrax/Libra)的骨架;配合多项式承诺即得简洁论证。
  • 局限:要求电路分层、规则(布线谓词可低次表示);非结构化电路 GKR 优势减弱。

5. GKR 协议小结

  • GKR 验证分层算术电路求值,验证者代价 ~ 深度而非规模。
  • 每层一条 add/mult 布线恒等式 → 一次 sumcheck,把"信任本层"下推为"信任下一层随机点"。
  • 推到输入层时验证者自行求值收尾;信息论安全。
  • 现代 sumcheck 系 SNARK 的核心。

我的理解

GKR 的关键不是一次证明整个电路,而是递归压缩“这一层算对了”的声明,直到验证者能自行检查输入层。