Skip to content

Sum-check 协议

Sum-check protocol · Sumcheck protocol

以逐变量低次多项式承诺和随机挑战验证 Boolean cube 上指数项多项式求和的交互协议。

形式陈述

gF[X1,,Xm],每个变量次数至多 d。Prover 声称

H=b{0,1}mg(b).

1 轮 prover 发送次数至多 d 的单变量多项式

G1(X1)=b2,,bm{0,1}g(X1,b2,,bm),

验证者检查 H=G1(0)+G1(1),通过后才随机取 r1F。第 i 轮发送

Gi(Xi)=bi+1,,bmg(r1,,ri1,Xi,bi+1,,bm),

并检查 Gi1(ri1)=Gi(0)+Gi(1)。末轮随机取 rm 后,验证者直接计算或查询 g(r1,,rm),检查其等于 Gm(rm)

诚实 prover 使所有等式恒成立,故 perfect completeness 为 1。若初始声明错误,任一轮伪多项式与诚实多项式之差非零、次数至多 d,在随机 ri 上碰巧相等的概率至多 d/|F|;对 m 轮作 union bound,soundness error 至多 md/|F|。协议有 m 轮,通信 O(md) 个域元素;验证者还必须承担一次 g 的随机点求值成本。

直觉

指数多个求和项被逐变量折叠:每轮只留下一个低次单变量多项式,再用随机点把当前承诺绑定到下一轮。撒谎者必须先提交多项式,之后才看到挑战;一旦承诺偏离真实部分和,只有少数域点能让谎言继续伪装。

交互顺序是 soundness 的核心。若 prover 先知道 ri 再选择 Gi,总能构造一个只在该点过关的伪多项式。

例子与边界

m=2 时,目标是 H=b1,b2g(b1,b2)。第一轮把第二变量求和得到 G1(X);随机固定 r1 后,第二轮只需证明 G1(r1)=G2(0)+G2(1),最后检查 G2(r2)=g(r1,r2)。四项总和由两次单变量承诺和一个随机点求值锁定。

验证者必须检查每个 Gi 的 degree bound。若允许 prover 发送任意高次多项式,它可在许多指定点插值通过检查,根数概率界不再给出小 soundness。域也需足够大;当 md|F| 时,上界可能没有信息,应扩域或重复协议。

Sum-check 不会免费验证任意黑盒 g。最后一步要求验证者能高效得到 g 在随机点的值,或由外层协议把该值归约成另一个可检查声明。Prover 的诚实计算仍可能需要枚举 2m 项;协议节省的是验证成本,不是总计算量。

推论与应用

Sum-check 把算术化后的指数求和声明压缩成线性轮数交互,是 IP=PSPACE、GKR 协议和可验证计算的基本组件。外层协议负责构造低次 g 与最终求值 oracle,本协议负责逐变量折叠和错误概率。

Soundness 参数必须与“每变量 degree”版本一致;若来源只给总次数界,应按其定理重算根数上界,不能拼接不同 convention 的常数。

参考资料
  • Carsten Lund, Lance Fortnow, Howard Karloff, and Noam Nisan, “Algebraic Methods for Interactive Proof Systems,” Journal of the ACM 39(4), 1992, pp. 859–868.
  • Justin Thaler, Proofs, Arguments, and Zero-Knowledge, 2023, Ch. 4, the sum-check protocol.