Zero-Knowledge Proofs: How it Works
About This Course
Building privacy-enhancing and secure technology require diving into the beauty of understanding current cryptographic building blocks. One of the existing heavily researched cryptographic tools is the zero-knowledge proof. Zero-knowledge proofs are currently in excessive development, both in terms of theoretical machinery but also practical implementations, and have the potential to scale blockchain-based solutions securely. Additionally, a standardisation effort for zero-knowledge proofs is currently in progress.
Zero-knowledge proofs refer to a cryptographic protocol where a party can prove possession of certain information without revealing the information itself.
Most learning materials struggle to explain why they are important and how they work internally, so zero-knowledge proofs remain somewhat “magical” and elusive, deterring developers from effectively exploring or utilising them in a big span of projects. In this course, we will focus on the mathematical and cryptographic foundations of zk-SNARKs, a type of commonly used zero-knowledge proof. The acronym zk-SNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”, and the course will focus on every development step of the Groth16 zk-SNARK.
What You'll Learn
▪ Explain the capabilities, limitations, and applications of zero-knowledge proofs
▪ Analyse arithmetic and algebra for cryptographic building blocks
▪ Assess elliptic curves and review elliptic curve pairings
▪ Dissect Groth16 zk-SNARK setup, prover, and verifier stage
▪ Design statements to be proven in Groth16 zk-SNARK and build them in different representations (algebraic circuits, Rank 1 Constraint System (R1CS), Quadratic Arithmetic Programme (QAP))
▪ Construct Groth 16 zk-SNARK setup, prover, and verifier
▪ Use SageMath for mathematical calculations and Circom for zk-SNARK calculations
Entry Requirements
Nil