[Recommended] Why and How zk-SNARK Works: Definitive Explanation
This paper aims to explain zk-SNARK construction in a simple and accessible way, using examples and answering common questions. Its contribution is a gradual increase in complexity to help readers understand without prior knowledge of cryptography or advanced math. The paper not only explains how zk-SNARK works, but also why it works and how it was developed.
An ongoing knowledge base for ZKP domain knowledge.
This explainer post focuses on one key part of the zkSNARK stack: the R1CS protocol. We will go through a simple example in great detail, with minimal skipping of steps, to make it straightforward to follow along.
-
How PLONK works
Articles explaining the core ideas on how to prove a computation using PLONK.
- PLONK by Hand
A series of articles that explain how to execute a PLONK zero-knowledge proof system completely by hand.
- The halo2 Book
- Zero Knowledge Proof โ A Guide to Halo2 Source Code
- Awesome Halo2
- 0xPARC Halo2
- HALO Principle Explained
Recursive zero-knowledge proofs are new cryptographic primitives relevant to the Anoma blockchain use case. In this article, we investigate the possible alternatives for verifying blockchain circuits efficiently. Our main interest is in estimating the efficiency of pairing-based constructions.
We'll explore why proof generation is costly by breaking down its technical process and identifying its computations. Then, we'll consider ways to speed it up.
- Poseidon Hash
- USENIX Security '21 - Poseidon: A New Hash Function for Zero-Knowledge Proof Systems
- Ingonyama Poseidon Hash
- Brief explanation of Pedersen Commitment
- Zero Knowledge Proofs: Example with Pedersen Commitments in Monero
- Starknet's Pedersen Hash
- Starknet's Javascript implementation
A collection of notes on various topics in the mathematics and computer science domain
- Number theory
- Exploring Elliptic Curve Pairings by Vitalik Buterin
- Elliptic Curve Cryptography: a gentle introduction