什么是递归zk-SNARK,和常规zk-SNARK有什么区别?

 2023-10-03 22:27:06发布 2023-10-03 22:27:18更新

递归SNARK(Recursive SNARK)是一种零知识证明,其优点是证明可以验证其他证明。例如,单个zk-SNARK可以验证其他zk-SNARK,这种“证明的证明”被称为递归证明。

什么是递归SNARK

递归SNARK系统为不同的交易区块并行生成证明,并将它们聚合成一个提交到主区块链的单个区块证明。

L2 汇总仍然在以太坊上提交一份有效性证明。然而,这种“递归证明”会验证多个 L2 区块中的交易,一旦链上合约接受提交的证明,所有交易都会生效。

递归zk-SNARK解决了什么问题

递归zk- snarks通过将多个L2证明包含在提交给L1链的单个证明中,极大地增加了可以用zk证明完成的交易数量。

区块时间是指在以太坊上挖掘一个新的交易区块需要多长时间。zk rollups 每个区块只能提交一笔链上交易(以及相应的有效性证明),限制了它们可以处理的交易数量。

递归zk-SNARK的用例

Lurk 是一种静态范围的Lisp方言,受 Scheme 和 Common Lisp 的影响。它相对于大多数编程语言的显着特点是可以使用 zk-SNARKs 直接证明 Lurk 程序的正确执行。生成的证明相对较小,可以快速验证,并且它们仅揭示要证明的陈述中明确包含的信息。

递归zk-SNARK的用例

简而言之,Lurk 是一种易于使用的语言,它使程序的开发变得更加简单。它将使 SNARK 编程更易于访问——既因为可编写的程序比传统的 SNARK 程序更“强大”,而且因为那些不是领域专家的人也可以编写这些程序。

递归zk-SNARK和常规zk-SNARK的区别

递归zk-SNARK不同于普通的zk-SNARK,因为递归zk-SNARK可以通过将为不同L2 块生成的SNARK组合成一个提交给L1 链的有效性证明来验证多个交易块。

zk rollups 在发布到主区块链之前为每批交易创建一个SNARK证明,并且单个SNARK证明只能验证在L2 rollup 上进行的一个交易块。

zk-SNARKs可以在不使用原始输入的情况下验证已被常规zk-SNARKs验证过的交易。因此,链上智能合约可以验证更大的链下计算集,而无需运行多个SNARK作为输入。

推荐阅读