awesome-zk

ZKP resource hub

A curated collection of resources and information on Zero-Knowledge Proofs (ZKPs) and related technologies.

A curated list of awesome ZK resources, libraries, tools and more.

GitHub

1k stars
66 watching
208 forks
last commit: about 1 month ago
Linked from 5 awesome lists


Table of Contents / Basics

Prerequisite understanding questions
ZKP Overview: History, Proving Systems, Circuits, Compilers

Table of Contents / Basics / Introduction

Understanding ZKPs Through Illustrated Examples
Understanding zero-knowledge proofs without cryptography background
A Non-Mathematical Introduction to Zero Knowledge Proof
Zero Knowledge Proofs: An Illustrated Primer
What are zk-SNARKs?
ZKPs for Engineers: Introduction
Privacy in Cryptocurrencies: An Overview
Zero Knowledge virtual machine step by step

Table of Contents / Basics / Vitalik's blogs for STARKs

Part 1: Proofs with Polynomials
Part 2: Thank Goodness It's FRI-day
Part 3: Into the Weeds

Table of Contents / Basics / Explaining STARKs

Part I: STARK Overview
Part II: Basic Tools
Part II: FRI
Part IV: The STARK Polynomial IOP
Part V: A Rescue-Prime STARK
Part VI: Speeding Things Up
Brainfuck STARK Tutorial

Table of Contents / Basics

zkSNARKs in a nutshell
The RareSkills Book of Zero Knowledge
The MoonMath Manual to zk-SNARKs
Comments on paper: zkSNARKs in a Nutshell by Aaron 1,486 about 1 month ago
An approximate introduction to how zk-SNARKs are possible

Table of Contents / Basics / Explaining SNARKs

Part I: Homomorphic Hidings
Part II: Blind Evaluation of Polynomials
Part III: The Knowledge of Coefficient Test and Assumption
Part IV: How to make Blind Evaluation of Polynomials Verifiable
Part V: From Computations to Polynomials
Part VI: The Pinocchio Protocol
Part VII: Pairings of Elliptic Curves

Table of Contents / Basics / Important landmarks for zk-SNARKs

Succinct ZK K92
Succinct Non-Interactive ZK M94
“SNARK” terminology and characterization of existence BCCT11
Succinct NIZK without the PCP Theorem Groth10
Succinct NIZK without PCP Theorem & Quasi-linear prover time GGPR13
Verifiable Delay Function

Table of Contents / Basics / Circuit optimization

Circuit Optimisation Handout

Table of Contents / Basics / Introduction to Layer 2

An Incomplete Guide to Rollups
Why rollups + data shards are the only sustainable solution for high scalability
Introducing zkSync: the missing link to mass adoption of Ethereum
Validity Proofs vs. Fraud Proofs
A Pre-consensus Mechanism by Leohio

Table of Contents / Basics / Mathematical Foundations

Introduction to Mathematical Cryptography 1,010 about 5 years ago
Modern Computer Algebra
Explicit-Formulas Database
Abstract Algebra
Algebraic Number Theory
Computational Introduction to Number Theory and Algebra
A Graduate Course in Applied Cryptography
Lattice Cryptography
The Design of Rijndael
Elliptic Curves Number Theory And Cryptography
Pairings for Beginners
Succint Proofs and Linear Algebra
Proofs, Arguments, and Zero-Knowledge

Table of Contents / Projects / Zk-EVM

Matter Labs zkEVM
Hermez zkEVM
Scroll and their
Appliedzkp: Circuits for zkEVM 817 5 months ago
ConsenSys zkEVM and their
TinyZKEVM 46 about 3 years ago
Sovereign Labs: zkEVM on Risc0

Table of Contents / Projects / Zk-VM

Delphinus zkWASM and their
zkMove: bytecode VM and their
zkRiscV: RV32I Risc-V instruction set 47 about 2 years ago
OlaVM: An Ethereum compatible ZKVM
Tritron VM 247 5 days ago
Risc0: a general purpose zkVM based on RISCV 1,681 5 days ago
Miden: STARK-based zero-knowledge virtual machine 631 6 days ago
Valida: A zkVM with an LLVM frontend 290 4 months ago
ZK System Benchmarking: compare the performance of different zero-knowledge proof libraries 128 about 1 year ago
ZK-Bench: Benchmarks for popular ZK frameworks, continuously updated
zk-Harness: a comprehensive benchmarking framework for zk SNARKs

Table of Contents / Projects / Zk-Layer1

Mir Protocol
Aleo: A SDK for Zero-Knowledge Transactions 593 2 days ago
Iron Fish: the universal privacy layer for crypto
Mina: a payment system using a succinct blockchain
Celo: EVM compatible proof-of-stake layer-1 and their
Zeeka Network: a light and scalable blockchain using ZKPs
quark: decentralized state machine with STARK proofs 56 over 2 years ago
Lelantus: transaction confidentiality and anonymity
Neptune: a new privacy layer-one blockchain
DarkFi: a new Layer 1 blockchain, designed with anonymity at the forefront
Espresso Systems: single-shot scaling & privacy solution

Table of Contents / Projects / Zk-Layer2

Aztec: Scalable Privacy on Ethereum
StarkNet: permissionless decentralized ZK-Rollup
Scroll: an EVM-equivalent zkRollup
zkSync: an EVM-compatible zkRollup
Polygon Zero: a layer 2 scaling solution for Ethereum
Polygon Miden: a STARK-based zkRollup
Taikocha: a zkEVM-based general-purpose zkRollup
Twilight: Layer 2 for Private Computation
Orbis: A Layer 2 ZK-Rollup Scaling Solution Built on Cardano
Radius: MEV-resistant ZK-Rollups with Practical VDE (PVDE)
ZEXE on Plasma: An implementation of ZEXE on Ethereum
Nightfall: Private Token Transaction on Ethereum

Table of Contents / Projects / Privacy Layer

Light Protocol: DeFi Privacy Infrastructure on Solana

Table of Contents / Projects / Transpiler

Starlight: Generate a zApp from a Solidity contract 188 29 days ago
Warp: transpile Ethereum smart contracts to Cairo 752 about 1 year ago
zkay: A Language for Private Smart Contracts on Ethereum 81 11 months ago

Table of Contents / Projects / Computing Infrastructure

=nil;'s zkLLVM: LLVM-based zero-knowledge proof systems compiler 295 about 1 month ago
CirC: Compiler Infrastructure for Cryptosystems and Verification 286 about 2 months ago
Trustless Labs: ZK-friendly Multi-rollup Architecture for Web3 Applications
SuccinctX: Infrastructure for zk-app development 134 7 months ago

Table of Contents / Projects / Framework / SDK

Adapt Framework: a toolkit for building end-to-end decentralized systems
Atlas Protocol: Zero-Knowlege Blockchain Development Platform

Table of Contents / Projects / Zk-Applications

Dark Forest: an MMO space-conquest game and their
Isaac: a physics-powered onchain reality on Starknet and their
Crypto Maze: action-packed MMO
Zordle: the first end-to-end web app built using Halo 2 ZK proofs 215 almost 2 years ago
zkSNARK-Sudoku: Sudoku verifier using zkSNARK and circom. 15 almost 2 years ago
Leela vs the World: the first zkAI game
Zcash: a privacy-protecting, digital currency
Monero: private, decentralized cryptocurrency
Manta: a Plug and Play Private DeFi Stack
SwapCT: Swap Confidential Transactions for Privacy-Preserving Multi-Token Exchanges
Zef: Low-latency, Scalable, Private Payments and their
Anoma: A protocol for private, asset-agnostic digital cash and their
ZETH: Integrating Zerocash on Ethereum 57 over 1 year ago
Intmax2: A ZK-rollup with Minimal Onchain Data and Computation Costs
CoinJoin: an open-source way to mix bitcoins
Tornado Cash: Introducing Private Transactions On Ethereum
Otter Cash: A privacy layer for the Solana ecosystem
Mobius: Trustless Tumbling for Transaction Privacy
TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub
Mixcoin: Anonymity for Bitcoin with accountable mixes
CashShuffle: background coin shuffling for Bitcoin Cash
MicroMix: A noncustodial Ethereum mixer 5 over 3 years ago
Juicer Protocol: trusted and secure 1 over 2 years ago
Privacy pools: Opt-in or Opt-out Anonymity Sets 280 about 1 year ago
zkKYC: A solution concept for KYC without knowing your customer
zkID.app: A Privacy-Preserving Passport to the Web 3.0 World
Notebook: a zero-knowledge B2B2C identity protocol
Iden3: future-proof tech stack for self-sovereign identity
Polygon ID: identity system with programmable privacy
Sealance: building financial compliance into digital currencies
Humanode: biologically verified human nodes for a fair financial system
OutDID: your zero-knowledge, decentralized KYC filter of blockchain users
IdentityBlockchain: state-certified electronic identities to establish blockchain identities
Worldcoin: Privacy-Preserving Proof-of-Personhood Protocol
ZeroBiometrics: Privacy Preserving and Data Protection Face Authentication
zCloak: Privacy-first DID and verifiable computation infrastructure
Everest ID: Your global everything account
Proof of Passport: Privacy Preserving Passport Proving 340 6 days ago
Argent: smart contract wallet based on zkSync
Numio: Layer 2 focused wallet built on zkSync
Zkopru: Affordable Ethereum Privacy Wallet
Bunkyr: zero‑knowledge security without seed phrases or backup codes
Wasabi Wallet: non-custodial, privacy-focused Bitcoin wallet
Particle Network: Zero Knowledge Wallet-as-a-Service, confidential social logins and transactions
=nil; Foundation's Solana and Mina to Ethereum zkBridge
Succinct Labs: the trust-minimized interoperability layer
Overeality: Infrastructure for Web3 Interoperability and their
ZkLink: cross chain amm swap protocol powered by ZK-Rollup 98 5 months ago
Mystiko Network: Anonymous Protocol for a Cross-Chain Network
Penumbra: a shielded, cross-chain network
Zecrey: Bringing Cross-chain Privacy to Digital Assets
Suez: move Eth to the Starknet ecosystem
ZKCross: a trustworthy cross-chain protocol built with multichain zkRollup
Electron Labs: ZK Light Clients for NEAR Rainbow Bridge
ZeroPool: a fully private multi-blockchain solution
Raze Network: Multichain Privacy Middleware
Zendoo: A zk-SNARK enabled verifiable cross-chain transfer protocol and their
DarkFi: applications and shielded cross-chain assets utilizing Halo 2
=nil; Foundation's Proof Market: a decentralized proof market protocol
Modulo Zero: on-chain solution for private data exchange and their
Ruby Protocol: Building a Cross-chain Cryptographic Infrastructure for Data Monetization
zkPoD: A decentralized system for data exchange 206 over 1 year ago
Ladder: KYC on-ramp solution implementing an oraclized peer-to-peer protocol
FirstBatch: create a representation of your identity from your social data
Interep: verify users' reputation without exposing their identities
=nil; `DROP DATABASE *: A database management system for blockchains enhanced by provable SQL
Filecoin: Zero Knowledge and the Filecoin Network
Nectar Protocol: Web3 infrastructure for healthcare and their
zk-SQL: ZK-based engine for self-sovereign SQL queries 84 over 2 years ago
Hyper Oracle: Programmable zkOracle network with zkIndexing and zkAutomation
Relic Protocol: the first provably secure source of historical data on chain
Axiom: generate proofs for various computations completed previously on chain
Checks and balances: Machine Learning and zero-knowledge proofs
zk-MNIST: web frontend app + Jupyter notebook with ML model generation 119 about 2 years ago and their
zkCNN: GKR-based zero-knowledge proof protocol for CNN model inference 70 over 1 year ago and their
Modulus Labs: bringing powerful ML models on-chain and their
ZKML: Bridging AI/ML and Web3 with Zero-Knowledge Proofs
zkonduit: inference for deep learning models and other computational graphs in a zk-snark 946 8 days ago
ZK Machine Learning: truly private machine learning, with zk-SNARKs and blockchain 213 over 2 years ago
Panther Protocol
Loopring Launches zkRollup Exchange
Railgun: brings privacy to cryptocurrencies
EdgeSwap: Ethereum-based layer 2 trading protocol
ZigZag: ZK Rollup order book DEX
Mute: a ZK-Rollup based AMM exchange
StealthDrop: Anonymous Airdrops using ZK proofs 350 9 months ago
ZKP Private Airdrop 755 over 1 year ago and their
zk-NftMint: Mint an NFT if you know a secret 48 over 1 year ago and their
Immutable X: the first layer-2 scaling solution for NFTs on Ethereum
Semaphore: a privacy gadget built on Ethereum
zkC.R.E.A.M: Confidential Reliable Ethereum Anonymous Mixer
Cabal: create credibly pseudonymous channels based on members' Ethereum activity
OVOTE: Offchain Voting with Onchain Trustless Execution and their
Scaffold-ETH: Prove Membership with Circom and Zero Knowledge 215 8 months ago
Vocdoni: A decentralized self sovereign governance platform and their
Waku: a suite of privacy-preserving, peer-to-peer messaging protocols
Zero Knowledge Message Board by nulven, yush_g 36 over 2 years ago and their
Double Blind: semi-anonymously sign messages for a group of people 17 over 2 years ago and their
zkDocs: information attestation and verification workflows 309 over 1 year ago

Table of Contents / Projects / Hardware Acceleration

Hardware for ZKPs & VDFs with Supranational and their
PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture
Ingonyama: building a ZK processing unit and their
ZKAccel: Accelerated ZKP as a Service
DZK: decentralized zero-knowledge proof platform
Cysic: Hardware Accelerating Zero-Knowledge Proof

Table of Contents / Projects / Trusted Execution Environment (TEE) Based Projects

Oasis Network
Secret Network
Obscuro
Phala

Table of Contents / Projects / Fully Homomorphic Encryption (FHE) Based Projects

Zama

Table of Contents / Programming Languages

https://github.com/starkware-libs/cairo-lang 1,346 5 days ago
https://cairo-lang.org/docs/
https://github.com/Zokrates/ZoKrates 1,828 4 months ago
https://zokrates.github.io
https://github.com/AleoHQ/leo 4,781 2 days ago
https://developer.aleo.org/developer/language/layout/
https://github.com/iden3/circom 1,339 11 days ago
https://docs.circom.io
https://github.com/noir-lang/noir 895 5 days ago
https://noir-lang.github.io/book/index.html
https://github.com/o1-labs/snarky 495 2 months ago
https://github.com/matter-labs/zinc 307 over 2 years ago
https://github.com/anoma/juvix 455 8 days ago
https://juvix.readthedocs.io/en/latest/index.html
https://github.com/brownie/cashlib 54 over 8 years ago
http://cs.brown.edu/research/brownie/usenix10.pdf
https://github.com/stellar/slingshot/tree/main/zkvm 415 over 3 years ago
https://github.com/stellar/slingshot/files/3164245/zkvm-whitepaper-2019-05-09.pdf 415 over 3 years ago
https://github.com/lurk-lang/lurk-rs 434 12 days ago
https://github.com/lurk-lang/lurk/blob/master/spec/v0-1.md 67 3 months ago

Table of Contents / Programming Languages / Language examples

zk-languages: A repo with basic example of most ZK languages 49 about 1 month ago

Table of Contents / Programming Libraries

https://github.com/scipr-lab/libsnark 1,838 9 months ago
https://github.com/dalek-cryptography/bulletproofs 1,049 4 months ago
https://github.com/zkcrypto/bellman 1,023 4 months ago
https://github.com/ConsenSys/gnark 1,435 8 days ago
https://github.com/arkworks-rs
https://github.com/iden3/circomlib 623 about 1 month ago
https://github.com/elibensasson/libSTARK 507 over 1 year ago
https://github.com/mir-protocol/plonky2 778 7 days ago
https://github.com/dusk-network/plonk 551 about 1 month ago
https://github.com/microsoft/Spartan 694 about 2 months ago
https://github.com/scipr-lab/dizk 234 over 2 years ago
https://github.com/iden3/wasmsnark 210 almost 2 years ago
https://github.com/EspressoSystems/jellyfish 406 7 days ago
https://github.com/scipr-lab/libiop 148 11 months ago
https://github.com/microsoft/Nova 714 29 days ago
https://github.com/Plonky3/Plonky3 476 5 days ago

Table of Contents / Tools / Plonk

plonkit: zkSNARK toolkit to work with circom DSL in PLONK proof system 158 almost 2 years ago
Plonk: A pure Rust PLONK implementation 294 about 1 year ago

Table of Contents / Tools / ECDSA

zk-ECDSA: zkSNARKs for ECDSA
Spartan ECDSA: Fast in-browser ECDSA verification 203 12 months ago

Table of Contents / Tools / Circuit Building Library

Circom: zkSnark circuit compiler 1,339 11 days ago
Arkworks: an ecosystem for developing with zkSNARKs
ZoKrates: a toolbox for zkSNARKs on Ethereum
Snarkjs: zkSNARK implementation in JavaScript & WASM 1,790 29 days ago
RCC: Rust Circuit Compiler
Chiquito: DSL for Halo2 circuits 188 19 days ago

Table of Contents / Tools / Formal Verification

The State of Current Progress
Ecne: an engine for verifying the soundness of R1CS constraints 108 over 2 years ago
Picus: Symbolic Virtual Machine for Automated R1CS Verification 70 9 months ago
Papyrus: A Symbolic Execution Tool for Cairo 49 about 2 years ago

Table of Contents / Tools / Other Tools

zkREPL: an in-browser collaborative development environment
crrl: Rust library for cryptographic research 134 6 months ago
Shield: a development framework for circom developers

Table of Contents / Auditing and Consulting

ABDK
Least Authority
ZK Security
Hashcloak
Taurus
Common Prefix
ZK Labs
Diligence
Trail of Bits
Kudelski Security

Table of Contents / Validator Services

ZK Validator

Table of Contents / Books

Proofs, Arguments, and Zero-Knowledge (Justin Thaler, 2022)
A Graduate Course in Applied Cryptography (Dan Boneh and Victor Shoup, 2020)

Table of Contents / Discussions

Why Dark Forest Matters: A Good Game, not a Crypto Game
Six Moonshot ZK Applications
A Socratic Dialogue to Come Up With a Secure ZK Message Board Architecture
The Strongest Crypto Gaming Thesis
Hardware Acceleration for Zero Knowledge Proofs
How do trusted setups work?
10 zkApps Use Cases on Mina Protocol
Programming Languages in ZKP

Table of Contents / Communities

Harmony zkDAO
ZK Hash Bounties
Zero Knowledge Forum
0xPARC: Program for Applied Research in Cryptography
ZPrize: accelerate zero-knowledge cryptography
zkMesh: a monthly newsletter
ZKHack Discord : Read, discuss, and implement ZK in Rust/Python (Fridays at 11:30ET)
ZKP Discussion Group Chat by Delendum : idea sharing, seeking advice/review/co-publish

Table of Contents / Advanced Topics / PLONK

Understanding PLONK
Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge

Table of Contents / Advanced Topics / Groth16

On the Size of Pairing-based Non-interactive Arguments

Table of Contents / Advanced Topics / Halo

Vitalik Buterin: Halo and more: exploring incremental verification and SNARKs without pairings Proof size reduction
Recursive Proof Composition without a Trusted Setup

Table of Contents / Advanced Topics / Probabilistic Proof Systems

Georgetown University COSC 544 Class Notes

Table of Contents / Advanced Topics / Pinocchio

Pinocchio: Nearly Practical Verifiable Computation

Table of Contents / Advanced Topics / Bulletproofs

Bulletproofs: Short Proofs for Confidential Transactions and More
Bulletproofs+: Shorter Proofs for Privacy-Enhanced Distributed Ledger

Table of Contents / Advanced Topics / Hash Functions

POSEIDON: A New Hash Function for Zero-Knowledge Proof Systems

Table of Contents / Advanced Topics / Systems

SNARKs for C: Verifying Program Executions Succinctly and in Zero Knowledge

Table of Contents / Advanced Topics / Quadratic Span Programs

Quadratic Span Programs and Succinct NIZKs without PCPs

Table of Contents / Advanced Topics / Zether

Zether: Towards Privacy in a Smart Contract World

Table of Contents / Advanced Topics / Anonymous Zether

MANY-OUT-OF-MANY PROOFS

Table of Contents / Advanced Topics / Quisquis

Quisquis: A New Design for Anonymous Cryptocurrencies

Table of Contents / Advanced Topics / Zk-VM

ZKVM book
Introduction to zkEVM

Table of Contents / Advanced Topics / Elliptic Curve

2-chains of elliptic curves
A survey of elliptic curves for proof systems
ECFFT: Fast Polynomial Algorithms over all Finite Fields

Table of Contents / Advanced Topics / Slush: Fractal Scaling

Slush, a proposal for Fractal scaling

Table of Contents / Advanced Topics / DIZK: Distributed ZKP

DIZK: A Distributed Zero Knowledge Proof System

Table of Contents / Advanced Topics / Network Privacy

Dandelion: Redesigning the Bitcoin Network for Anonymity
A Flexible Network Approach to Privacy of Blockchain Transactions

Backlinks from these awesome lists:

More related projects: