← Back to DALHousie Home

📚 zkSNARKs Reading List

A Comprehensive Learning Path for Zero-Knowledge Succinct Arguments
Curated by the Department of Attestation & Ledger Studies to guide researchers from foundational concepts to cutting-edge implementations. This reading list progresses from mathematical foundations through practical applications.

🎯 Recommended Learning Path

Foundations
Mathematical Theory
Practical Systems
Modern Protocols
Implementation
Reading Progress
0 of 25 papers completed (0%)

🎯 Foundation Papers - Start Here

Quadratic Arithmetic Programs: From Zero to Hero

Author: Vitalik Buterin | Year: 2016

Beginner 45 min
The definitive introduction to zkSNARKs from Ethereum's co-founder. This post explains the mathematical foundations of Quadratic Arithmetic Programs (QAPs) in accessible terms, walking through the transformation from computational problems to polynomial equations.
Why read this first: Vitalik's explanation is the gold standard for understanding how zkSNARKs work under the hood. It provides the conceptual framework needed for all subsequent reading. Essential for building intuition about constraint systems and polynomial commitments.

zkSNARKs in a Nutshell

Author: Christian Reitwiessner | Year: 2016

Beginner 30 min
A complementary introduction focusing on the practical aspects of zkSNARKs in Ethereum. Covers the trusted setup, circuit compilation, and verification process with concrete examples.
Why read this: Provides practical context for Vitalik's theoretical explanation. Shows how zkSNARKs are actually implemented in production systems. Essential for understanding the Ethereum zkSNARK ecosystem.

Zero Knowledge Proofs: An Illustrated Primer

Author: Matthew Green | Year: 2014

Beginner 40 min
The classic introduction to zero-knowledge proofs using the Ali Baba cave analogy. Explains the fundamental properties of completeness, soundness, and zero-knowledge in intuitive terms.
Why read this: Builds the conceptual foundation for understanding what zero-knowledge means. The cave analogy is referenced throughout the literature. Essential background before diving into SNARKs specifically.

📐 Mathematical Foundations

Pinocchio: Nearly Practical Verifiable Computation

Authors: Parno, Howell, Gentry, Raykova | Year: 2013

Intermediate 2 hours
The seminal paper that introduced practical zkSNARKs. Presents the first system with constant-size proofs and efficient verification. Introduces the concept of Quadratic Arithmetic Programs and the underlying cryptographic techniques.
Prerequisites:
  • Understanding of QAPs from Vitalik's post
  • Basic knowledge of bilinear pairings
  • Familiarity with polynomial commitments
Why read this: The foundational paper that made zkSNARKs practical. Understanding Pinocchio is crucial for grasping how all modern SNARK systems work. Introduces the mathematical techniques used in Groth16, PLONK, and other systems.
Intermediate 2.5 hours
The Groth16 paper that achieved the smallest possible proof size for pairing-based SNARKs. Introduces the most widely used SNARK construction, optimizing Pinocchio's approach for minimal proof size and verification time.
Why read this: Groth16 is the most deployed SNARK system in production (Zcash, Ethereum, etc.). Understanding its construction is essential for practical zkSNARK work. Shows how to optimize SNARK systems for real-world deployment.
Advanced 3 hours
The breakthrough paper introducing universal setup SNARKs. PLONK eliminates the need for per-circuit trusted setups while maintaining efficiency. Introduces copy constraints and permutation arguments.
Why read this: PLONK represents the current state-of-the-art in SNARK design. It's the foundation for Aztec Protocol, Polygon Hermez, and many other modern systems. Understanding PLONK is crucial for contemporary ZK research.

🔧 Practical Systems & Implementations

Zerocash: Decentralized Anonymous Payments from Bitcoin

Authors: Sasson et al. | Year: 2014

Intermediate 2 hours
The first practical application of zkSNARKs to cryptocurrency privacy. Introduces the concept of shielded transactions and shows how to build private payment systems using zero-knowledge proofs.
Why read this: Demonstrates the killer application of zkSNARKs in blockchain systems. Zcash is based on this paper and remains one of the most successful ZK applications. Essential for understanding privacy coins and confidential transactions.

zkSNARKs in Ethereum: A Practical Guide

Author: Ethereum Foundation | Year: 2017

Beginner 45 min
Practical guide to implementing zkSNARKs on Ethereum using the precompiled contracts. Covers the Byzantium hard fork additions and how to verify SNARK proofs on-chain.
Why read this: Shows how zkSNARKs integrate with existing blockchain infrastructure. Essential for understanding the practical deployment of ZK systems in production environments.

Circom Documentation & Tutorial

Author: iden3 Team | Year: 2020

Intermediate 3 hours
Comprehensive guide to the Circom circuit language and snarkjs library. Includes hands-on tutorials for building and deploying zkSNARK circuits. The most practical introduction to SNARK development.
Why read this: Circom is the most popular tool for SNARK development. This tutorial provides hands-on experience building real circuits. Essential for anyone wanting to implement zkSNARKs in practice.

🚀 Modern Protocols & Advanced Topics

Introduces updatable universal setup and polynomial commitment schemes. Sonic was the precursor to PLONK and introduced many of the techniques used in modern universal SNARKs.
Why read this: Understanding Sonic helps bridge the gap between Groth16 and PLONK. Introduces key concepts like polynomial commitment schemes and universal setup. Important for understanding the evolution of SNARK systems.

Polynomial Commitments

Authors: Kate, Zaverucha, Goldberg | Year: 2010

Advanced 2 hours
The foundational paper on KZG polynomial commitments, which underpin most modern SNARK systems. Explains how to commit to polynomials and prove evaluations efficiently.
Why read this: KZG commitments are the cryptographic primitive behind PLONK, FRI-based STARKs, and many other modern systems. Understanding polynomial commitments is crucial for advanced ZK research.

Aztec Protocol: Private Smart Contracts

Author: Aztec Team | Year: 2023

Advanced 2 hours
Documentation for Aztec Protocol's private smart contract system. Shows how to build programmable privacy using PLONK-based SNARKs and the Noir language.
Why read this: Aztec represents the cutting edge of practical ZK applications. Shows how modern SNARK systems enable complex private computations. Essential for understanding the future of privacy-preserving applications.

🔬 Research Frontiers

Advanced 3 hours
The foundational STARK paper introducing transparent (no trusted setup) zero-knowledge proofs. Uses polynomial commitment schemes based on error-correcting codes rather than pairings.
Why read this: STARKs represent an alternative approach to SNARKs with different tradeoffs. Understanding both paradigms is essential for comprehensive ZK knowledge. Important for post-quantum security considerations.

Halo: Recursive Proof Composition without a Trusted Setup

Authors: Bowe, Grigg, Hopwood | Year: 2019

Advanced 2.5 hours
Introduces recursive proof composition without trusted setup, enabling infinite scalability. Shows how to create proofs that verify other proofs, enabling blockchain compression and other advanced applications.
Why read this: Recursive proofs are the frontier of ZK research, enabling unlimited scalability and novel applications. Understanding recursion is crucial for advanced ZK system design.

An approximate introduction to how zk-SNARKs are possible

Author: Vitalik Buterin | Year: 2021

Intermediate 1 hour
Vitalik's updated explanation of zkSNARKs, incorporating lessons learned from the field's evolution. Covers polynomial commitments, interactive oracle proofs, and modern techniques.
Why read this: Updates and refines the concepts from the original QAP post. Incorporates modern understanding of polynomial commitments and interactive proofs. Essential for staying current with ZK developments.

🛠️ Implementation & Tools

Noir Language Tutorial

Author: Aztec Team | Year: 2023

Beginner 2 hours
Hands-on tutorial for the Noir programming language, which compiles to PLONK circuits. Includes installation, basic syntax, and building your first zero-knowledge program.
Why read this: Noir represents the future of ZK development - high-level languages that compile to circuits. Essential for practical ZK development and understanding modern tooling.

Barretenberg: PLONK Implementation

Author: Aztec Protocol | Year: 2023

Intermediate 4 hours
Production-grade C++ implementation of PLONK. Study the codebase to understand how modern SNARKs are implemented in practice. Includes optimizations and real-world considerations.
Why read this: Understanding production implementations is crucial for serious ZK work. Barretenberg is one of the most optimized SNARK libraries available. Essential for performance-critical applications.

Awesome Zero Knowledge Proofs

Author: Matter Labs | Year: 2023

Advanced Ongoing
Comprehensive collection of ZK resources, papers, implementations, and tools. Continuously updated with the latest developments in the field.
Why read this: The definitive resource collection for staying current with ZK developments. Essential bookmark for ongoing research and finding the latest papers and implementations.

📊 Supplementary Resources

ZKProof Community Standards

Author: ZKProof Community | Year: 2018-Present

Beginner Ongoing
Community-driven effort to establish standards and best practices for zero-knowledge proofs. Includes workshops, papers, and implementation guidelines.
Why read this: Essential for understanding industry standards and best practices. Provides a community perspective on ZK development and deployment considerations.

Zero Knowledge Blog

Author: Various Contributors | Year: 2020-Present

Intermediate Ongoing
Regular blog posts covering the latest developments in zero-knowledge cryptography. Includes tutorials, paper summaries, and industry analysis.
Why read this: Staying current with rapid developments in the ZK field. Provides accessible explanations of new papers and techniques as they emerge.