Code Monkey home page Code Monkey logo

understanding-zkp's Introduction

Zero-Knowledge Proof Learning Resources (a learning path)

Zero-knowledge proof (ZKP) probably is currently the hottest topic in the cryptography world. The idea of proving that something is true without revealing any information apart from the fact that this specific statement is true is one of the most beautiful things that cryptography could do.

Although the ZKP concept was introduced a long time ago by MIT researchers Shafi Goldwasser, Silvio Micali, and Charles Rackoff, it was just getting more attention to practical applications recently and yields a huge potential in Web3.

From my experience, I found that it is hard to understand zero-knowledge through academic papers. If you want, I think the most comprehensive explanation trying to illustrate this concept was probably written by Matthew Green in his blog and and YouTube video by Avi Wigderson:

After getting a sense of what is zero-knowledge proof, you then can go to very good video lectures that summarize the development of zero-knowledge proof schemes:

That is probably enough to get started with ZKP from theory. Recently, when you heard about Zero-Knowledge systems on BLockchain or Web3, that is more about applied ZKP. Thanks to some ZK languages such as circom, halo2, noir, etc., your task to implement a ZP program is much easier.

Circom and Halo2 are probably the most popular ZK languages. Their documentation is in the following links:

Personally, I found that the Rareskills book is great source. It explained and demonstrated by Python step-by-step how to a practical Zero-Knowledge Proof system work. You can find code in the subfolder Python.

understanding-zkp's People

Contributors

dple avatar

Stargazers

Daogang Tang avatar

Watchers

 avatar  avatar

Forkers

ff781

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.