Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Zero-Knowledge Proofs in Rust
Rating: 4.4 out of 5(116 ratings)
956 students

Zero-Knowledge Proofs in Rust

A practical approch
Created byGuido Giuntoli
Last updated 8/2023
English

What you'll learn

  • Understand how Zero-Knowledge Proofs can be used in practice to authenticate users on a server
  • How to develop with Rust a full backend service based on ZKP for authentication
  • To fully couple the system with the gRPC protocol allowing any user to communicate with it
  • To create containers of the application with Docker to deploy the code on the cloud or work in different environments

Course content

4 sections27 lectures5h 9m total length
  • Course Description4:44

    Explore the Petersen protocol as an interactive zero-knowledge proof for passwordless user authentication, implemented in Rust, with server challenges, gRPC communication, and dockerized deployment.

  • Introduction To Modular Arithmetics7:30

    Master the basics of modular arithmetic, including remainders, mod notation, handling negatives, and the cyclic behavior that underpins later group theory applications.

  • Modular Arithmetics Quiz
  • Groups13:33

    Learn about groups as sets with an operation, focusing on modular addition modulo five. Define closure, associativity, identity, inverse, and the abelian (commutative) case.

  • Generators9:49

    Explore generators in a finite cyclic group under modular multiplication modulo 11, using powers of 2 to generate all elements and distinguish non-generators like 3.

  • Discrete Logarithm Problem9:58
  • Chaum-Pedersen ZKP Protocol19:46
  • Chaum-Pedersen ZKP Protocol
  • Toy Example12:10
  • Importance of Good Random Numbers Generators

Requirements

  • You may need some basic math knowledge like algebraic operations. Most of the concepts are covered from the ground up during the course.
  • The installation and Rust programming is fully covered in the course. Some previous programming experience is highly recommended.

Description

This Zero-Knowledge Proof course in Rust is designed to learn how to implement a cryptography ZKP algorithm and use it in real-world applications for user registration and authentication.

The course is divided into four main parts:

  1. Theoretical Foundations: we will have a didactic introduction to the Chaum-Pedersen Protocol and understand how this interactive ZKP algorithm works with small toy examples. Additionally, we will cover what finite cyclic groups, generators and the discrete logarithm problem are.

  2. Rust Implementation: we will implement in Rust what we have seen in the theory section. Here I recommend you execute the code by yourself and also create a GitHub repo to have a showcase in your portfolio. This will help future employers to know what you are talking about!

  3. gRPC Server/Client: here, we use the previous Rust ZKP library we implemented to create a server that authenticates users through a gRPC protocol. This part is useful even if you are not interested in cryptography or ZKP protocols. Many companies and startups are interested in people with experience in gRPC.

  4. Dockerization: in the last part of the course, we will learn how to dockerize the application using Docker. This will enable us to run it on any Windows, Linux, or MacOS system.

Who this course is for:

  • For those eager to learn something unique and know how to implement ZKP cryptography algorithms
  • For those wanting to implement backend systems using Rust
  • For those who desire to have a practical use case of the gRPC protocol