一直对zkVM比较感兴趣。zkVM将零知识证明技术应用带入一个新的时代。几年前,应用零知识证明技术需要理解复杂的零知识证明算法,并且需要将证明业务逻辑描述成“电路”。zkVM将这些复杂的逻辑封装。基于zkVM,业务开发人员可以采用熟悉的高级语言轻松完成证明业务的描述。目前市面上zkVM层出不穷。先看
Binius是个新颖的零知识证明系统,目的是降低证明者的计算开销。Binius能降低证明开销的原因是使用了$F_2$以及扩展域。
Nova算法是一种针对IVC(增量可验证计算,Incrementally Verifiable Computation)的新型的零知识证明算法。
本文从MSM的计算入手,分析FPGA和GPU加速零知识证明计算的优缺点。
zkHack发布了新的Puzzle。虽然Puzzle用的比较老的Groth16算法,Puzzle的内容非常有趣,对理解零知识证明,多项式,线性相关等等知识非常有帮助。
PLONK的原始论文存在一个零知识性的问题。商t多项式没有添加随机性,导致simulator不能模拟出证明。
Zinc语言是一种智能合约语言,能方便的构建其对应的电路。Zinc开发的程序,编译成ZincVM指令,并在ZincVM执行并构建电路。构建电路的过程是将指令顺序执行,跟踪以及统一数据流。因为ZincVM构建电路需要将代码“静态”展开,所以Zinc不支持图灵完备。
使用Halo2开发电路,不可避免会设计custom gate。在实际开发custom gate的过程中,经常会碰到一些错误。该篇文章总结并分析了在Halo2库基础上开发custom gate的一些错误和原理。
随着ZKP的应用越来越多,零知识证明的证明隐私代理也变的越来越重要。在一些场景下,本地证明的生成时间比较长,如何既保证数据的隐私同时实现快速的证明外包是一个很有意义的话题。在zkSummit7的这个演讲给出一个方案:在PIOP+多项式承诺的零知识证明方案中,可以结合MPC实现证明隐私代理。
文章分为两部分:1/介绍MPT的基础背景知识 2/导读MPT电路代码和原理。