1. 引言
Recursive SNARKs又名Incrementally Verifiable Computation(IVC)、Proof Carrying Data(PCD)或 inductive SNARKs。
下图摘自 微软团队2021年论文 《Nova: Recursive Zero-Knowledge Arguments from Folding Schemes》,其中:
- [BCTV14]:为Ben-Sasson等人2014年论文《Scalable zero knowledge via cycles of elliptic curves》
- [Gro16]:为Groth 2016年论文《On the size of pairing-based non-interactive arguments》。可参看博客:
- [Set20]:为微软团队Setty 2019年论文《Spartan: Efficient and general-purpose zkSNARKs without trusted setup》。可参看博客:
- [COS20]:Chiesa等人2019年论文 《Fractal: Postquantum and transparent recursive proofs from holography》
- [BGH19]:Bowe等人2019年论文《Halo: Recursive proof composition without a trusted setup》。可参看博客:
- [BCL+20]:B¨unz等人2020年论文《Proof-carrying data without succinct arguments》。可参看博客:
2. 何为Recursive SNARKs?
2.1 何为SNARK?
2.2 何为SNARK of a SNARK proof?
2.3 何为SNARK of multiple SNARK proofs?
3. Recursive SNARKs应用场景
Recursive SNARKs可用于如下场景:
- 1)Zk-zk-Rollup 和 zk 3 ^3 3-Rollup
- 2)隐私计算ZEXE
3.1 用于Zk-zk-Rollup 和 zk 3 ^3 3-Rollup
相比于zkRollup,Zk-zk-Rollup具有如下特征:
* 1.1)具有多个server,每个server负责不同的无重叠的用户组。
* 1.2)具有Rollup aggregator(可为server中的一个),负责汇总(balance table)并创建一个相应的proof。
相应的Zk-zk-Rollup circuit表示为:【其中的 r o o t 1 , r o o t 2 , ⋯ , π 1 , π 2 , ⋯ root_1,root_2,\cdots, \pi_1,\pi_2,\cdots root1,root2,⋯,π1,π2,⋯ 均为witness】
以Tornado Cash为例:
经zk 3 ^3 3-Rollup,Tornado Cash可实现shielded transfer以及任意金额。【为每笔交易添加zk-SNARKs实现了隐私交易。】
3.2 用于隐私计算ZEXE
ZEXE为一种计算模型(类似于UTXO链的Scripts和EVM链的Accounts)。因此可将ZEXE看成是 智能合约 或 复杂交易 的抽象。
ZEXE的基本单位为record(类似于UTXO)。
每笔交易会消耗records,也会创建records。
以UTXO为例,相应的ZEXE表述为:
- Universal predicate(通用表述)为:防止双花。
- Birth predicate(出生表述)为:某record是如何创建的。
- Death predicate(死亡表述)为:某record是如何消耗掉的。
基于Record 1和Record 2 生成Record 3的交易流程可表示为:
参考文献
[1] 微软团队2021年论文 Nova: Recursive Zero-Knowledge Arguments from Folding Schemes
[2] 2021年7月视频 An Overview of Recursive SNARKs
[3] 2021年斯坦福课件 Recursive SNARKs
[4] 2020年Mina在zkproof的博客Inductive Proof Systems and Recursive SNARKs