Skip to content

ByteBell/zkresources

Repository files navigation

Zero-Knowledge Cryptography Library

Welcome to a comprehensive collection of academic papers and resources for learning Zero-Knowledge Proofs (ZK), Cryptography, Fully Homomorphic Encryption (FHE), Multi-Party Computation (MPC), and Post-Quantum Cryptography.

What This Library Offers

This repository contains carefully organized research papers, textbooks, and foundational documents that will take you from mathematical foundations to cutting-edge cryptographic protocols. Whether you're a student, researcher, or developer, this library provides a structured path to mastering modern cryptography.

Who This Is For

  • Students wanting to learn cryptography from the ground up
  • Researchers looking for comprehensive reference materials
  • Developers building privacy-preserving systems
  • Anyone curious about zero-knowledge proofs, secure computation, or post-quantum cryptography

Quick Start

Absolute Beginners

If you're new to cryptography:

  1. Start with 01_math_foundations - Number theory and algebra basics (2-4 weeks)
  2. Move to 02_crypto_primitives - Elliptic curves, hashes, signatures (4-6 weeks)
  3. Then dive into 03_zero_knowledge - The main destination! (8-16 weeks)

Learning Paths by Interest

Choose your path based on what you want to build:

Path 1: Zero-Knowledge Proofs (Privacy & Scalability)

01_math_foundations → 02_crypto_primitives → 03_zero_knowledge
→ 06_applications_credentials_and_privacy (see ZK in action)

Path 2: Secure Multi-Party Computation

01_math_foundations → 02_crypto_primitives → 04_mpc

Path 3: Fully Homomorphic Encryption

01_math_foundations → 05_fhe_and_lattices

Path 4: Post-Quantum Cryptography

01_math_foundations → 05_fhe_and_lattices
→ 07_advance_topics_and_post_quantum

Repository Structure

Core Learning Sequence

Priority: ⭐⭐⭐ START HERE

The mathematical foundation you absolutely need. Contains:

  • number theory/ - Primes, modular arithmetic, discrete logarithm
  • algebra/ - Groups, rings, fields
  • computational_algebra/ - Polynomial arithmetic, finite fields
  • finite_fields/ - Essential for elliptic curves

Why essential: You cannot understand cryptography without this foundation.

Time estimate: 2-4 weeks


Priority: ⭐⭐⭐ ESSENTIAL

Core cryptographic building blocks:

  • elliptic curve cryptography/ - Modern crypto foundation (28 papers)
  • pairing-based cryptography/ - Critical for zkSNARKs (9 papers)
  • hashes/ - Collision resistance, commitments (9 papers)
  • signature schemes/ - Digital signatures, Schnorr (12 papers)
  • zk_friendly/ - Primitives optimized for zero-knowledge
  • message_authentication/ - MACs and authenticated encryption
  • stream_ciphers/ - Symmetric encryption

Why essential: Modern ZK systems (SNARKs, STARKs) heavily use elliptic curves and pairings.

Time estimate: 4-6 weeks


Priority: ⭐⭐⭐ THIS IS YOUR DESTINATION

The most important folder in this library! Contains 40+ foundational and modern ZK papers:

Foundational Theory:

  • zero knowledge/ - Classical ZK papers (GMW, Schnorr, Fiat-Shamir)
  • NIZK/ - Non-interactive zero-knowledge proofs
  • commitment_schemes/ - Pedersen, homomorphic, polynomial commitments, structure-preserving signatures
  • groth_sahai_proofs/ - Foundation for all pairing-based SNARKs

SNARK Systems (Classical & Modern):

  • snark_foundations/ - Core theory (Pinocchio, QSP, Groth16)
  • plonky_stack/ - Modern variants (PLONK, HyperPlonk, Circle STARKs, Spartan)
  • universal_updatable/ - Universal setups (PLONK, Marlin)
  • recursion_and_folding/ - Recursive SNARKs (Nova, Halo 2)

Transparent & Advanced Systems:

  • starks_polynomial_iops/ - STARKs and polynomial IOPs (FRI, Aurora)
  • bulletproofs_ipa/ - Bulletproofs and inner product arguments

Learning Resources:

  • textbooks/ - Comprehensive learning materials (Proofs, Arguments, and ZK)

Key papers:

  • "Zero-Knowledge Proofs (2016)" - Miller (START HERE!)
  • "Proofs that yield nothing but their validity" - Goldreich, Micali, Wigderson
  • Groth-Sahai Proofs - Foundation for modern SNARKs
  • PLONK - Universal trusted setup SNARKs
  • Nova - Recursive SNARKs with folding
  • STARKs papers - Transparent alternatives
  • Bulletproofs - No trusted setup range proofs
  • Zerocash - Real-world zkSNARK application

Why essential: This is where cryptography gets magical - prove you know something without revealing it.

Time estimate: 8-16 weeks


Priority: ⭐⭐⭐ ESSENTIAL (for MPC focus)

Multi-Party Computation - compute together while keeping data private:

  • secret sharing/ - Shamir, verifiable secret sharing
  • oblivious transfer/ - Foundation of secure two-party computation (10+ papers)

Key concepts:

  • Split secrets among multiple parties
  • Compute without revealing inputs
  • Threshold cryptography
  • Private set intersection

Applications: Secure auctions, private analytics, threshold wallets

Time estimate: 4-6 weeks


Priority: ⭐⭐⭐ ESSENTIAL (for FHE and Post-Quantum)

Compute on encrypted data + quantum-resistant cryptography:

  • fhe_core/ - Gentry's breakthrough FHE thesis
  • LWE_RLWE_foundations/ - Learning With Errors problem
  • LWE_security_and_params/ - Parameter selection
  • NTRU_family/ - Fast lattice encryption
  • KEM_schemes/ - CRYSTALS-Kyber (NIST winner!)
  • signatures/ - Post-quantum signatures

Why essential:

  • FHE enables private cloud computing
  • Lattices are quantum-resistant
  • Kyber will replace RSA/ECC in the quantum era

Time estimate: 6-10 weeks


Applications & Advanced Topics

Priority: ⭐⭐ IMPORTANT

See cryptography in action:

  • anonymous credentials/ - Privacy-preserving identity (20 papers)
  • applications privacy_preserving_payments/ - Cryptocurrencies, Zerocash, Monero
  • blockchain_infrastructure/ - ZK rollups, scaling solutions
  • oram_and_private_memory/ - Oblivious RAM protocols

Great for: Understanding real-world applications after learning theory

Time estimate: 3-6 weeks


Priority: ⭐⭐ IMPORTANT (Advanced learners)

Specialized and advanced topics:

  • post_quantum_foundations_for_zk/ - Future-proof zero-knowledge
  • identity_based_and_dual_systems/ - Advanced encryption
  • private information retrieval/ - Query databases privately
  • formal verification/ - Proving correctness
  • proof_models_and_transforms/ - Security frameworks
  • pairing_assumption_short_signatures/ - BLS and more
  • implementation_frameworks/ - Practical tools

When to read: After mastering core topics

Time estimate: Variable, based on interests


Priority: ⭐ ADVANCED/SPECIALIZED

Practical security considerations:

  • side channels/ - Implementation security (26 papers)
  • isogeny-based cryptography/ - Alternative post-quantum approach
  • quantum algorithms & cryptanalysis/ - Understanding quantum threats
  • steganography/ - Hiding information
  • private_information_retrieval/ - Privacy-preserving queries

When to read: When implementing real systems or interested in specific topics


Priority: ⭐⭐ IMPORTANT (for cryptocurrency applications)

Special collection focused on Zcash and privacy-preserving cryptocurrencies.

Real-world implementation of zkSNARKs at scale.


Learning Timeline

Conservative Path (12-18 months)

Months 1-2: Mathematical foundations

  • Number theory, algebra, finite fields
  • Work through exercises and implementations

Months 3-4: Cryptographic primitives

  • Elliptic curves, pairings
  • Hash functions, commitments

Months 5-8: Zero-Knowledge deep dive

  • Classical ZK (Schnorr, GMW)
  • Modern SNARKs (Groth16, PLONK)
  • Practical implementations

Months 9-12: Specialization

  • Choose: MPC, FHE, or Advanced ZK
  • Deep dive into chosen area
  • Build practical projects

Months 13-18: Applications & Research

  • Real-world systems
  • Recent papers (2020+)
  • Original research

Accelerated Path (6-9 months)

Months 1-2: Foundations (condensed)

  • Essential math only
  • Focus on key concepts

Months 3-5: Zero-Knowledge focus

  • Skip some advanced theory
  • Focus on practical SNARKs
  • Hands-on implementations

Months 6-9: Specialization + Applications

  • Choose one area (MPC/FHE/Advanced ZK)
  • Build real projects
  • Contribute to open source

Essential Papers (Must Read)

Foundational Mathematics

  1. "An Introduction to Mathematical Cryptography" - Hoffstein, Pipher, Silverman
  2. "Handbook of Applied Cryptography" - Menezes, van Oorschot, Vanstone
  3. "Cryptography Made Simple" - Smart

Zero-Knowledge (Priority)

  1. "Zero-Knowledge Proofs (2016)" - Miller (START HERE!)
  2. "Proofs that yield nothing but their validity" - Goldreich, Micali, Wigderson
  3. "Efficient Identification and Signatures for Smart Cards" - Schnorr
  4. "Succinct Non-Interactive ZK for von Neumann Architecture" - Ben-Sasson et al.
  5. "Efficient Non-interactive Proof Systems for Bilinear Groups" - Groth, Sahai
  6. "On the Size of Pairing-Based Non-Interactive Arguments" - Groth (Groth16)
  7. "Zerocash: Decentralized Anonymous Payments from Bitcoin"

MPC Foundations

  1. "Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing" - Pedersen
  2. "Efficient Oblivious Transfer Protocols" - Naor, Pinkas
  3. "The Simplest Protocol for Oblivious Transfer" - Chou, Orlandi

FHE & Lattices

  1. "A Fully Homomorphic Encryption Scheme [Thesis]" - Gentry
  2. "Public-Key Cryptosystems from the Worst-Case Shortest Vector Problem" - Peikert
  3. "On Ideal Lattices and Learning with Errors Over Rings" - Lyubashevsky, Peikert, Regev
  4. "CRYSTALS-Kyber: a CCA-Secure Module-Lattice-Based KEM"

Study Tips

Do's ✅

  • Start with foundations - Don't skip the math!
  • Implement concepts - Code solidifies understanding
  • Work through examples - Do the exercises
  • Join communities - ZKProof.org, Discord servers, forums
  • Be patient - This material is challenging
  • Focus on understanding - Not just memorizing

Don'ts ❌

  • Don't rush - Quality over quantity
  • Don't skip prerequisites - You'll be lost
  • Don't just read - You must implement
  • Don't work in isolation - Ask questions
  • Don't give up - It gets clearer with time

Hands-On Practice

Tools for Learning

Zero-Knowledge:

  • Circom + SnarkJS - Write zkSNARKs in circuits (beginner-friendly)
  • ZoKrates - ZK toolbox for Ethereum
  • gnark - Go framework for ZK proofs

Multi-Party Computation:

  • MP-SPDZ - Multi-protocol MPC framework
  • libOTe - Oblivious transfer library

Fully Homomorphic Encryption:

  • Microsoft SEAL - Excellent tutorials
  • PALISADE - Comprehensive FHE library
  • HElib - IBM's FHE library

General Cryptography:

  • SageMath - Mathematical cryptography
  • liboqs - Post-quantum cryptography (Kyber, etc.)

Project Ideas

Beginner:

  1. Implement Schnorr identification protocol
  2. Code Shamir secret sharing
  3. Build simple Pedersen commitment scheme

Intermediate: 4. Create ZK Sudoku verifier with Circom 5. Build range proof system 6. Implement Yao's millionaires' problem

Advanced: 7. Design anonymous voting system 8. Create ZK authentication system 9. Build threshold signature wallet

Modern Developments (2019-2025)

This library now includes comprehensive coverage of modern ZK systems! Find these in 03_zero_knowledge/:

Modern SNARK Systems:

  • PLONK - Universal trusted setup (in universal_updatable/)
  • HyperPlonk - PLONK optimizations with linear-time prover (in plonky_stack/)
  • Marlin - Universal and updatable setup (in universal_updatable/)
  • Spartan - Efficient arguments without trusted setup (in plonky_stack/)

Transparent & Post-Quantum Alternatives:

  • STARKs - Transparent, no trusted setup, post-quantum (in starks_polynomial_iops/)
  • FRI Protocol - Fast Reed-Solomon IOPs (in starks_polynomial_iops/)
  • Aurora - Transparent arguments for R1CS (in starks_polynomial_iops/)
  • Bulletproofs - No trusted setup, efficient range proofs (in bulletproofs_ipa/)

Recursive & Folding Approaches:

  • Nova - Recursive SNARKs via folding (in recursion_and_folding/)
  • Halo 2 - Recursive proofs without trusted setup (in recursion_and_folding/)
  • Circle STARKs - Efficient polynomial commitments (in plonky_stack/)

Modern FHE:

  • CKKS - Approximate arithmetic for ML
  • TFHE - Fast bootstrapping
  • BGV/BFV - Second-generation FHE

Modern MPC:

  • SPDZ - Malicious security with MACs
  • ABY - Hybrid MPC framework
  • SCALE-MAMBA - Production MPC

Post-Quantum Standards:

  • Kyber - NIST PQC KEM winner (in this library!)
  • Dilithium - NIST PQC signature winner
  • SPHINCS+ - Hash-based signatures

Additional Resources

Online Courses

  • ZKP MOOC - Berkeley/Stanford ZK course
  • 0xPARC ZK Learning Group - Community-driven learning
  • Dan Boneh's Cryptography - Coursera
  • MIT 6.875 Cryptography - Advanced topics

Communities

  • ZKProof.org - ZK research community
  • Ethereum Research - ZK scaling discussions
  • IACR ePrint - Latest cryptography papers
  • Real World Crypto - Practitioner-focused conference

Books (External)

  • "Proofs, Arguments, and Zero-Knowledge" - Thaler (2022)
  • "Introduction to Modern Cryptography" - Katz & Lindell
  • "A Pragmatic Introduction to Secure Multi-Party Computation" - Evans et al.

Blogs & Videos

  • Vitalik Buterin's ZK posts - Accessible explanations
  • ZK Whiteboard Sessions - YouTube series
  • StarkWare blog - STARK deep dives
  • Zcash blog - zkSNARK applications

FAQ

Q: I'm a complete beginner. Where do I start? A: Start with 01_math_foundations. Read the number theory and algebra papers. Don't skip this!

Q: How long does it take to learn zero-knowledge proofs? A: 3-6 months for basics if you study consistently. 6-12 months to be proficient. Years to master. Be patient!

Q: Do I need a PhD in mathematics? A: No! But you need strong foundations (folders 01-02) and persistence. Work through the material step by step.

Q: Can I just use libraries without understanding the theory? A: You can use libraries, but you won't understand security implications or be able to design systems. Theory is essential.

Q: What's the difference between zkSNARKs and zkSTARKs? A: SNARKs use pairings (need trusted setup, smaller proofs). STARKs use hashes (transparent, larger proofs, post-quantum).

Q: Is the trusted setup in SNARKs a problem? A: Depends on your application. Ceremonies (like Zcash) can make it practical. Or use transparent systems (STARKs, Bulletproofs).

Q: Should I learn ZK or MPC first? A: Start with ZK - it's more widely applicable currently. You can learn MPC afterward; they complement each other.

Q: Are lattices really quantum-resistant? A: Yes! Quantum computers provide only polynomial speedup (Grover), not exponential (Shor). Lattice problems remain hard.

Q: Is FHE practical yet? A: Getting there! Still slower than plaintext computation, but schemes like CKKS are used in production for privacy-preserving ML.

Contributing

Found essential papers missing? Have suggestions for organization?

Please:

  1. Check if the paper fits existing folder structure
  2. Verify it's academically rigorous (peer-reviewed preferred)
  3. Consider the learning path - where does it fit?
  4. Submit suggestions or pull requests

Updates & Maintenance

Last major reorganization: 2025-11-04

The library is organized into 8 main categories with detailed README files in each folder providing:

  • Learning paths
  • Time estimates
  • Paper priorities
  • Key concepts
  • Hands-on exercises
  • Tool recommendations

How to Use This Library

For Self-Study

  1. Follow the recommended learning paths above
  2. Read each folder's README for detailed guidance
  3. Implement concepts as you learn
  4. Join online communities for support
  5. Build projects to solidify understanding

For University Courses

This library can supplement courses in:

  • Applied Cryptography
  • Zero-Knowledge Proofs
  • Secure Multi-Party Computation
  • Post-Quantum Cryptography
  • Privacy-Preserving Technologies

For Research

  • Use as comprehensive reference
  • Explore subfolder deep dives
  • Build on foundational papers
  • Connect to modern developments

For Development

  • Understand theory before implementing
  • Use as reference while coding
  • Verify security assumptions
  • Design secure systems

Security Note

Understanding ≠ Implementing Production Systems

Reading these papers gives you cryptographic knowledge, but:

  • Production systems require careful implementation
  • Side-channel attacks are real (see folder 08)
  • Parameter selection is critical
  • Peer review is essential
  • Use audited libraries when possible

If you're building production systems: Consult cryptography experts and get security audits.

License & Acknowledgments

This library aggregates academic papers and research documents. All papers are copyright of their respective authors and publishers.

For academic use: Please cite original papers.

For commercial use: Verify licensing of specific papers and protocols.


Quick Reference Guide

Topic Folder Priority Time Prerequisites
Number Theory, Algebra 01_math_foundations ⭐⭐⭐ 2-4 weeks None
Elliptic Curves, Pairings 02_crypto_primitives ⭐⭐⭐ 4-6 weeks Folder 01
Zero-Knowledge Proofs 03_zero_knowledge ⭐⭐⭐ 8-16 weeks Folders 01, 02
Multi-Party Computation 04_mpc ⭐⭐⭐ 4-6 weeks Folders 01, 02
FHE & Lattices 05_fhe_and_lattices ⭐⭐⭐ 6-10 weeks Folders 01, 02
Applications & Privacy 06_applications_credentials_and_privacy ⭐⭐ 3-6 weeks Folder 03
Advanced Topics 07_advance_topics_and_post_quantum ⭐⭐ Variable Folders 01-05
Implementation Security 08_real_world_security_and_privacy_addons Variable Implementing

Final Words

Welcome to the fascinating world of cryptography!

This journey from mathematical foundations to zero-knowledge proofs, secure computation, and post-quantum cryptography is challenging but incredibly rewarding.

Remember:

  • 🎯 Quality over quantity - understand deeply, not superficially
  • 🔨 Implement as you learn - code solidifies understanding
  • 🤝 Join communities - learn from others
  • 💪 Be persistent - breakthroughs come with time
  • 🎓 Enjoy the journey - this is beautiful mathematics!

Start with folder 01, follow the learning paths, and take your time. You've got this!


This is where cryptography gets magical.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published