∑

数学知识体系

Observatory Archive of Mathematics
⌕2026/8/31
概念

SNARKs/STARKs

简洁非交互式知识论证让证明体积小且验证极快,zk-SNARK 依赖可信设置,zk-STARK 用哈希函数去除可信设置,支撑 Zcash 等隐私应用。

所属主题:密码学 ↗
阅读路径

参考可汗学院 Get ready 机制:先修概念 → 当前概念 → 进阶概念,✓ 表示已读。

当前概念

SNARKs/STARKs密码学

01定义

简洁非交互式知识论证把交互式零知识压缩为一条短证明:zk-SNARK 证明体积 KB 级、验证毫秒级(依赖可信设置);zk-STARK 用哈希抗量子且去可信设置,证明稍大——它们是区块链隐私与扩容的核心引擎。
zk-SNARK 证明 ~KB,验证 ~ms zk-STARK 证明 ~百 KB,抗量子 SNARK 流程:电路 → R1CS → QAP → 配对承诺 STARK 流程:执行轨迹 → FRI 多项式测试 → 哈希 共同性质:简洁(短证明快验证)+ 零知识 「我知道 x 使 f(x)=y」却不泄露 x 可信设置:SNARK 的软肋,STARK 以哈希去除
SNARK 与 STARK:两条通往简洁零知识的路

02核心要点

01

SNARK 的构造链

计算编译为算术电路,约束系统 R1CS 再化为 QAP 多项式;配对上的多项式承诺使验证者抽查一点即验全局——Groth16 等方案成为 Zcash 与 Rollup 基础。

02

STARK 与 FRI

STARK 用代数中间表示 + FRI(快速 Reed-Solomon 交互式测试):纯哈希构造、抗量子、无需可信设置,代价是证明体积大一个量级——以太坊扩容(StarkNet)的选择。

03

应用的形状

隐私:证明「我有足够余额」而不露金额;扩容:链下算千笔交易、链上验一条证明;可验证计算:任何昂贵计算都可外包并廉价核验。

03关键公式

π←Prove(C,x,w),Verify(C,x,π)∈{0,1}, ∣π∣=O(log⁡)\pi\leftarrow\mathrm{Prove}(C,x,w),\quad \mathrm{Verify}(C,x,\pi)\in\{0,1\},\ |\pi|=O(\log)

04历史沿革

Groth 2010 年给出首个实用 SNARK,Groth16(2016)成为标准;Ben-Sasson 等 2018 年提出 STARK;Zcash 2016 年上线使零知识进入生产系统。

05应用与延伸

Zcash 隐私交易、以太坊 zk-Rollup 扩容(zkSync/StarkNet)、链上身份验证(年龄 ≥ 18 而不露生日)、可验证机器学习推理。

06交互演示

低次多项式承诺:坏点越多越易被戳穿拖 k 加入坏点:随机抽检与二次插值比对,坏点过半前必被发现

07相关概念