• Stars
    star
    5,253
  • Rank 7,871 (Top 0.2 %)
  • Language
  • License
    Other
  • Created about 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated list of awesome things related to learning Zero-Knowledge Proofs (ZKP).

Awesome zero knowledge proofs (zkp)

Awesome A curated list of awesome things related to learning zero knowledge proofs

Contents

General introduction

Zero-Knowledge Proofs Starter Pack: alternative introductory list for beginners (more videos).

ZK whiteboard sessions by ZK Hack:

A Hands-On Tutorial for Zero-Knowledge Proofs by Shir Peled (StarkWare):

Zero-Knowledge Proofs for Engineers (Dark Forest)

More complete curated list of implementations and scientific resources: https://zkp.science

Courses

Use cases

Applications

Ethereum

Other blockchains

Non-blockchain

Comparison of the most popular zkp systems

SNARKs STARKs Bulletproofs
Algorithmic complexity: prover O(N * log(N)) O(N * poly-log(N)) O(N * log(N))
Algorithmic complexity: verifier ~O(1) O(poly-log(N)) O(N)
Communication complexity (proof size) ~O(1) O(poly-log(N)) O(log(N))
- size estimate for 1 TX Tx: 200 bytes, Key: 50 MB 45 kB 1.5 kb
- size estimate for 10.000 TX Tx: 200 bytes, Key: 500 GB 135 kb 2.5 kb
Ethereum/EVM verification gas cost ~600k (Groth16) ~2.5M (estimate, no impl.) N/A
Trusted setup required? YES πŸ˜’ NO πŸ˜„ NO πŸ˜„
Post-quantum secure NO πŸ˜’ YES πŸ˜„ NO πŸ˜’
Crypto assumptions DLP + secure bilinear pairing πŸ˜’ Collision resistant hashes πŸ˜„ Discrete log 😏

Bulletproofs

Try

Proof system implementations

Halo

SNARKs

SNARK = Succinct Non-interactive ARguments of Knowledge

Learn

Get started:

Why and How zk-SNARK Works:

ZkStudyClub:

Electric Coin blog series:

Vitalik Buterin's blog series on SNARKs:

Protocol descriptions:

Try

Scaling the prover

Multi-Party Ceremony (MPC) for Trusted Setup

SNORKs

SNORK = Succinct Non-interactive Oecumenical (Universal) aRguments of Knowledge

SNORKs are SNARKs with universal and updateable trusted setup.

Sonic

PLONK

(This is a recent development. Contributions are welcome!)

Marlin

(This is a recent development. Contributions are welcome!)

STARKS

STARK = Succinct (Scalable) Transparent ARguments of Knowledge

STARKs are SNARKs without Trusted Setup.

Learn

Get started:

FRI-STARKs

Introduction:

Vitalik Buterin's blog series on STARKs:

Academic resources:

More resources available at starkware.co

SuperSonic

(This is a recent development. Contributions are welcome!)

Fractal

(This is a recent development. Contributions are welcome!)

Social media

Stay tuned!

More Repositories

1

zksync

zkSync: trustless scaling and privacy engine for Ethereum
Rust
4,883
star
2

zksync-era

zkSync era
Rust
3,084
star
3

zksync-web-era-docs

zkSync Era Documentation
JavaScript
982
star
4

zksync-lite-docs

zkSync Lite documentation
Shell
773
star
5

zksync-wallet-vue

zkSync Lite web wallet
Vue
517
star
6

era-contracts

Smart Contract Submodule For zkSync Era
Solidity
481
star
7

l2-intro-pre-ethdenver

Introduction to layer two and zkSync
TypeScript
355
star
8

era-test-node

In-memory node that can be used for integration testing and debugging.
Rust
308
star
9

zinc

The Zinc language public repository
Rust
308
star
10

era-boojum

Boojum, the scariest SNARK implementation.
Rust
302
star
11

foundry-zksync

Fork of Foundry tailored for zkSync environment
Rust
295
star
12

hardhat-zksync

TypeScript
281
star
13

era-sync_vm

Circuit Implementation of zkVM for zkSync Era
Rust
278
star
14

era-system-contracts

Implementation of the system contracts
Solidity
201
star
15

zksync-cli

CLI tool that simplifies ZKsync development
TypeScript
163
star
16

era-tutorial-examples

[DEPRECATED ]Full examples for tutorials in the zkSync Era documentation. Visit: https://github.com/matter-labs/tutorials
TypeScript
129
star
17

zksync-dapp-checkout

zkCheckout β€” trustable permissionless DeFi payment gateway. Fast & cheap transfers / simple & quick withdrawal
Vue
124
star
18

block-explorer

zkSync Era Block Explorer
TypeScript
123
star
19

franklin-crypto

Rust
115
star
20

paymaster-examples

Ready to use paymaster contracts for zkSync Era
TypeScript
110
star
21

era-zk_evm

Out-of-circuit zkEVM implementation
Rust
81
star
22

hodor

Open source implementation of zkSTARKs in pure Rust
Rust
79
star
23

era-bellman-cuda

A library implementing GPU-accelerated cryptographic functionality for the zkSync prover
Cuda
71
star
24

eip1962

EIP1962 implementation effort
Rust
65
star
25

local-setup

zkSync 2.0 setup for local development
Shell
64
star
26

v2-testnet-contracts

Solidity
63
star
27

era-compiler-solidity

Solidity compiler for ZKsync
Rust
62
star
28

zksync-hardhat-template

[DEPRECATED] Template project for zksync-hardhat
TypeScript
62
star
29

era-consensus

Consensus layer implementation for zkSync Era
Rust
62
star
30

era-zkevm_circuits

Rust
59
star
31

era-zkevm_test_harness

Compare in-circuit and out-of-circuit VMs
Rust
59
star
32

zksolc-bin

Releases of the Solidity compiler for ZKsync
55
star
33

zksync-withdrawal-finalizer

zkSync 2.0 Withdrawal Finalizer
Rust
54
star
34

zk_os

OS for next iteration of the world computer
Rust
45
star
35

tutorials

TypeScript
43
star
36

rescue-poseidon

Rescue and Poseidon hash function implementations
Rust
42
star
37

zksync-link

PayNow - Create payment links, get paid in tokens
Svelte
41
star
38

curve-zinc

The Curve Stableswap smart contract implementation in Zinc v0.2.2.
Rust
40
star
39

solidity_plonk_verifier

Solidity verifier for Plonk
Solidity
38
star
40

era-zkevm_opcode_defs

Definitions of zkEVM opcodes (primary dependency for all other repos)
Rust
38
star
41

recursive_aggregation_circuit

Kate commitment based PLONK recursive aggregation circuit
Solidity
38
star
42

era-compiler-vyper

Vyper compiler for ZKsync
Rust
37
star
43

zksync-contract-templates

Contract Templates for zkSync: solidity, hardhat, vyper
TypeScript
32
star
44

era-compiler-llvm

ZKsync fork of the LLVM framework.
C++
31
star
45

schnorr-musig

Simple Schnorr Multi-Signatures
Rust
28
star
46

custom-aa-tutorial

A full example for the tutorial on custom AA
Solidity
28
star
47

zkSync-account-abstraction-template

28
star
48

era-shivini

A library implementing GPU-accelerated zkSync prover.
Rust
27
star
49

zkvyper-bin

Releases of the Vyper compiler for ZKsync
27
star
50

cross-chain-tutorial

TypeScript
27
star
51

hackathon-winner-projects

A list of all the projects submitted in all zksync hackathons.
25
star
52

era-boojum-cuda

A library implementing GPU-accelerated cryptographic functionality for the zkSync prover.
Rust
25
star
53

era-heavy-ops-service

Specialized GPU Prover for zkSync Era
Rust
24
star
54

vm2

High performance EraVM for zkSync.
Rust
22
star
55

compiler-solidity

The zkEVM Solidity compiler.
Rust
22
star
56

era-boojum-validator-cli

Rust
21
star
57

risc_v_simulator

Rust
20
star
58

custom-paymaster-tutorial

Full example for the custom paymaster tutorial in the documentation
TypeScript
20
star
59

zksync-web-landing

zkSync.io landing page
CSS
20
star
60

era-zkevm_tester

Adapter between zk_evm and era-compiler-tester
Rust
19
star
61

era-compiler-llvm-context

Shared front-end code of the ZKsync compilers
Rust
19
star
62

z-prize-msm-gpu

Submission for https://www.zprize.io/prizes/accelerating-msm-operations-on-gpu-fpga
Cuda
19
star
63

era-compiler-tests

Collection of tests for ZKsync compilers
Solidity
17
star
64

era-compiler-tester

Integration testing framework for ZKsync compilers
Rust
17
star
65

z-prize-msm-gpu-combined

Combined solution from Matter Labs and Yrrid based on their respective submissions for the Z-Prize category Accelerating MSM Operations on GPU/FPGA
Cuda
15
star
66

eravm-spec

Coq
15
star
67

zksync-crypto

Cryptography libraries for ZKsync
Rust
14
star
68

teepot

Key Value store in a TEE with Remote Attestation for Authentication
Rust
13
star
69

era-compiler-llvm-builder

ZKsync LLVM framework builder
Rust
12
star
70

compiler-llvm

The zkEVM fork of the LLVM framework
12
star
71

zksync-packages-info

Information about the different packages and SDKs by MatterLabs to interact with zkSync Era
Vue
12
star
72

.github

zkSync Frontend Team workflow configuration
12
star
73

era-solidity

ZKsync fork of the original Solidity compiler
C++
12
star
74

era-hardhat-with-plugins

A zkSync Hardhat project configured with multiple plugins to improve the developer experience
TypeScript
11
star
75

era-revm

revm (Rust Ethereum VM) translation for Era / zkEVM
Rust
11
star
76

zksync-frontend-templates

Frontend Templates for ZKsync: vue, react, next, wagmi
TypeScript
10
star
77

ETHLisbon-2022-hackathon

Information about MatterLabs bounty program for ETH Lisbon 2022 hackathon
TypeScript
10
star
78

era-zkEVM-assembly

The zkEVM assembly tools
Rust
10
star
79

aa-signature-checker

TypeScript
9
star
80

era-zk_evm_abstractions

Rust
9
star
81

zksync-v2-issues

Report issues encountered when using the zkSync 2.0 testnet.
9
star
82

vault-auth-tee

Hashicorp Vault plugin for authenticating Trusted Execution Environments (TEE) like SGX enclaves
Go
9
star
83

proof_system_info_v1.0

Information about proof system used in zkSync v1.0
8
star
84

zksync-hardhat-ft-template

Template for a fungible token project on zkSync Era
TypeScript
8
star
85

vise

Tools to define and export metrics in Rust libraries and apps
Rust
8
star
86

l2-intro-ethdenver

Introduction to layer 2 protocols and smart contract examples on zkSync for ETH Denver
Vue
8
star
87

nixsgx

Reproducible Nix packages for TEEs
Nix
8
star
88

eip1962_specs

Specification documents for EIP1962
7
star
89

compiler-infra

Docker images with build tools for compiler repos.
Dockerfile
7
star
90

era-compiler-common

Shared constants of the ZKSync compilers
Rust
7
star
91

demo-circuit

Rust
7
star
92

zkcli-block-explorer

zkSync Block Explorer module for zkcli
TypeScript
7
star
93

zksync-hardhat-vyper-template

[DEPRECATED] Template project for zksync-cli. Includes a Vyper smart contract, tests and script to deploy to zkSync Era
TypeScript
7
star
94

compiler-tests

The compiler tests collection
Solidity
6
star
95

ansible-en-role

Ansible role for zkSync Era External Node
Jinja
6
star
96

zksync-dapp-forced-exit

CSS
6
star
97

simple-oracle-benchmarking

Deploy a simplified oracle, track gas usage.
TypeScript
6
star
98

zksync-crypto-gpu

GPU-acceselerated cryptography libraries for ZKsync
Rust
6
star
99

zksync-docs

Developer documentation site for zkSync community.
Vue
5
star
100

hyperchain-da

Common clients and contracts for DA solutions for zkSync hyperchains.
Rust
5
star