Recursive SNARKs总览

1. 引言

Recursive SNARKs又名Incrementally Verifiable Computation(IVC)、Proof Carrying Data(PCD)或 inductive SNARKs。

下图摘自 微软团队2021年论文 《Nova: Recursive Zero-Knowledge Arguments from Folding Schemes》,其中:

在这里插入图片描述

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的交易流程可表示为:
在这里插入图片描述

扫描二维码关注公众号,回复: 13760012 查看本文章

参考文献

[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

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/123880158