环签名,目前在隐私Monero项目中有所应用
要解释「零知识证明」,我们需要先解释「证明」,然后解释什么是「知识」,最后再解释什么是「零知识」。
Hermez团队负责人Jordi Baylina比较清晰地给出了zkEVM大体的设计思路。本文梳理一下对zkEVM设计的理解。抛砖引玉,有理解偏差,小伙伴们可以留言讨论。
Dark Forest是一款实时策略游戏。星球的移动和攻占是整个游戏的策略重点。为了在不公开星球坐标的情况,还能证明星球的移动正确,引入了零知识证明技术。
Zkopru 已临近完成,本文解释了其设计和精妙之处。同时我们也会宣布测试网开启的时间。
本文描述了累加器的概念和性质,具体说明RSA累加器实现过程。可以看出Accumulator具有一些比merkle证明有优势的地方,比如聚合证明,证明大小不随着集合元素的增加而增加等。 实际应用实现中RSA累加器还会有一些前置处理操作,比如将原始数据映射到选定素数域上的值等。
本文介绍的这些知识点是理解plookup的基础
AppliedZKP公开了zkEVM的设计思路。zkEVM采用数据总线(Bus Mapping)的思路,将存储和计算分开。在Bus Mapping抽取了正确的存储数据的基础上,State proof证明数据的一致性,EVM proof证明计算逻辑的正确性。
本文介绍另一种基于plonk的proof system--halo2,目前看到基于plonk的工程实现有三种:bellman, dusk, halo2.
powersoftau,采用MPC以及随机Beacon,完成可信设置。通过POK算法实现可验证的密钥对,并建立和上一个参与方计算结果的绑定。参与可信设置的人数可扩展,并且参与方只需要按照顺序一个个的进行指定的计算即可。协调方在接收到某个参与方的计算后,验证后,发送给下一个参与方。
PlonK算法实现了Universal的零知识证明。SRS只需要提供比多项式阶高的可信设置即可。PlonK电路采用特殊描述,一个门只支持乘法和加法操作。电路需要证明门的输入输出满足外,还需要证明连线的连接关系。PlonK算法的底层原理是多项式承诺。PlonK算法巧妙地将电路的满足关系通过多项式承诺进行证明并验证。
本文主要介绍plookup算法的思路
本文介绍Sigma协议的交互和非交互性质,简单明了,介绍了零知识证明中常用的Fiat-Shamir变换
最近有空看了看Plookup的论文。针对对电路描述不友好的操作(比如bit操作),Plookup给出了新的思路和证明方式。给定某个操作的真值表示(lookup table),证明某个操作的输入/输出是在真值表中。这种方式,相对之前的bit计算约束方式,降低约束的个数,提高了电路效率。