如何设计更好的证明递归方案?

zkRollup 和 zkEVM 赛道遇到的几乎所有问题本质上都是算法问题。 ZK-Proof硬件加速被频繁提及的主要原因是目前的算法普遍较慢。
为了避免陷入“算法不够,用硬件来弥补”的尴尬境地,我们应该从算法的本质来解决问题。设计一个精致的防交付递归 方案是解决这个问题的关键。
如何设计更好的证明递归方案?

随着智能合约的不断发展,越来越多的Web3应用逐渐问世,而以太坊等传统Layer 1的交易量迅速上升,随时可能出现拥堵。如何在保证Layer 1提供的安全性的同时获得更高的效率,成为亟待解决的问题。

对于以太坊来说,zkRollup 使用零知识证明算法作为底层组件,将原本需要在第 1 层执行的昂贵计算移至链下,并向链上提供执行正确性证明。该赛道包括以下项目 StarkWare、zkSync、滚动、福克斯科技.

事实上,在zkRollup的设计中,对效率有非常高的要求:希望提交的证明值足够小,能够减少Layer 1的计算量。为了获得足够小的证明长度,每个zkRollup项目正在改进算法和架构设计。例如,Fox开发了其证明算法FOAKS,结合最新的零知识证明算法,获得最优的证明时间和证明长度。

另外,在验证证明阶段,最简单的手段是线性生成证明并顺序验证它们。为了提高效率,大家首先想到的就是将多个证明打包成一个证明,通常称为证明聚合。

直观地讲,验证 zkEVM 生成的证明是一个线性过程,Verifier 需要依次验证每个生成的证明值。但这种验证方法效率较低,通信开销较大。对于zkRollup场景,更高的验证者端开销意味着更多的Layer 1计算,这也会导致更高的Gas费用。

我们先看一个例子:爱丽丝想向世界证明她在本月1号到7号去了福克斯公园。为此,她可以从1号到7号每天在公园里与当天的报纸合影,这七张照片将成为证明。

如何设计更好的证明递归方案?
一般意义上的证明聚合方案

上例中将七张照片直接放入一个信封中,就是直观意义上的证明聚合,相当于将不同的证明连接在一起,按顺序线性验证,即先验证第一个证明,再验证第二个证明。

两个证明和后续证明。问题在于,这种做法既不会改变证明的大小,也不会改变证明的时间,这和一一证明、验证是一样的。如果想要实现对数空间压缩,就需要用到下面提到的Proof Recursion。

Halo2 和 STARK 使用的证明递归方案

为了更好地解释什么是递归证明,我们回到上面的例子。

爱丽丝的七张照片就是七个证据。现在考虑将它们合并,这样爱丽丝就可以在第一张照片上拍摄照片,在第二张照片上拍摄这张照片,在第二张照片上拍摄报纸,在第三张照片上拍摄第二张照片和报纸。以此类推,Alice用1号的照片和2号的报纸拍了2号的最后一张照片,其他朋友看到2号的最后一张照片就可以验证自己是在3号到7号。

爱丽丝都去了公园。可以看到,之前的七张样张照片被压缩成了一张。而这个过程中的一个关键技巧就是“照片包含照片”,相当于将之前的照片递归地嵌套到后续的照片中。这与将很多照片放在一起并拍摄一张照片不同。

zkRollup 的递归证明技巧可以极大地压缩证明大小。具体来说,每笔交易都会生成证明。我们将原始交易计算电路设置为C0,P0作为C0的正确性证明,V0作为验证P0的计算过程。

Prover还将V0转换为相应的电路,表示为C0'。目前,对于另一笔交易的C1的证明计算过程,可以合并C0'和C1的电路。这样,一旦验证了合并电路的正确性证明P1,就相当于同时验证了上述两个电路。实现了交易的正确性,即压缩。

回顾上面的过程可以发现,压缩的原理就是将验证和证明的过程转化为电路,然后生成“证明的证明”,所以从这个角度来看,它是一个可以不断递归的操作向下,所以也称为递归证明。

如何设计更好的证明递归方案?
Halo2和Stark使用的递归证明方案

Halo2和STARK采用的Proof Recursion方案可以并行生成证明并组合多个证明,从而在验证一个证明值的同时验证多个交易执行的正确性,可以压缩计算开销,从而大大提高证明的效率系统。

但这样的优化仍然停留在特定的零知识证明算法之上的水平。为了进一步提高效率,我们需要进行更底层的优化和创新。 Fox 设计的 FOAKS 算法通过在证明中应用递归思想来实现这一点。

FOAKS 使用的证明递归方案

Fox Tech 是一个基于 zkEVM 的 zkRollup 项目。在其证明体系中,也采用了递归证明的技术,但内涵与上述递归方法不同。主要区别在于 Fox 在证明中使用了递归的思想。为了表达Fox使用递归证明不断缩减待证明问题直至缩减后的问题足够简单的核心思想,我们需要再举一个例子。

在上面的例子中,Alice通过拍照证明她在某一天去了福克斯公园,因此Bob提出了不同的建议。他认为证明Alice去过公园的问题可以简化为证明Alice的手机去过公园。而证明这件事可以归结为证明Alice手机的位置在公园范围内。

因此,为了证明Alice去过公园,她只需要在公园里用手机发送一个位置即可。这样,校样的尺寸就从一张照片(极高维数据)变成了3维数据(纬度、经度、时间),有效节省了成本。

这个例子并不完全恰当,因为有些人可能会质疑Alice的手机去过福克斯公园并不意味着Alice去过那里,但在实际情况下,这个归约过程是严格的数学过程。

具体来说,Fox的递归证明的使用是电路层面的递归。在进行零知识证明时,我们会将要证明的问题写成一个电路,然后通过电路计算一些需要满足的方程。我们并没有证明这些方程是满足的,而是再次将这些方程写成电路,依此类推,直到最后,证明满足的方程变得足够简单,我们可以很容易地直接证明它。

从这个过程我们可以看出,这更接近“递归”的含义。值得一提的是,并不是所有算法都能使用这种递归技术,假设每次递归都会将复杂度 O(n) 的证明变成 O(f(n)) 的证明以及递归过程本身的计算。

复杂度为O(g(n)),则一次递归后总计算复杂度变为O1(n)=O(f(n))+O(g(n)),两次递归后变为O2(n)) =O(f(f(n)))+O(g(n))+O(g(f(n))),三次后为O3(n)=O(f(f(f(n)) ) )))+O(g(n))+O(g(f(n)))+O(g(f(f(n)))),…,等等。

因此,只有当与算法特征对应的f和g两个函数满足Ok(n)时,这种递归技术才能有效地发挥作用

如何设计更好的证明递归方案?
ZK-FOAKS使用的递归证明方案

结论

证明的复杂性一直是零知识证明应用中最重要的关键之一。随着要证明的事物变得越来越复杂,证明复杂性的性质将变得越来越重要,特别是在像 zkEVM 这样的巨型 ZK 应用程序中。

在该场景下,证明的复杂程度将对产品性能和用户体验产生决定性影响。在降低最终证明复杂度的众多方法中,核心算法的优化是最重要的。

Fox基于最前沿的算法设计了精致的交付证明方案,并利用该技术打造出最合适的zkEVM。 ZK-FOAKS算法有望成为zkRollup行业的性能领先者。

免责声明: 本网站上的信息作为一般市场评论提供,不构成投资建议。 我们鼓励您在投资前进行自己的研究。

加入我们以跟踪新闻: https://linktr.ee/coincu

哈罗德

钱库 新闻

如何设计更好的证明递归方案?

zkRollup 和 zkEVM 赛道遇到的几乎所有问题本质上都是算法问题。 ZK-Proof硬件加速被频繁提及的主要原因是目前的算法普遍较慢。
为了避免陷入“算法不够,用硬件来弥补”的尴尬境地,我们应该从算法的本质来解决问题。设计一个精致的防交付递归 方案是解决这个问题的关键。
如何设计更好的证明递归方案?

随着智能合约的不断发展,越来越多的Web3应用逐渐问世,而以太坊等传统Layer 1的交易量迅速上升,随时可能出现拥堵。如何在保证Layer 1提供的安全性的同时获得更高的效率,成为亟待解决的问题。

对于以太坊来说,zkRollup 使用零知识证明算法作为底层组件,将原本需要在第 1 层执行的昂贵计算移至链下,并向链上提供执行正确性证明。该赛道包括以下项目 StarkWare、zkSync、滚动、福克斯科技.

事实上,在zkRollup的设计中,对效率有非常高的要求:希望提交的证明值足够小,能够减少Layer 1的计算量。为了获得足够小的证明长度,每个zkRollup项目正在改进算法和架构设计。例如,Fox开发了其证明算法FOAKS,结合最新的零知识证明算法,获得最优的证明时间和证明长度。

另外,在验证证明阶段,最简单的手段是线性生成证明并顺序验证它们。为了提高效率,大家首先想到的就是将多个证明打包成一个证明,通常称为证明聚合。

直观地讲,验证 zkEVM 生成的证明是一个线性过程,Verifier 需要依次验证每个生成的证明值。但这种验证方法效率较低,通信开销较大。对于zkRollup场景,更高的验证者端开销意味着更多的Layer 1计算,这也会导致更高的Gas费用。

我们先看一个例子:爱丽丝想向世界证明她在本月1号到7号去了福克斯公园。为此,她可以从1号到7号每天在公园里与当天的报纸合影,这七张照片将成为证明。

如何设计更好的证明递归方案?
一般意义上的证明聚合方案

上例中将七张照片直接放入一个信封中,就是直观意义上的证明聚合,相当于将不同的证明连接在一起,按顺序线性验证,即先验证第一个证明,再验证第二个证明。

两个证明和后续证明。问题在于,这种做法既不会改变证明的大小,也不会改变证明的时间,这和一一证明、验证是一样的。如果想要实现对数空间压缩,就需要用到下面提到的Proof Recursion。

Halo2 和 STARK 使用的证明递归方案

为了更好地解释什么是递归证明,我们回到上面的例子。

爱丽丝的七张照片就是七个证据。现在考虑将它们合并,这样爱丽丝就可以在第一张照片上拍摄照片,在第二张照片上拍摄这张照片,在第二张照片上拍摄报纸,在第三张照片上拍摄第二张照片和报纸。以此类推,Alice用1号的照片和2号的报纸拍了2号的最后一张照片,其他朋友看到2号的最后一张照片就可以验证自己是在3号到7号。

爱丽丝都去了公园。可以看到,之前的七张样张照片被压缩成了一张。而这个过程中的一个关键技巧就是“照片包含照片”,相当于将之前的照片递归地嵌套到后续的照片中。这与将很多照片放在一起并拍摄一张照片不同。

zkRollup 的递归证明技巧可以极大地压缩证明大小。具体来说,每笔交易都会生成证明。我们将原始交易计算电路设置为C0,P0作为C0的正确性证明,V0作为验证P0的计算过程。

Prover还将V0转换为相应的电路,表示为C0'。目前,对于另一笔交易的C1的证明计算过程,可以合并C0'和C1的电路。这样,一旦验证了合并电路的正确性证明P1,就相当于同时验证了上述两个电路。实现了交易的正确性,即压缩。

回顾上面的过程可以发现,压缩的原理就是将验证和证明的过程转化为电路,然后生成“证明的证明”,所以从这个角度来看,它是一个可以不断递归的操作向下,所以也称为递归证明。

如何设计更好的证明递归方案?
Halo2和Stark使用的递归证明方案

Halo2和STARK采用的Proof Recursion方案可以并行生成证明并组合多个证明,从而在验证一个证明值的同时验证多个交易执行的正确性,可以压缩计算开销,从而大大提高证明的效率系统。

但这样的优化仍然停留在特定的零知识证明算法之上的水平。为了进一步提高效率,我们需要进行更底层的优化和创新。 Fox 设计的 FOAKS 算法通过在证明中应用递归思想来实现这一点。

FOAKS 使用的证明递归方案

Fox Tech 是一个基于 zkEVM 的 zkRollup 项目。在其证明体系中,也采用了递归证明的技术,但内涵与上述递归方法不同。主要区别在于 Fox 在证明中使用了递归的思想。为了表达Fox使用递归证明不断缩减待证明问题直至缩减后的问题足够简单的核心思想,我们需要再举一个例子。

在上面的例子中,Alice通过拍照证明她在某一天去了福克斯公园,因此Bob提出了不同的建议。他认为证明Alice去过公园的问题可以简化为证明Alice的手机去过公园。而证明这件事可以归结为证明Alice手机的位置在公园范围内。

因此,为了证明Alice去过公园,她只需要在公园里用手机发送一个位置即可。这样,校样的尺寸就从一张照片(极高维数据)变成了3维数据(纬度、经度、时间),有效节省了成本。

这个例子并不完全恰当,因为有些人可能会质疑Alice的手机去过福克斯公园并不意味着Alice去过那里,但在实际情况下,这个归约过程是严格的数学过程。

具体来说,Fox的递归证明的使用是电路层面的递归。在进行零知识证明时,我们会将要证明的问题写成一个电路,然后通过电路计算一些需要满足的方程。我们并没有证明这些方程是满足的,而是再次将这些方程写成电路,依此类推,直到最后,证明满足的方程变得足够简单,我们可以很容易地直接证明它。

从这个过程我们可以看出,这更接近“递归”的含义。值得一提的是,并不是所有算法都能使用这种递归技术,假设每次递归都会将复杂度 O(n) 的证明变成 O(f(n)) 的证明以及递归过程本身的计算。

复杂度为O(g(n)),则一次递归后总计算复杂度变为O1(n)=O(f(n))+O(g(n)),两次递归后变为O2(n)) =O(f(f(n)))+O(g(n))+O(g(f(n))),三次后为O3(n)=O(f(f(f(n)) ) )))+O(g(n))+O(g(f(n)))+O(g(f(f(n)))),…,等等。

因此,只有当与算法特征对应的f和g两个函数满足Ok(n)时,这种递归技术才能有效地发挥作用

如何设计更好的证明递归方案?
ZK-FOAKS使用的递归证明方案

结论

证明的复杂性一直是零知识证明应用中最重要的关键之一。随着要证明的事物变得越来越复杂,证明复杂性的性质将变得越来越重要,特别是在像 zkEVM 这样的巨型 ZK 应用程序中。

在该场景下,证明的复杂程度将对产品性能和用户体验产生决定性影响。在降低最终证明复杂度的众多方法中,核心算法的优化是最重要的。

Fox基于最前沿的算法设计了精致的交付证明方案,并利用该技术打造出最合适的zkEVM。 ZK-FOAKS算法有望成为zkRollup行业的性能领先者。

免责声明: 本网站上的信息作为一般市场评论提供,不构成投资建议。 我们鼓励您在投资前进行自己的研究。

加入我们以跟踪新闻: https://linktr.ee/coincu

哈罗德

钱库 新闻

访问 66 次,今天 1 次访问