Când am lansat cartea ZK în urmă cu mai bine de un an, am făcut un pas uriaș înainte în spațiul educațional ZK. Cartea noastră a fost pionieră în abordarea "doar suficientă matematică" pentru a învăța ZK. Astăzi o facem din nou cu o nouă adăugare la Cartea ZK. "Modele de proiectare Circom și constrângeri" Această nouă secțiune se concentrează pe modul de proiectare, creare și audit a circuitelor ZK non-triviale. Probabil că ați văzut o mulțime de tutoriale despre cum să dovediți că cunoașteți evaluarea unui polinom folosind Circom. Dar cum treci de acolo la proiectarea unui ZKVM sau la dovedirea că cunoști primăria unei funcții hash tradiționale (cum ar fi MD5 sau Keccak256)? Noua parte a cărții noastre ZK vă duce într-o călătorie de la înmulțirea la numere la: - construirea unui ZKVM de la zero - constrângeri de codare pentru funcția hash MD5 - Învățați modelele de proiectare recurente în proiectarea constrângerilor Ultima parte a fost interesantă, deoarece unele dintre "modelele de design" consacrate nici măcar nu au nume pentru ele. A trebuit să inventăm o terminologie! Ca de obicei, suntem extrem de atenți la modul în care introducem cititorul în idei noi pentru a evita să copleșim pe cineva nou. Suntem atenți să ne asigurăm că predăm premisele într-o ordine rațională și cu o mulțime de exemple. Fiecare capitol arată cum să construiești un circuit pentru o aplicație din ce în ce mai complexă. Cu fiecare capitol, amândoi revizuiți ceea ce ați învățat anterior și învățați un nou model de design. Odată ce construiți o colecție de aceste modele de design, le puteți compune împreună pentru a construi aplicații mai complexe, cum ar fi ZKVM sau o funcție hash non-trivială. Depunem un efort uriaș pentru a ne asigura că materialul este ușor de înțeles și corectat, fără omisiuni importante. Am dori să mulțumim @ChainLight_io, @VeridiseInc, @PrivacyScaling și @zksecurityXYZ pentru că au alocat timp pentru a revizui această lucrare și a oferi sugestii. Suntem deosebit de recunoscători @marcobesier de la @zksecurityXYZ pentru că a lucrat la mai multe revizuiri pentru a aduce capitolele într-o stare cu adevărat șlefuită. Mulțumiri speciale pentru @cal_nix pentru coautorul primelor șapte capitole din această nouă parte a cărții! Subiectele pe care le abordăm aici sunt extrem de fundamentale. Dacă nu înțelegeți materialele de aici, învățarea componentelor interne ale clientului ZKVM sau ZK L2 mai modern va fi destul de dificilă. Până acum, absența unor explicații orientate spre nou-veniți pentru astfel de concepte fundamentale a ținut spațiul ZK înapoi. Acest nou corp de lucrări nu este doar o "explicație mai bună" a materialelor existente, ci prima explicație - în afara lucrărilor academice. Folosim Circom ca limbă de predare, deoarece îl considerăm cel mai prietenos pentru începători. Cu toate acestea, ceea ce învățați aici se generalizează la alte framework-uri precum Plonky3, Halo2, o1js și Gnark. Noile articole fac acum cartea ZK cu peste 38.000 de cuvinte mai lungă. Nu trebuie să știți cum funcționează un ZK-SNARK pentru a citi această secțiune a cărții, dar există câteva condiții prealabile. Acestea sunt enumerate în capitolul "Introducere în Circom". Ca de obicei, materialul este complet gratuit, fără a fi necesară autentificarea.
10,13K