- Published on
Zero-Knowledge References
2228 words12 min read
Those references are taken from ingopedia repository by ingonyama-zk at commit 3e3c4c5b2a5ecbd85eeb30829554a762d2896a8c.
Zero Knowledge
Curated Resources
- zkProof Standards - Resource
- ZK Mesh - resource
- Curated list of ZKP implementations
- Awesome - Matter labs - ZK proofs
- Awesome - Mikerah - Privacy on Blockchains
- Awesome - Worldcoin - ZK Machine Learning
- Resource: Awesome_Plonk
- ZK research 0x
- ZK canon
- Moonmath manual
- ZKP knowledge base: Delendum
Articles
- Introductory:
- ZK Whiteboard Sessions
- An incomplete guide to zk: why zk matters
- Applications of ZKPs
- PCP - Probablistically Checkable Proofs
- ZKP beginner resources
- ZK jargon decoder
- Amit Sahai explaining ZK to people of all ages - video
- An introduction to how zk snarks are possible - Vitalik
- Using zkSnarks for privacy: Vitalik
- ZudoKu - intuitive no-math ZK Primer using Sudokus
- Introduction to Zk SNARKS -Decentriq
- Zk blog
- Zk_primer_1 M.Green
- Zk_primer_2 M.Green
- Interactive_proofs and Zk
- Zk - proofs with examples
- Merkle Trees
- KU Lueven: Intro to ZK part 1
- Simple intro to ZKP
- A cambrian explosion of crypto proofs -Ben Sasson
- Hunting of the SNARK Walton-Pocock: Part 1, Part 2,Part 3
- On interactive proofs and ZKP - Yannik Goldgrabe
- Exploring ZK with Groth
- Breaking supersingular isogeny DH * Galbraith
- ZK whiteboard sessions by ZK Hack:
- Part 1: What is a SNARK?
- Part 2: Building a SNARK (Part I):
- Part 3: Building a SNARK (Part 2)
- Part 4: SNARKS vs. STARKS
- Part 5: PLONK and Custom Gates with Adrian Hamelink
- Part 6: Lookup Arguments for Performance Optimisation
- Part 7: Zero Knowledge Virtual Machines (zkVM)
- Part 8: Achieving Decentralised Private Computation
- Part 9: Introduction to zkRollups
- Plonk origin and roadmap
- Part 10: Polygon zkEVM
- Part 11: zk SWAPS
- Part 12: zk ID - Polygon Zero
- Part 13: Plonky2 - recursive proofs
- Part 14: Nova - recursive snark, VDF application
- Trusted Setup:
- Vitalik Snark tutorial:
- All about STARKS:
- Introduction
- Papers
- Vitalik Stark tutorials:
- STARK Math series:
- Stark 101 - hands on
- Anatomy of a STARK
- BrainSTARK
- STARK vs SNARK
- STARK Week
- EthSTARK
- Recursive STARK -Avihu Levy
- Recursive Snarks:
- Zero Knowledge Hands-on:
- zero knowledge with Bellman
- Cryptohack - hands on cryptography
- Zk hack puzzles
- Hands on ZK - ZK learning group
- Intro to zk: do it yourself circuits
- Zk Sudoku - Python
- Arnacube implementations
- Rust Cryptographic libraries
- DAPP fron scratch - Vivian Plasencia
- Crrl: Cryptography research library - Thomas Pornin
- Zordle - Zk wordle
- Mental Poker: Part 1
- Mental poker: Part 2
- 0xparc learning groups - covering cricom and halo2
- Constructing ZK SNARK circuits - DSL Zk calculator
- Social Applied ZK projects on Ethereum
- Uncloak courses
- Ethereum
- General
- Digital identity in ZK
- ZKp security in practice
- Wei Dai - Navigating privacy in Blockchains
- Zk lottery
- Threshold Encryption
- Vulnerabilities in zk systems
- Vulnerability in Fiat-Shamir
- Frozen heart vulnerability: Bulletproof
- Frozen heart vulnerability: Plonk
- Hertzbleed attack: sidechannel
- Stress testing Zk systems: Zk docs
- An intuitiive understanding of cryptography
- Zero knowledge Proof mining
- zk ML
- Practical Cryptography for Devs: Nakov
- deep dive into DKG chain of snarks and arkworks
- Decentralizing zk rollups
- Miden VM
- GKR implementaton - Justin Thaler
- Verifiable computing stack
- ZKp from Information theoretic Proof systems 1 - Yuval Ishai
- ZKP from Information theoretic Proof systems 2 - Yuval Ishai
- A cambrian explosion of ZKP's - Ben-Sasson
- Secure computing and hardware acceleration
- Crypto canon
- DAO canon
- Having a safe CEX: proof of solvency and beyond
- What's next in ZK
- MPC
- Yau;s garbled circuits: MPC
- A gentle introduction to YAU's Garbled circuits
- Setup ceremonies - Pruden & Matlala
- Collaborative zk-Snarks
- a Multi-Prover Zero-Knowledge Proof System
- Trinocchio: Privacy-Preserving Outsourcing by Distributed Verifiable Computation
- Zero-Knowledge Proofs on Secret-Shared Data via Fully Linear PCPs
- Prio: Private, Robust, and Scalable Computation of Aggregate Statistics
- ATLAS (Goyal, CMU) Efficient and Scalable MPC in the Honest Majority Setting
- Gaming
- Comprehensive protocol books:
- ZK Rollups
- ZK bridges
- Vulnerabilities in ZK bridges
- Primer on Cross chain bridges and how to break them: Niv Yehezkel
- Block chain bridges: Introduction
- Introduction to validating bridges and L2 protocols - Patrick McCory
- zkEVMOS - Bridges and Interoperability
- Bridging the blockchain multiverse with ZKP
- Cross chain Futur - Delendum
- Navigating privacy on Blockchains - Wei Dai
- Accelerating Zero Knowledge:
- Supranational VDF's and crypto accelerators
- Measuring Snark performance frontends-backends and future - Thaler
- SNark security and peformance - Thaler
- Supranational codes
- Decentralized Speed: Advances in Zero Knowledge Proofs
- Hardware Acceleration for Zero Knowledge Proofs
- ZK and TLS
- Algorithms for modern Hardware
- learning CUDA from scratch - entropy
- Low latency multipliers and cryptographic puzzles
- Zprize submissions summary - entropy
- Dmitry Khovratovich notes
- MIT research site
- How to be a Rustacean
Zero Knowledge Lectures/books/videos/Schools
- Why and how Zero knowledge works
- The math behind ZkSNARK - video
- De-mystifying Zk proofs -workshop
- An evolution of ZKP - Sarah Meiklejohn
- Schools/Courses
- Cryptography lectures
- Foundations of Block chains - Tim Roughgarden
- Foundations of probabilistic proofs - Alessandro Chisea
- Basics of zkSTARK and zkSNARK
- An Introduction to Secret-Sharing-Based Secure Multiparty Computation - Daniel Escudero
- Proofs Arguments and Zero Knowledge - Justin Thaler
- This is a regularly updated book, discord zk study club from mid april.
- ZKP - Modular approach -Yuval Ishai
- A review of zk-SNARKS
- Recursive SNARKs - Stanford lecs
- All about Verifiable Delay Functions (VDF's) - VDFresearch
- Chiesea - Thesis - Recursive SNARK
- Berry Lecture Notes
- Cryptographic Protocls: lectures
- Zero Knowledge: A tutorial by Oded Goldreich
- Workshops/conferences
- Berkley workshop 2022
ZK protocols and implementations
- Pinocchio - 2013
- TinyRAM - 2013
- vnTinyRAM - 2014
- Geppetto - 2015
- Buffet - 2015
- Groth -2016
- Ligero - 2017
- ZoKrates - 2018, Code: ZoKrates
- xjSNARK - 2018
- vRAM - 2018
- Bulletproof - 2018
- Hyrax - 2018
- zk-STARK -2018
- Sonic - 2019
- Plonk - 2019
- Plonk high level summary
- Talk: Ariel Gabizon
- Talk: Zac Williamson
- Understanding Plonk - Vitalik
- From AIRs to RAPs - how PLONK-style arithmetization works
- On optimizations of Plonk
- Custom gates on plonk -Do whatever
- Plonk Cafe
- Plonk: Anatomy of a proof generation: Scroll
- code: Heliaxdev, code: Kobigurkan ,code: ZKgarage, code: Dusknetwork,code: Jellyfish includes plookup ,Resource: Awesome_Plonk
- Resource: Plonk by hand -1 Metastate
- Resource: Plonk by hand -2 Metastate
- Resource: Plonk by hand -3 Metastate
- Resource: Plonk and Plookup Metastate
- Turboplonk
- Custom gates in plonk
- Plonk: Thomas Piellard
- ZKP intro to Plonk - Star Li
- Multi set checks in Plonk and Plookup: Gabizon
- Plonk - Kimchi: Mina Protocol
- Redshift - 2019
- Spartan - 2019
- Halo - 2019
- Aurora - 2019
- MIRAGE - 2020
- Marlin - 2020
- Fractal -2020
- Lunar - 2020 - Optimizations for Marlin.
- SuperSonic - 2020
- Virgo - 2020, code
- Plookup -2020
- Zilch - 2021, code
- Darlin - 2021,code
- Plonkup -2021
- SnarkPack -2021 Practical snark aggregation
- FFlonk -2021 a FFT friendly Plonk
- Brakedown - 2021
- Nova - 2021, code - Srinath Setty - Talk - Srinath Setty - Video - Nova - Entropy - IACR talk slides
- Plonky2 - 2022
- Halo 2 - library
- Gemini - 2022, Arkworks
- Caulk - 2022
- Orion -2022
- Hyperplonk - 2022
- flookup: Fractional decomposition-based lookups in quasi-linear time independent of table size -2022
- Baloo: Nearly Optimal Lookup Arguments - 2022
- CQ: Cached coefficients for fast lookups 2022
- Supernova 2022
Elliptic Curves/Polynomial Commitments/R1CS/QAP/FFT/MSM/hash functions
Finite Fields
- Number theory explained from first principles
- An introduction to the theory of finite fields
- MIT lectures -FInite Field arithmetic
- Finite field arithmetic Doche Lange
- Aztec emulated field and group operations
- Extension fields: Entropy
Polynomials
Elliptic curves
- An introduction to the Arithmetic of Elliptic curves - Comprehensive series of lectures - Pre req: Galois Theory,
- ECC cryptobook
- Cures over finite fields - Lectures
- Elliptic curves Chapter 4 Washington
- Elliptic Curves: MIT lectures
- Corbellini - ECC
- ECC primer
- Silverman - ECC talk
- Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms
- Solinas - Efficient Arithmetic on Koblitz Curves
- Koblitz curve cryptosystems
- Elliptic Curve Cryptosystems (Koblitz Curves)
- Algorithm to Find Elliptic curves with a subgroup of a given size
- Elliptic curves number theory and cryptography
- Elliptic curve Arithmetic Curve addition - Doche-Lange
- Elliptic Curve Arithmetic Exponentiation -Doche Lange
- Elliptic curves of characteristic 2 or 3 - John Cook
- Addition/Doubling formulae
- Visualize Elliptic curves
- j invariant of a curve
- subgroup checks in BLS12
- Complete addition formulae : Bernstein - Lange
- Complete addition formulae for prime order curves
- Survey of Elliptic curves for Proof systems
- Edwards curves
- Twisted Edwards curves
- Subgroup checks for BLS12
- Cofactor explained: Elliptic curves dirty little secret
- Pairings:
- Pairings for beginners - Craig Costello
- Pairings - Vitalik Buterin
- Pairing friendly curves
- Estimating the Bit Security of Pairing-Friendly Curves - NCCgroup
- Pairing implementation revisited
- Groth_Sahai proofs are not scary
- Bilinear pairings in cryptography - Dennis Meffert
- Pairings and poly commitments - David Wong
- Circom pairing
- Pairings or bilinear maps
- Specific curves
Arithmetization
- General
- R1CS constraint system
- Daira Hopwood - Efficient R1CS circuits: Video
- Quadratic Arithmetic programs R1CS 0 to H - Vitalik Buterin
- Aleo - Basics of R1CS Zero Knowledge Proofs: How Cryptographers can prove anything
- Alex Pinto - Constraint system for snarks
- Alex Pinto - How to build QAP
- Alex Pinto - Vanishing polynomial for QAP
- QAP from zero to hero: Vitalik
- R1CS workshop - Mir
- AIR Arithmetization
Fast Fourier Transforms on Finite Fields (NTT: Number Theoretic transform)
- FFT - Vitalik
- Reed-Solomon code: Vitalik
- FFT Notes
- The Fast Fourier Transform in a Finite Field - Pollard
- Number Theoretic Transform (NTT): Introduction
- NTT with code
- NTL: a library for NTT
- Efficient primes for NTT - Goldilocks
- Elliptic Curve Fast Fourier Transform (ECFFT) Part I: Fast Polynomial Algorithms over all Finite Fields: Eli Ben-Sasson et.al
- ECFFT-2 Ben-Sasson et.al
- FFT - Ferror Moreno thesis
- Zcash once again for FFT
- FFT for polynomial multiplication
- A quick barycentric evaluation tutorial - Vitalik
- Barycentric interpolation - Math Oxford
- Thesis: BUNTTERFLY: A Flexible Hardware Generator for the Number Theoretic Transform - Jason Vranek
- CycloneNTT
Hardware acceleration for Zero Knowledge
Polynomial Commitment Schemes
- General
- KZG
- KZG commitments
- KZG - Suyash
- Polynomial commitments - Dankrad Feist
- Fast KZG proofs
- Amortized KZG - Khovratovich
- New sharding design with tight beacon and shard block integration - Dankrad Feist
- Protodanksharding - FAQ Vitalik
- Universal verification equation for data availability sampling
- KZG friendly curves: El Housseini
- KZG in practice: Scroll
- Vector Commitments
- FRI Fast Reed Solomon Interactive Oracle Proofs of Proximity
- Inner product Arguments (IPA)
Multi Scalar Multiplications
- Fast Multi-scalar Multiplication Methods on Elliptic Curves with Precomputation Strategy Using Montgomery Trick
- Faster batch forgery identification See section 4 for MSM, bucket method
- Pippenger's exponentiation algorithm - Bernstein
- Efficient multi-exponentiation
- A Taxonomy of Circuit Languages - Talk - Alex Ozdemir
- Multi-scalar multiplication: state of the art & new ideas with Gus Gutoski
- Improved Fast exponentiations - Bodo Moller
- Fast exponentiation with precomputation - Brickell Gordon et al
- Matter labs -ALgorithms
- Ryah Henry - Thesis
- Efficient Multi exponentiation: Bucket method - Bootle
- Hardware acceleration
Modular arithmetic
- A Fast Large-Integer Extended GCD Algorithm and Hardware Design for Verifiable Delay Functions and Modular Inversion
- Optimized Binary GCD for Modular Inversion
- Library of Algorithms
- Modular Multiplication and Hardware implementations - Review
- Evaluation of large integer multiplications in hardware - Review
- Hardware friendly modular mult
- Montgomery REDC using positive inverse mod r
Related Math
Hash functions in ZK
- ZK hashes- General
- Merlin: Fiat-Shamir magic generator
- Keccak: Sponge and Duplex constructions
- POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems
- some documentation
- Encryption With Poseidon: Dima Khovratovich
- SAFE A tool box for Poseidon API
- code: filecoin
- code: Ingonyama (python)
- code: snarkVM Aleo Poseidon
- Encoding of long objects in Poseidon - Dmitry Khovratovich
- Poseidon in Filecoin - Dmitry Khovratovich
- Talk Grassi
- code: Dusk network
- code: Dust netowrk - Poseidon merkle
- code: Triplewz - GO
- Poseidon vs Rescye
- Plonky2: Poseidon gate
- Penumbra: Poseidon Decaf377
- Rescue-Prime: a Standard Specification (SoK)
- MiMc
- Reinforced concrete
- Sinsemilla: A circuit-efficient, lookup-based collision-resistant hash function
- Blake
- Merkle Trees
- S box properties
- Hash to Curve
- Hash Bounties
Homomorphic Encryption
Articles
- TFHE deep dive: ZAMA AI - Ilaria Chilloti
HE Libraries/implementations
- Awesome FHE library list
- Microsoft SEAL
- TenSEAL - Openmined
- PySyft - Openmined
- Tfhe - torus
- Google - FHE
- IBM - FHE
- PALISADE
- Zama AI - Concrete - Rust
- Paillier - Julia
- Cupcake - Facebook Research
Accelerating FHE
PQC (Post Quantum Cryptography)
General
✿
Zero Knowledge
â—Ž
Curated Resources
â—Ž
Articles
â—Ž
Zero Knowledge Lectures/books/vi...
â—Ž
ZK protocols and implementations
✿
Elliptic Curves/Polynomial Commit...
â—Ž
Finite Fields
â—Ž
Polynomials
â—Ž
Elliptic curves
â—Ž
Arithmetization
â—Ž
Fast Fourier Transforms on Finit...
â—Ž
Hardware acceleration for Zero K...
â—Ž
Polynomial Commitment Schemes
â—Ž
Multi Scalar Multiplications
â—Ž
Modular arithmetic
â—Ž
Related Math
â—Ž
Hash functions in ZK
✿
Homomorphic Encryption
â—Ž
Articles
â—Ž
HE Libraries/implementations
â—Ž
Accelerating FHE
✿
PQC (Post Quantum Cryptography)
â—Ž
General