在Layer2扩展的轨道上,zkrollup方案以其完美的数据可用性和与第1层相同的安全级别而受到青睐。以单个块为处理单元,采用零知识证明算法,保证了该块引起的世界状态变化的有效性,大大降低了链上每个事务的开销,提高了系统的吞吐效率。然而,在实际着陆过程中,研究人员发现,简单的zkrollup方案所带来的展开效果不能满足实际场景的要求;这与电路参数的限制、零知识证明算法的效率等诸多因素有关;研究人员做了大量的努力,如随着零知识证明算法的加速、超高配置机器的配备、电路规模的优化虽然带来了一定的性能提升,但仍难以满足要求。
当然,研究人员希望链上处理的事务越多越好。为此,研究人员**发现了防聚集技术,并被zkswap推出的zkspeed扩展方案所采用。在前面的文章中,我们解释了聚合证明的原理和思想,即将多个块的证明聚合成一个证明,这样链就可以一次完成多个块的验证,大大降低了交易的平均成本。原理如下图所示:
比特币这种方案虽然有优点,但可以同时实现多个块的验证,但也有一定的局限性
1一个聚合块有一个上界,该上界受电路参数的限制;
2聚合的块越多,电路越大,直至达到其大小上限;该电路的验证时间越长,验证密钥和验证密钥占用的存储空间越大;
3目前,可以支持的**聚合粒度是20个块。也就是说,在组装20个块之前,聚合处理不会开始。如果证明生成的效率相对较低,将导致这些块的确认时间较长,尤其是生成最早的块;
由于证明计算和CRS生成的复杂性,上述零知识证明算法不具有可扩展性。因此,研究者们也在努力寻找一种可伸缩的零知识证明算法,即可伸缩ZK-snarks。
可扩展ZK snarks可扩展ZK snarks
Eli-Ben Sasson等人在“通过椭圆曲线的圈可伸缩零知识”一文中给出了可伸缩ZK SNARK的定义
1密钥生成是soap:即密钥生成时间与计算复杂度无关(如果是可伸缩的ZK-stars,则可能不需要密钥生成时间);
2证明生成是递增的:即生成过程不仅包括当前执行步骤的正确性,还包括所有先前计算的正确性;
为了便于您的理解,我们用一个图表来说明上述观点
的上图意思是:证明了一个递归的计算过程,即初始状态为S0,第t个函数f迭代计算后的结果为st(非常类似于区块链中的块更新过程)。
第一种计算方法,单片选项:校验器P将T次的计算过程写入电路,然后一次进行验证。如上所述,它具有相同的局限性,时间复杂度和空间复杂度都很高;
第二种计算方法,递归选项:递归计算
首先,对于初始状态S0=gt;S1,证明器P生成S1=f(S0)的计算过程的证明π1;
2对于S1=gt;S2的变换,从图中可以看出,证明器P证明了两部分:{S2=f(S1),V(S1,π1)=1},前半部分保证了当前计算的有效性,后半部分保证了上一计算的有效性;因为在ZK snarks中,证明的生成时间比前半部分快原始计算,因此验证过程是合理的;
可以看出递归选项满足可伸缩ZK snarks的基本要求
1密钥的生成与周期数无关,而取决于单个F的复杂度,如果是一般ZK-snarks,则只取决于安全参数;
2证明满足递增可计算性,且每个证明包含所有先前计算的有效性;
3证明的大小是固定的,与迭代次数t无关;
由上可知,scalable ZK snarks采用递归思想,即当前的证明过程包括上一步的验证过程电路,如下图所示:
可以看到P2验证电路包含上一步中P1的验证过程电路。需要注意的是,P1对应的V在FQ上,P2的证明过程在fr上,如何在fr上表示V的算术电路是一个值得讨论的过程。由于CV可以看作P的一个子电路,Q需要满足Q=#e(FR)或Q积分除法#e(FR),即Q积分除法rk-1
试试1。理想情况下,如果r=q,那么V/FQ的算术电路可以完美地表示在FR上,但是根据上述原理,r!=q保持;
试试2。为了Q!=R,由于需要在FR上模拟FQ的计算,计算复杂度将增加log(R)倍;
试试3。利用椭圆曲线的循环,可以很好地实现递归过程;
具体来说,选择两个大素数R和Q,让#e=#,反之亦然。因此,FQ上的prover P可以很好地实现FQ上fr上的验证电路,fr上的prover P也可以实现fr上的验证电路,因此不会出现尝试2的缺陷。
下表列出了常用的椭圆曲线循环(https://eprint.iacr.org/2014/595.pdf)
写在**
ZK-snarks采用递归组合证明技术,使之成为可扩展的ZK-snarks,实现了一种更高效、简洁的零知识证明算法,可以应用于实际生活中。即将发布主网的Mina采用了这一技术,实现了一个简单的区块链,即固定大小的链,维持在22KB左右。同时,其他技术团队,包括Matlab实验室和starkware,也计划使用scalablezk snarks技术来实现layer2的更高扩展。zkswap团队继续在layer2轨道上工作,并在可伸缩的zksnarks上取得了突破。相信它很快就会应用到新版本上。
文章标题:二层展开的关键技术:递归零知识证明分析
文章链接:https://www.btchangqing.cn/222828.html
更新时间:2021年03月31日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。