Quando lançamos o ZK Book há mais de um ano, demos um enorme passo em frente no espaço da educação em ZK.
Nosso livro foi pioneiro na abordagem de "matemática suficiente" para aprender ZK.
Hoje, fazemos isso novamente com uma nova adição ao ZK Book.
"Circom and Constraint Design Patterns"
Esta nova seção se concentra em como projetar, criar e auditar circuitos ZK não triviais.
Você provavelmente já viu muitos tutoriais sobre como provar que conhece a avaliação de um polinômio usando Circom.
Mas como você passa disso para projetar uma ZKVM ou provar que conhece a primagem de uma função hash tradicional (como MD5 ou Keccak256)?
A nova parte do nosso ZK Book leva você em uma jornada desde a multiplicação de números até:
- construir uma ZKVM do zero
- codificar restrições para a função hash MD5
- aprender os padrões de design recorrentes no design de restrições
A última parte foi interessante porque alguns dos "padrões de design" estabelecidos nem sequer têm nomes. Tivemos que inventar alguma terminologia!
Como sempre, somos extremamente cuidadosos sobre como apresentamos novas ideias ao leitor para evitar sobrecarregar alguém novo. Temos o cuidado de garantir que ensinamos os pré-requisitos em uma ordem sensata e com muitos exemplos.
Cada capítulo mostra como construir um circuito para uma aplicação cada vez mais complexa. A cada capítulo, você revisa o que aprendeu anteriormente e aprende um novo padrão de design.
Depois de construir uma coleção desses padrões de design, você pode combiná-los para construir aplicações mais complexas, como a ZKVM ou uma função hash não trivial.
Fizemos um enorme esforço para garantir que o material seja fácil de entender e correto, sem omissões importantes.
Gostaríamos de agradecer a @ChainLight_io, @VeridiseInc, @PrivacyScaling e @zksecurityXYZ por dedicarem tempo para revisar este trabalho e fornecer sugestões.
Somos particularmente gratos a @marcobesier da @zksecurityXYZ por trabalhar em várias revisões para realmente colocar os capítulos em um estado refinado.
Um agradecimento especial a @cal_nix por ser coautor dos primeiros sete capítulos desta nova parte do livro!
Os tópicos que abordamos aqui são extremamente fundamentais. Se você não entender os materiais aqui, aprender os detalhes internos de uma ZKVM mais moderna ou de um cliente ZK Layer 2 será bastante desafiador. Até agora, a ausência de explicações orientadas para iniciantes para tais conceitos fundamentais tem atrasado o espaço ZK.
Este novo corpo de trabalho não é simplesmente uma "melhor explicação" dos materiais existentes, mas a primeira explicação de todas -- fora dos artigos acadêmicos.
Usamos Circom como a linguagem de instrução, pois a consideramos a mais amigável para iniciantes. No entanto, o que você aprende aqui se generaliza para outras estruturas como Plonky3, Halo2, o1js e Gnark. Os novos artigos agora tornam o ZK Book mais de 38.000 palavras mais longo.
Você não precisa saber como funciona um ZK-SNARK para ler esta seção do livro, mas existem alguns pré-requisitos. Estes estão listados no capítulo "Introduction to Circom".
Como sempre, o material é totalmente gratuito, sem necessidade de login.