當我們一年多前發布 ZK Book 時,我們讓 ZK 教育領域向前邁進了一大步。
我們的書率先採用了「恰到好處的數學」方法來學習 ZK。
今天,我們再次推出 ZK Book 的新內容。
「Circom and Constraint Design Patterns」
這個新章節重點介紹如何設計、創建和審核重要的 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」章節中列出。
與往常一樣,這些材料是完全免費的,無需登入。