以动物园为例,硬核科普zkSync电路工作原理

郝天热度: 18764

zkSync动物园将动物比作电路中的逻辑门,合影是证明,数据经过复杂计算生成Proof,完成零知识证明。动物们的开心或伤心代表公式运算的结构,Zeek是Verifier,验证Proof的可信性。拍照是生成SNARK证明或KZG承诺,底片是STARK\SNARK证明。动物园游客是交易,动物开心合照才能生成Proof,最终留底证明上链。动物园可能出现拥堵和报错,导致无效状态转化。

摘要由 Mars AI 生成
本摘要由 Mars AI 模型生成,其生成内容的准确性、完整性还处于迭代更新阶段。

原文作者:郝天

原文来源:链上观

不少人看了@zkSync新发的动物园科普图文大呼懵圈,把动物园比做电路circuit,把拥有特殊技能的动物视为“逻辑门Gate”,把动物们都开心的合影当成“证明Proof”,这样输入电路的数据在不透露具体内容的前提下,经过一系列复杂计算,生成一个Proof,就完成一次零知识证明过程。来,我试着硬核科普一下:

1)动物园对应的是“电路”,电路其实是一系列逻辑门约束(加、减、乘、除等公式)的聚合,相当于所有动物们能力的一次集中表现,它也是构成计算机的基本元素。因此传入电路的“数据”一定可被套进各种公式内被执行运算。

在layer2 环境都是一些交易哈希值、账户、数据余额之类的数据,这些数据可以转变成公式进行计算,若不能公式化则需进行其他编码转化让其原始数据可以变成公式,这是电路执行处理的前提。

2)各种动物对应电路里的逻辑门,在动物园模式里,分别有:木箱——代表不公开显示的数字,被称之为“变量”;玻璃箱——代表公开显示的数字,为“公开输入”;石头——代表无法移动的数字,被视为“常数”;

斑马具有比较两个数是否“相等”的能力,结果相等斑马就开心;鳄鱼则表示“小于”,只有右边的数小于左边的数,鳄鱼才会开心;蜘蛛代表更复杂的多选择门,输入0则返回一定是true,输入1则返回是false;此外还可以让河狸表示除法、松鼠指代百分比;毛毛虫代表加法等等。不同的动物代表不同的加减乘除运算公式,动物们开心或伤心代表公式运算的结构。

很多个动物+不同种类的箱子组合起来就是一个电路,比如:要计算一个公式 2 x + 3 = Y,x代表木箱,Y代表石头,2个木箱 和毛毛虫、斑马等前来工作,最后来验证该公式是否成立。注意,不用纠结为啥不同动物具备不同能力,这就是电路元素工作基础原理,是计算机执行计算的基本规则。

一个复杂电路就是形形色色的动物(逻辑门)和箱子(规则)共同构建。

3)假设刚才输入的公式2x+3 =Y成立了,相当于斑马 毛毛虫等动物都开心了,然后就会为该公式生成一个“Proof”,需要有一个角色能识别这个Proof是否准确才行。因此,为了确保证明的可信性,动物园管理员即电路的构建者,模拟了一个特别的动物叫Zeek,Zeek能看出其他动物是否开心,在layer2系统中相当于Verifier。

Zeek观察动物是否开心的过程其实就是Prover系统的验证过程,都开心了则验证通过,Proof证明才会真正通过上传到主网,并最终确认。当然,动物园成千上万的动物,产生大量证明,Zeek不可能挨个看,因此Zeek也可以观察千千万万个Zeek自己的分身状态是否开心,这个过程就叫Recursive Proof 递归证明。

4)拍照的过程相当于生成SNARK证明或KZG承诺的过程,而打印的底片则相当于STARK\SNARK证明本身,动物园的游客相当于一个个进入的Transaction交易,只有动物开心合照才会完成并生成Proof证明,最终游客拿着照片出了动物园留底证明才能被上链最终确定。

一个动物园有很多动物,不可能同时都开心并按照预定规则工作,有很多逻辑门,也难免会出现掉线等情况。这样就会出现一些,拥堵卡顿以及报错的情况,因此会产生无效的状态转化,Under- Constrained,也就无法通过最终的验证。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:零知识证明