Zero Knowledge Proofs and ZK Programming in Blockchain Application Development.


Zero Knowledge Proofs and ZK Programming in Blockchain Application Development

Time:

  • Wednesday April 24, 2024 at 8AM Pacific to Noon

Recording:

Workshop Slides:


Description:

Zero knowledge proofs and SNARK systems are becoming one of the revolutionary technologies of the beginning of this century. In this workshop we will give a high-level introduction to the zero knowledge and SNARK technology stack rather from a software developer and IT professional perspectives with covering only slightly the deep mathematical basis. During the workshop we will implement an experimental zKRollup system in Circom on Hyperledger Besu or Fabric. We will make experimental integrations with Hyperledger Fabric and with Solidity as well, being compatible with Hyperledger Besu.

Workshop Leaders:

Andras Szabolcsi (https://www.linkedin.com/in/andras-szabolcsi/)

Blockchain and solution expert, co-founder at BlockBen and Natrix. Highly skilled and experienced System and Solution Architect in the financial software developing industries.

Daniel Szego (https://www.linkedin.com/in/daniel-szego/

DLT Architect

Agenda:

1. A conceptual introduction to zero knowledge proofs (50 min - presentation)

A gentle introduction to prover, verifier, interactive versus non-interactive models, SNARKs, zkSNARKs, computation models, arithmetic circuits, rank-1 constraints, DLS languages and accumulators.

2. Introduction to Circom programming (25 min - labs and Hands-on)

We will cover with lab exercises and hands-ons basic elements of the Circom programming language and the development flow including circuit and rank-1 constraint generation, compilation, power of tau, proving and verifying. 

3. Break + discussion (10 min)

4. zkRollups basics (25 min - presentation)

A general introduction to the conceptual elements of zero knowledge rollups. 

5. Implementing a simplified zkRollup for token transfer and integrating with Hyperledger Besu or Fabric (50 min - lab and demo)

During the demonstration and lab we will implement a prototype zero knowledge rollup for a simplified token transfer and integrate it with Hyperledger Besu or Fabric.

6. Conclusions and discussion (15 min + )

Preparation and Prerequisites:

Install Visual Studio Code

https://code.visualstudio.com/download 

Install Circom 

https://docs.circom.io/getting-started/installation/#installing-circom 

Install Fabric-samples

https://github.com/hyperledger/fabric-samples 

Make sure you can start the test network and create a channel as it is written in fabric-samples/test-network.

Make sure Remix Ethereum (browser application) runs, we will make the solidity demonstration only in remix, it is supposed to be however Hyperledger Besu compatible 

https://remix.ethereum.org/ 

Clone the workshop specific github repo, including workshop steps and slideshows

https://github.com/Daniel-Szego/Zeroknowledgeworkshop

Learning Resources

If you'd like to prepare for this workshop by learning more about zero knowledge proofs, we recommend these resources:

Workshop: Hyperledger AnonCreds: Using ZKP Verifiable Credentials Everywhere

ID SIG Meeting: Understanding Zero Knowledge Proofs with High School Math


Getting Involved

If you'd like to get involved with the Identity community, you are welcome to do so. Everything that Hyperledger projects are involved with are  open to anyone who is interested.  More details about connecting with  community members are below.

Hyperledger Discord

Hyperledger Identity SIG

OpenWallet Foundation Website

OpenWallet Foundation GitHub

OpenWallet Foundation Discord