文章分为两部分:1/介绍MPT的基础背景知识 2/导读MPT电路代码和原理。
在今天的文章中,我将剖析有史以来最强大但经常被误解的密码学工具之一:零知识证明 。此外,我将重点介绍未来实现的用例和建议,并展示为什么零知识证明是crypto未来的关键。
前一篇文章介绍了zkEVM的EVM Circuit的电路实现细节,接下来继续介绍State Circuit。
通过上一篇,我们知道zkEVM包含多个电路,如EVM circuit, MPT circuit,Keccak256 circuit等。本节继续介绍EVM circuit部分,这一部分是典型的业务电路,用于约束EVM执行状态,因为其他例如 Keccak256 circuit 是通用型的电路,不仅可以用在ZKEVM工程中,也可以用在其他使用Keccak256做哈希的应用中,也就是独立于业务逻辑本身的电路组件。
这篇文章将详细讲解EVM Circuit各个Column的设计,每种Opcode如何约束以及多个Opcode之间是如何约束以及组合。
zkEVM旨在设计并实现一种解决方案,通过零知识证明来验证以太坊执行模块(通常指Layer2执行)。该项目目标是实现与以太坊EVM的100%兼容性。这是一个由社区贡献和拥有的开源项目,主要包含两个方面:zkRollup,Validity proofs(有效性证明)
通俗理解零知识证明,有个很经典的阿里巴巴的例子。阿里巴巴能在不泄露咒语的情况下,向强盗证明他知道咒语的内容。最近在听斯坦福大学教授 Dan Boneh的讲座视频时,发现有另外一个形象的描述零知识证明的例子:
Schwartz-Zippel 引理是关于有限域中的多变量多项式零点个数的紧致上界,具体表述如下:
这篇文章记录一下团队解题的思路以及学习STARK的过程。方便更多的小伙伴学习零知识证明相关技术。
两个零知识库Plonky2和Starky,代表了构建更高性能 SNARKs/STARKs 的新方法。Plonky2 是一个结合了Plonk和FRI的库,Starky 专注于运行基于AIR的STARKs,且支持对其的递归验证。该方法可以总结为,使用小域,然后使用递归FRI。
Plonky2
Starky
理解Halo2,可以从两部分着手:1/ 电路构建 2/ 证明系统
本文介绍另一种基于plonk的proof system--halo2,目前看到基于plonk的工程实现有三种:bellman, dusk, halo2.
AppliedZKP公开了zkEVM的设计思路。zkEVM采用数据总线(Bus Mapping)的思路,将存储和计算分开。在Bus Mapping抽取了正确的存储数据的基础上,State proof证明数据的一致性,EVM proof证明计算逻辑的正确性。
Hermez团队负责人Jordi Baylina比较清晰地给出了zkEVM大体的设计思路。本文梳理一下对zkEVM设计的理解。抛砖引玉,有理解偏差,小伙伴们可以留言讨论。
本文将介绍一种新的椭圆曲线实例-- Baby Jubjub Elliptic Curve。
在任意的零知识证明系统中,都有一个 prover 在不泄漏任何额外信息的前提下要让 verifier 确信某些陈述(Statement)是正确的。ZK-SNARK目前应用较多,有不少成熟的库,如libsnark,bellman等.
PlonK算法实现了Universal的零知识证明。SRS只需要提供比多项式阶高的可信设置即可。PlonK电路采用特殊描述,一个门只支持乘法和加法操作。电路需要证明门的输入输出满足外,还需要证明连线的连接关系。PlonK算法的底层原理是多项式承诺。PlonK算法巧妙地将电路的满足关系通过多项式承诺进行证明并验证。
powersoftau,采用MPC以及随机Beacon,完成可信设置。通过POK算法实现可验证的密钥对,并建立和上一个参与方计算结果的绑定。参与可信设置的人数可扩展,并且参与方只需要按照顺序一个个的进行指定的计算即可。协调方在接收到某个参与方的计算后,验证后,发送给下一个参与方。
zk-SNARK 是如何实现零知识证明的
PLONK算法的电路采用新的描述模型。整个电路由门电路约束和Copy约束(连线约束)组成。门电路约束和Copy约束都转换为多项式表达。Copy约束通过累加算法实现。
扫一扫 - 使用登链小程序
378 篇文章,1729 学分
209 篇文章,365 学分
187 篇文章,312 学分
65 篇文章,279 学分
115 篇文章,255 学分