一个网站想避免使用私钥作为认证数据,给每个用户额外分配了随机数据(pepper)。这个随机数据只有用户自己知道。在使用认证之前,用户需要计算{公钥}_{pepper}的hash值提交到网站。使用认证的过程,用户需要生成零知识证明,证明某个用户知道确定的pepper。
基于一个比较小的域,实现了一个Lookup协议。
zkHack的Puzzle是我比较喜欢的活动。通过实例编码深入理解零知识证明的细节是比较高效的学习方式。zkHackV前几天已经开始了。这篇文章分析一下第一道题目
一直对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不支持图灵完备。