Skip to content

advaita-saha/gRPC-chaum-pederson-zkp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gRPC client/server for zero-knowledge proof authentication

Chaum Pederson Zero-Knowledge Proof in Rust. Chaum Pederson is a zero-knowledge proof protocol that allows a prover to prove to a verifier that they know a discrete logarithm without revealing the discrete logarithm. This is useful for authentication, where the prover can prove to the verifier that they know a secret without revealing the secret.
In zero-knowledge proof authentication, the prover and verifier are both clients of a server. The server has a public key and a private key. The prover knows the private key and the verifier knows the public key. The prover wants to prove to the verifier that they know the private key without revealing the private key. The verifier wants to verify that the prover knows the private key without learning the private key.

Usage

You can run the program with Docker. First build the containers:

$ docker-compose build zkpserver

Run the container:

$ docker-compose run --rm zkpserver

In the remote terminal that appears run the server:

root@e84736012f9a:/zkp-server# cargo run --bin server --release

Open a new terminal on your machine and connect to the container:

$ docker container ls
CONTAINER ID   IMAGE                  COMMAND   CREATED          STATUS          PORTS     NAMES
e84736012f9a   zkp-course-zkpserver   "bash"    20 minutes ago   Up 20 minutes             zkp-course_zkpserver_run_b1f3fa2cd94a

$ docker exec -it e84736012f9a /bin/bash

Run the client:

root@e84736012f9a:/zkp-server# cargo run --bin client --release

About

gRPC client/server for zero-knowledge proof authentication Chaum Pederson Zero-Knowledge Proof in Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published