一年前,当我们发布 ZK Book 时,我们让 ZK 教育领域向前迈进了一大步。
我们的书率先采用了“适量数学”的方法来学习 ZK。
今天,我们再次推出 ZK Book 的新内容。
"Circom and Constraint Design Patterns"(Circom 和约束设计模式)
这个新章节侧重于如何设计、创建和审计重要的 ZK 电路。
您可能已经看过很多关于如何使用 Circom 证明您知道多项式评估的教程。
但是,如何从那里开始设计 ZKVM 或证明您知道传统哈希函数(如 MD5 或 Keccak256)的原像?
我们 ZK Book 的新部分将带您从两个数字相乘到:
- 从头开始构建 ZKVM
- 为 MD5 哈希函数编写约束
- 学习约束设计中反复出现的设计模式
最后一部分很有趣,因为一些已建立的“设计模式”甚至没有名称。我们不得不发明一些术语!
像往常一样,我们非常周到地向读者介绍新想法,以避免让新手感到不知所措。我们注意确保以合理的顺序教授先决条件,并提供大量示例。
每一章都展示了如何为日益复杂的应用程序构建电路。在每一章中,您既可以回顾之前学到的知识,又可以学习一种新的设计模式。
一旦您建立起这些设计模式的集合,您就可以将它们组合在一起以构建更复杂的应用程序,例如 ZKVM 或重要的哈希函数。
我们付出了巨大的努力,以确保材料既易于理解又正确,没有任何重要的遗漏。
我们要感谢 @ChainLight_io、@VeridiseInc、@PrivacyScaling 和 @zksecurityXYZ 抽出时间审查这项工作并提供建议。
我们特别感谢来自 @zksecurityXYZ 的 @marcobesier,感谢他完成了几个版本的修订,真正使这些章节达到了完善的状态。
特别感谢 @cal_nix 共同撰写了本书新部分的前七章!
我们在这里涵盖的主题非常基础。如果您不理解这里的材料,那么学习更现代的 ZKVM 或 ZK Layer 2 客户端的内部原理将非常具有挑战性。到目前为止,由于缺乏针对新手的此类基础概念的解释,阻碍了 ZK 领域的发展。
这项新的工作成果不仅仅是对现有材料的“更好解释”,而是第一个解释——除了学术论文之外。
我们使用 Circom 作为教学语言,因为我们认为它是最适合初学者的。但是,您在这里学到的知识可以推广到其他框架,如 Plonky3、Halo2、o1js 和 Gnark。现在,这些新文章使 ZK Book 的篇幅增加了 38,000 多个单词。
您不必知道 ZK-SNARK 的工作原理即可阅读本书的这一部分,但有一些先决条件。这些在“Introduction to Circom”一章中列出。
像往常一样,这些材料是完全免费的,无需登录。