A curated collection of notes, lectures, bootcamps, and experiments focused on Zero-Knowledge Proofs (ZKPs), proving systems, and applied cryptography.
This repository documents my deep dive into — from theory and math foundations to practical implementations and performance benchmarks.
Focused notes and summaries from my study sessions and research.
Lectures and summaries from leading cryptographers and researchers.
Hands-on prototypes and implementations exploring ZK systems.
- gvm - GKR-based Risc-V VM
- gkr-proof-recursion - Recursive GKR Proof Compression
- poseidon2 - Poseidon2 hash function
- sumcheck - ZKP protocol
- sumcheck sagemath
-
- Introduction and Bootcamp Overview
- ZKP Theory and Zokrates
- Introduction to Scaling Solutions
- Introduction to Starknet / Cairo
- Mastering Cairo
- Understanding Zcash
- Mastering Mina Protocol
- Deep Dive into Mina and Aleo
- zkEVM Solutions
- zkEVM Solutions and ZK Rollups
- Risc Zero / Circom
- ZK - Snark Theory / PLONK
- Stark Theory
- Cryptographic Alternatives
- Identity Solutions / zkML
- Trends and Review
- Final Projects
-
- Course Introduction
- Solidity Review and New Features
- EVM Deep Dive
- Developer Tools and Foundry
- Solidity Assembly
- Yul Continued
- Scalability Solutions
- Gas Optimisation
- Gas Optimisation Part 2
- Security
- Security / Auditing / Monitoring
- Formal Verification and Testing
- MEV
- Huff / Maths libraries / Stablecoins
- Latest Changes
- Governance
-
- ZKP and ML Fundamentals
- Introduction to ML
- Introduction to zkML
- EZKL and Zokrates Introduction
- zkML Timeline and Challenges
- Zokrates and EZKL, cont.
- zkML Projects
- zkML in DeFi and coSNARKS
- Various Topics
- GKR / zkLLM / Zero Gravity
- Folding, Games and Hardware
- Course Review
- EZKL Workshop
- Giza Workshop
- Finale Projects
ZK-VM stands for Zero-Knowledge Virtual Machine. It proves that the program was executed correctly.
Pipeline
- Computation
- Algebraic Circuit
- R1CS
- QAP
- Linear PCP
- Linear Interactive Proof
- zkSNARK
Steps for generating proof in ZK-VM
- zk-SNARKs cannot be applied to any computational problem directly; rather, you have to convert the problem into the right “form” for the problem to operate on. The form is called a “quadratic arithmetic program” (QAP)
- The program is usually written in user-friendly languages like Solidity, Rust, Noir, etc.
- To prove the program, it should be compiled to bytecode.
- The compiler converts the source code to bytecode.
- Bytecode looks more cryptic than high-level languages.
- When the bytecode is compiled, it is executed inside of the VM. That is, the VM takes a list of instructions and executes them one by one. A result of this execution is called “execution trace.”
- The execution trace contains a list of opcodes that were executed for a specific invocation of a program.
- Prover takes the execution trace and checks that the bytecode (of a certain instruction set) was executed correctly.
- The proof input contains program inputs and outputs. So the prover can put these specific inputs in the provided constraints and check that they result in specific outputs.
- Verifier is an algorithm that verifies the proof. eg. smart contract
(Relation, Witness)
-- [Arithmatisation] --> Zero Check
-- [PIOP] --> Polynomial Identity
-- [PCS]--> Interactive Argument
-- [Fiat Shamir Transform]--> Non Interactive Argument
- R1CS
- AIR
- Plonkish
- Layered Arithmatic Circuit
- Plonk
- GKR (Sumcheck)
- Spartan (Sumcheck)
- Ligero
-
Hash Based
- Ligero
- FRI
- STIR
- WHIR
- Brakedown
-
ECDL Based
- KGZ
- IPA
- Hyrax
-
Lattice Based
- Greyhound
- Pinocchio
- Groth16
- Hyrax
- Sonic
- Universal Trusted Setup
- Ligero
- Zokrates
- Plonk
- Mirage
- Marlin
- Spartan
- Redshift
- Fractal
- Lunar
- SuperSonic
- Halo
- Inner Product Argument
- Tweedle Curves
- Accumulation Scheme
- Sonic
- Halo2
- Inner Product Argument
- Tweedle Curves
- Accumulation Scheme
- PLONK
- Darlin
- Quarks
- Plonky
- Brakedown
- Snarkpack
- fflonk
- SHPLONK
- Hyper Plonk
- Kimchi
- Binius
- Jolt
- Polymath
- TensorSwitch
- Nova
- Super Nova
- Hypernova
- Sangria
- Protostar
- Protostar Galaxy
- Basefold
- CycleFold
- LatticeFold
- Sonobe
- KGH Fold
- Vega