Zero Knowledge Research
- date: 2023-02-04
- last updated: 2023-02-04
Overview
Here we do a deep dive on Zero Knowledge
- Approach
- Emerging Use Cases
- Proof Systems
- Efficient Signatures
- Proof Aggregation
- Tokenomics
Learning Material
Foundational
- An Introduction to Mathematical Cryptography
- Introduction to Applied Linear Algebra
- Calculus I - Differentiation and Integration
- An Introduction to Mathematical Cryptography: the mathematics behind the theory of public key cryptosystems and digital signature schemes.
- Cryptography Algorithms
- Number Theory
- zkSNARKs in a nutshell
- Quadratic Arithmetic Programs: from Zero to Hero
- Exploring Elliptic Curve Pairings
- Zk-SNARKs: Under the Hood
- The MoonMath Manual to zk-SNARKs
- Elliptic Curve Cryptography: a gentle introduction
- Exploring Elliptic Curve Pairings
- KZG polynomial commitments
- plookup: A simplified polynomial protocol for lookup tables.
- Casting out Primes: a nondeterministic method for bignum arithmetic. It is inspired by the “casting out nines” technique, where some identity is checked modulo 9, providing a probabilistic result.
Zero Knowledge
Research Articles
- Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities. Light clients, also known as Simple Payment Verification (SPV) clients, are nodes which only download a small portion of the data in a blockchain, and use indirect means to verify that a given chain is valid. * Research Papers (Zero Knowledge Related)
- zkBridge: Trustless Cross-chain Bridges Made Practical
- Caulk: Lookup Arguments in Sublinear Time: position-hiding linkability for vector commitment schemes: one can prove in zero knowledge that one or m values that comprise commitment cm all belong to the vector of size N committed to in C.
- HyperPlonk: Plonk with Linear-Time Prover and High-Degree Custom Gates
- SLONK—a simple universal SNARK: a simplification to PLONK called SLONK. We replace the permutation argument (the “P” in PLONK) in favour of a shift argument (the “S” in SLONK). We get a universal SNARK with the smallest known proof size and verification time.
- Kate commitments from the Lagrange basis without FFTs: how to commit, evaluate and open polynomials in the Lagrange basis without FFTs. This is the first part in a series (see part 1, part 2, part 3) showing how to do PLONK-style universal SNARKs without FFTs
- Hadamard checks from the Lagrange basis without FFTs: how to prove Hadamard relations between polynomials in the Lagrange basis without FFTs. This is the second part (see part 1, part 2, part 3) in a series showing how to do PLONK-style universal SNARKs without FFTs.
- PLONK-style SNARKs without FFTs: how to do PLONK-style universal SNARKs without FFTs. This is part 3 in a series (part 1, part 2, part 3).
- An efficient verifiable state for zk-EVM and beyondfrom the Anemoi hash function
- Plonky2: Fast Recursive Arguments with PLONK and FRI
articles and learning resources
- Bridging the Multichain Universe with Zero Knowledge Proofs
- awesome-zkml
- https://learn.0xparc.org/: ZK Learning Resources
- Delendum ZKP Knowledge base
- https://appliedzkp.org: Privacy and Scaling Exploration
- https://zkp.science/: Zero-Knowledge Proofs
- https://starkware.co/stark-101/: Stark 101: write a STARK prover from scratch
- https://docs.starkware.co/starkex/index.html: - Starkware StarkeEx
- Noir Noir is a Domain Specific Language for developing ZK-provable programs. (Rust based)
- Arkworks
- zkrepl.dev
- succinct
- ZK BATCH ECDSA
- Batch ECDSA Verification
- Bringing IBC to Ethereum using ZK-Snarks
- MINA docs
implementation articles
- zkPoS: End-to-End Trustless: HyperOracle article on how zkPoS provides the ability of proving the consensus with ZK.
- Succinct Towards the endgame of blockchain interoperability with proof of consensus
Codebases
-
Circom a novel domain-specific language for defining arithmetic circuits that can be used to generate zero-knowledge proofs
-
DarkForest zkSNARK space warfare
-
- Team Blog
- Community plugins
- Community-run wiki
- Player-made content
-
halo2ecc-s: Re-implement an ecc circuits with halo2
-
plonky2: a SNARK implementation based on techniques from PLONK and FRI. It has since expanded to include tools such as Starky, a highly performant STARK implementation.
- plonky2-solidity-verifier
- plonky2-circom: Plonky2 verifier in Circom
- plonky2-ed25519: SNARK verification circuits of a digital signature scheme Ed25519 implemented with Plonky2.
- plonky2-sha256: SNARK circuits of a cryptographic hash function SHA-256 implemented with Plonky2.
- plonky2-sha512: SNARK circuits of a cryptographic hash function SHA-512 implemented with Plonky2.
- plonky2-pairing
Presentations
- Devcon VI
- Light Client After the Merge video
- What to Know about Zero Knowledge
- ZK Application ShowCase
- ZK Badges: How to prove that you donated to Gitcoin grants
- ZK Security Self Led Session
- zkEVM Vs EVM: Full Equivalence?
- ZK Application Design Patterns video
- Applied ZK SLS presentations