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:
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.
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!
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.
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.