Skip to content

Introduction

Welcome! In this notebook we illustrate the 𝒫𝔩𝔬𝔫𝒦 zero-knowledge-proof protocol on a simple example that we will progressively make more complete. The goal is to understand the mathematical inner workings of the protocol, down to the level of cryptographic pairings and commitment schemes. The 𝒫𝔩𝔬𝔫𝒦 protocol has various phases each of which involves technical steps in order to achieve certain protocol subgoals.

There are a couple alternative ways you can use this tutorial:

  • You can download the Jupyter Notebook version and run it locally on a Sage kernel or on the cloud on Cocalc.
  • You can follow this page and implement the solutions locally in Sage or some other programming language. We aim at giving deterministic test cases to guide you.

Note: It is highly recommended you use Sage solve the exercises below in order to take advantage of its libraries, and of our implementation of the algebra needed for pairings over the bn254 curve.

If you have any feedback or comments do let us know at plonk@zksecurity.xyz.

𝒫𝔩𝔬𝔫𝒦 Tutorial by zkSecurity