# Zero knowledge proofs

RISC Zero looks neat. Zero Knowledge on Ramp & Proofs, Arguments, and Zero-Knowledge are nice intros.

Noir is nice DSL. Fusion zkRollup is interesting.

## Notes

## Links

- ZKP in WebAssembly
- Bulletproofs - Short Proofs for Confidential Transactions and More.
- Pure-Rust implementation of Bulletproofs using Ristretto
- Awesome zero knowledge proofs
- Arithmetic Circuits - Low-level representation of a program that consists of gates computing arithmetic operations of addition and multiplication, with wires connecting the gates.
- Visualizing Efficient Merkle Trees for Zero-Knowledge Proofs (2020)
- ZKP - Practical zero knowledge proof system that provides small and computationally efficient zero-knowledge proofs of arbitrary computations.
- Zero-knowledge attestation (2019)
- genSTARK - Library for generating zk-STARKs.
- Zero-Knowledge: a tutorial by Oded Goldreich
- Zinc framework - Goal of Zinc is to make writing safe zero-knowledge programs and ZKP-based smart contracts easy.
- A Field Guide to zkSNARKs (2020)
- Circom - Language designed to write arithmetic circuits that can be used in zero knowledge proofs.
- Zero-Knowledge Proofs for Engineers: Introduction (2020)
- Why and How zk-Snark Works (2019) (HN)
- SCIPR Lab - Succinct Computational Integrity and Privacy Research. (GitHub)
- gnark - Fast, open-source library for zero-knowledge proof protocols written in Go.
- Reverie: An optimized zero-knowledge proof system (2020)
- Tau Prolog - Prolog interpreter in JavaScript. (Code)
- Zero Knowledge Paillier - Collection of Paillier cryptosystem zero knowledge proofs written in Rust.
- rapidsnark - zkSnark proof generation.
- An approximate introduction to how zk-SNARKs are possible (2021)
- OpenZKP - Pure Rust implementations of Zero-Knowledge Proof systems.
- zkp - Experimental zero-knowledge proof compiler in Rust macros. (Fork)
- Zero Knowledge Proof - Numberphile (2021)
- Serving up zero-knowledge proofs (2021)
- Leo - Functional, statically-typed programming language built for writing private applications.
- Aleo - Where Applications Become Zero-Knowledge. (GitHub) (Twitter)
- Noir - Domain specific language for zero knowledge proofs. (Docs) (Tweet) (Awesome) (Book) (Book Code)
- snarkOS - Decentralized Operating System for Zero-Knowledge Applications.
- snarkVM - Virtual Machine for Zero-Knowledge Executions.
- Aleo SDK - Software Development Kit (SDK) for Zero-Knowledge Transactions.
- wasmsnark - Fast zkSnark proof generator written in native Web Assembly.
- Zero-Knowledge Proofs (HN)
- Zk-SNARKs, FreeTON and OCamlPro
- Zero-Knowledge Middleboxes (2021) (Code) (HN)
- How do modern zero-knowledge proofs, and PLONK specifically, work? (videos) (2021)
- Zero-Knowledge Proofs for Private Web Attestation with Multi-Vendor Hardware (2021) (HN)
- snarkyJS - TypeScript/JavaScript framework for writing zk-SNARKs and snapps.
- circom - zkSnark circuit compiler.
- zkSNARKs Library - Library of zkSNARKS circuits written in the Circom language.
- arkworks::std - Standard library wrapper for use in the
`arkworks`

ecosystem. - Proof Systems - Contains various zk-SNARK protocol implementations for recursive SNARK composition.
- Polygon Miden - Zero-knowledge virtual machine written in Rust.
- Plonky - Recursive SNARKs based on Plonk and Halo.
- Plonky2 - SNARK implementation based on techniques from PLONK and FRI.
- Mir Protocol - Open-source platform that allows anyone to run private and scalable decentralized applications / ZKP-powered. (Twitter)
- snarkjs - ZkSNARK implementation in JavaScript & WASM.
- Learning zero knowledge proof technologies in public
- PLONK - Pure Rust PLONK implementation using arkworks as a backend.
- Understanding Zero-knowledge proofs through illustrated examples (2019) (HN)
- libsnark - C++ library for zkSNARK proofs.
- arkworks-gadgets - Zero-knowledge gadgets for blockchain applications.
- CirC - Compiling high-level languages for SMT, zero-knowledge proofs, and more.
- Gemini - Elastic proof system based on arkworks.
- Zero knowledge proofs using the Bulletproofs implementation from dalek-cryptography
- ZKDocs - Comprehensive, detailed, and interactive documentation on zero-knowledge proof systems and related primitives. (Code)
- zkUtil - Tool to work with zkSNARK circuits generated by Circom compiler.
- Interactive zero knowledge 3-colorability demonstration (HN)
- WordLines - Zero-knowledge proof-based blockchain puzzle game. (HN)
- AirScript - Scripting language for defining zk-STARKs.
- zkInterface - Protocol for the interoperability of zero-knowledge frameworks.
- Short-lived zero-knowledge proofs and signatures (2022) (Tweet)
- Introduction to Zero Knowledge Proofs
- Curve ecGFp5 - Elliptic curve defined over a field.
- RISC Zero - Zero-knowledge verifiable general computing platform based on zk-STARKs and the RISC-V microarchitecture.
- Awesome Zero Knowledge
- Arbibot RPS - On chain rock paper scissors game using zero knowledge proofs for hiding plays.
- zkSNARKS tutorial: practical beginner's guide to creating, proving, and verifying zkSNARKs in your contracts
- Jellyfish cryptographic library - Rust Implementation of the PLONK ZKP System and Extensions.
- Security of ZKP projects: same but different (Slides)
- Zero Knowledge Summit Amsterdam 2022
- Curated list of ZK resources and links
- Zk app boilerplate - Build your zkp app with typescript, hardhat, circom, and snarkjs.
- Zero Knowledge Proof using Hamiltonian Cycles (2016)
- Zero Knowledge Proofs of Knowledge (2016)
- zkPairing - Proof-of-concept implementations of elliptic curve pairings (in particular, the optimal Ate pairing and Tate pairing) for the BLS12-381 curve in circom.
- What are Zero Knowledge Proofs (ZKPs), and how are they changing blockchain forever?
- boo-hoo - Library for Non-Interactive Zero-Knowledge Proofs of Knowledge (NIZKPoKs) for boolean circuits.
- zkGames - Platform that allows users to play zk (zero knowledge) games and mint an NFT as proof that they have won.
- Exploring Zero Knowledge: StarkWare (2022)
- Implementing Zero Knowledge Lottery’s Circom circuits (2022)
- Zero Knowledge Lottery (2022)
- zk-Crush - Tell your crush you like them with zero-knowledge. (Code)
- nuid.zk - Cross-platform zero knowledge proofs.
- Setup Ceremony for Universal SNARKs
- ZK Basics Cheat sheet
- sppark - Zero-knowledge template library.
- Zerokit - Set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.
- Cairo Bulletproofs - Zero knowledge proof system which allow for short inner product, range, shuffle, and arithmetic circuit proofs.
- RISC Zero Rust Starter - Minimal starting project for zero-knowledge software development.
- Vamp-IR - Proof-system-agnostic language for writing arithmetic circuits.
- zkMove Lite - Lightweight zero-knowledge proof friendly Move language virtual machine.
- zkEVM Prover in C++
- VERI-ZEXE - Decentralized Private Computation with Universal Setup.
- Ecne - Engine for verifying the soundness of R1CS constraints.
- zkREPL - Online playground for zero knowledge circuits. (Code)
- cloud-ZK - Toolkit for developing ZKP acceleration in the cloud.
- Triton VM - Virtual machine that comes with Algebraic Execution Tables (AET) and Arithmetic Intermediate Representations (AIR) for use in combination with a STARK proof system.
- Circomspect - Static analyzer and linter for the Circom zero-knowledge DSL.
- Merlin - STROBE-based transcript construction for zero-knowledge proofs.
- Magikitten - System for making public-coin protocols non-interactive, using Meow.
- ZK Bug Tracker - Community-maintained collection of bugs, vulnerabilities, and exploits in apps using ZK crypto.
- Zilch - Framework for Developing Zero-Knowledge Proofs for Any Application.
- Using ZK Proofs to Fight Disinformation (2022)
- Zero-Knowledge starter
- The hunting of the (zk-) SNARK (2022)
- zkWasm
- ZK-kit - Monorepo of reusable JS libraries for zero-knowledge technologies.
- ZKP (circuit) compiler shootout - Evaluating & benchmarking ZKP compilation strategies.
- zkcreds-rs - Cryptographic library for designing anonymous credential systems in a flexible, issuer-agnostic, and efficient manner using general-purpose zero-knowledge proofs.
- zkAuth - 2FA with Zero-Knowledge proofs.
- How to prove you know a secret without giving it away (2022) (HN)
- OpenZL - Zero-Knowledge Cryptography Infrastructure Stack.
- What's the deal with zkapps? (2022)
- Linear A - Makes it possible to run neural networks in zero-knowledge settings. (GitHub)
- Noname - Programming language to write zkapps.
- Intro to Zero-knowledge & Building zkApps w/Mina Protocol (2022)
- miniSTARK - GPU accelerated STARK prover and verifier.
- RISC Zero - General-Purpose Verifiable Computing.
- Zero Knowledge on Ramp
- Cairo - Fast compiler for Cairo, written in Rust.
- xJsnark - High-level framework for developing efficient zk-SNARK circuits.
- Sandstorm - Cairo prover powered by miniSTARK.
- eigen-zkvm - zkVM on hybrid proof system, allowing the developers to write Zero-knowledge applications.
- ZK Hunt - Onchain game which explores different ZK game mechanics and information asymmetry.
- zkOS - Cross-proof-system execution layer.
- VMtropy - ZK snark-based VM running Aleo Instructions.
- Proofs, Arguments, and Zero-Knowledge (2022)
- zk-starter - Zero knowledge for those with zero knowledge.
- Verifiable AES: encryption using zero-knowledge proofs (2023) (Lobsters)
- Decentralized private computation: ZEXE and VERI-ZEXE (2023)
- Arithmetization schemes for ZK-SNARKs (2023)
- Nova Scotia - Middleware to compile Circom circuits to Nova prover.
- poseidon - Built to be used in SNARK and non native recursion friendly transcript for appliedzkp/halo2.
- zkLLVM Circuit Compiler - Zero-Knowledge Proof Systems Circuit Compiler.
- Hyperplonk - Linear-time FFT-free SNARK proof system.
- Zator - Proving the execution of arbitrarily deep neural networks with recursive SNARKs.
- Snarky Sudoku - Zero-knowledge Sudoku using zk-SNARKs.
- Tornado Cats - Book for learning zero-knowledge applications and decentralized mixing through the creation of a simple mixer protocol based on Tornado Cash.
- Zero Knowledge Message Board
- Spartan-ecdsa - Fastest open-source method to verify ECDSA (secp256k1) signatures in zero-knowledge.
- LambdaWorks - Library for kids who want to learn how to do SNARKs and learn other cryptographic stuff too.
- Kakarot - Kakarot ZK-EVM in Cairo 1.0.
- ark-groth16 - Rust implementation of the Groth16 zkSNARK.
- Introduction to zero-knowledge machine learning (ZKML) (2023)
- Awesome ZKML
- Fusion zkRollup - Progressive and fast zkRollup written in Rust, focused on performance, modularity, and applying cutting-edge Verifiable Computation proof systems.
- Awesome PLONK
- Sovereign SDK - Toolkit for building zk-rollups.
- Halo2 Scaffolding - Basic scaffolding for setting up and writing a Halo2 ZK circuit.
- Valida - zkVM with an LLVM frontend.
- OmniZK - Compiler Framework for Zero-Knowledge VMs.
- zkml - Framework for constructing proofs of ML model execution in ZK-SNARKs.
- Awesome Folding - Curated list of zero-knowledge folding schemes.
- Lambdaworks Cairo Prover
- powdr - Modular stack for zkVMs, with a focus on productivity, security and performance.
- bellpepper - SNARK Circuit library.
- Spartan2 - High-speed zero-knowledge SNARKs.
- Lasso - Lookup Arguments via Sum-check and Sparse polynomial commitments, including for Oversized tables.