zkSync的动物园隐喻图文,形象地解释了零知识证明的原理。文中将零知识证明的过程比作一个动物园:
动物园即电路: 整个动物园代表一个电路,电路是由一系列逻辑门(加、减、乘、除等运算)组成的。这些逻辑门决定了数据的运算方式。Layer2环境中的交易哈希值、账户余额等数据,经过编码转化后,可以作为电路的输入数据进行运算。
动物即逻辑门: 不同的动物代表不同的逻辑门:木箱代表隐藏的变量,玻璃箱代表公开的输入,石头代表常数。斑马负责比较两个数是否相等,鳄鱼判断是否小于,蜘蛛实现更复杂的多选择逻辑,其他动物则代表加法、除法、百分比等运算。动物的“开心”或“不开心”代表运算结果是否符合预期。
公式计算与证明生成: 例如,计算公式2x+3=Y,其中x为隐藏变量(木箱),Y为常数(石头)。通过毛毛虫(加法)、斑马(比较)等动物的运算,最终验证公式是否成立。如果所有动物都“开心”(运算结果正确),则会生成一个“证明”(Proof),例如SNARK或STARK证明。
Zeek和递归证明: 动物园管理员Zeek负责验证所有动物是否都“开心”,也就是验证证明的有效性。这对应Layer2系统中的验证器(Verifier)。由于动物数量庞大,Zeek可能无法逐个验证,因此会使用递归证明(Recursive Proof),通过观察Zeek分身的状态来提高效率。
拍照和上链: “拍照”的过程相当于生成SNARK证明或KZG承诺,照片就是证明本身。游客代表交易,只有所有动物“开心合照”(证明生成成功),交易才能最终上链。
错误处理: 动物园中可能出现动物“掉线”等情况,导致电路运算错误,产生无效状态(Under-Constrained),从而无法通过验证。