Giter VIP home page Giter VIP logo

awesome-zero-knowledge-proofs's Introduction

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:

OxPARC learning group:

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!

awesome-zero-knowledge-proofs's People

Contributors

0xmbl avatar 0xturboblitz avatar aaronh8613b avatar aspiers avatar barakshani avatar dcbuild3r avatar dimitry-krouthfev avatar edisinovcic avatar gluk64 avatar infohunter avatar jules avatar luckytokidoki avatar lukema95 avatar lukepark327 avatar luozhuzhang avatar marcuswin avatar martinkong1990 avatar maxim-levy avatar mgudemann avatar mikerah avatar naman1303 avatar nilock avatar p0n1 avatar sanket1729 avatar scaffino avatar skywinder avatar suhacker1 avatar trivo25 avatar vikpande avatar zksync-admin-bot2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-zero-knowledge-proofs's Issues

Question: Can zero knowledge proofs be used to verify the contents of a cipher text?

Hey,

Trying to get to grips with zero-knowledge proofs. They seem to be useful for verifying that a user knows a value but can they be used to verify the contents of a cipher text?

What I'm looking for ultimately is some function f which is able to inspect a cipher text and verify that it encrypts a particular plain text x.

Hash(x) = f(Encrypt(x))

More details about my question here

Sorry if this question is not welcome here. I have been struggling with this question for a while and if anybody might have a definitive answer, thought it might be an author of this repo.

Thanks

Outdated tutorial

This rollup tutorial is outdated the last update 3 years ago.

It is strongly recommended to review this tutorial and replace it.

I think the best tutorial is the rollup by Barry whiteHat, and the complete code for zksync v1, I think someone will be interested in doing a minimal implement.

Add Halo info

Hi, it would be great if you could add some information about the (very recent) Halo technique as well. Thanks!

Graphs and Visualisations

Hi,

I made a graph representation of how intermediate and proving systems are interconnected, it's not the best but it's a good starting point.

See: https://harryr.github.io/zklangs/ and https://github.com/HarryR/zklangs

It uses Graphviz to layout the graph.
Then it converts it to SVG. This lets you put links into the graph, using the href and target attributes.

See: https://github.com/HarryR/zklangs/blob/master/hll-graph.dot

I add the following attributes to a node in the .dot file to make it a link to an id reference on the same page.

, href="./#jsnark", target="_top"

Then I embed the generated .svg file into the markdown using:

<object width="100%" data="hll-graph.svg" type="image/svg+xml"></object>

Note, you have to use the <object... syntax, otherwise the links don't work.

It would be really awesome to have a graph style visualisation for some things on zkp.science, to show how they're interconnected. But it's also a pain to maintain the .dot file especially if you have multiple views of it (like, having a table of data, and a graph of some facet of the data)

license

maybe protect against liability?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.