Skip to content

mindaugasrukas/zkp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZKP PoC

Proof of concept implementation of ZKP protocol. Many implementation details are naive and don't represent production readiness.

ZKP protocol and other explanation: https://www.cs.umd.edu/~waa/414-F11/IntroToCrypto.pdf

Good explanation of Chaum-Pedersen Protocol https://crypto.stackexchange.com/questions/99262/chaum-pedersen-protocol

Development

Directory Layout

client - sample client application 
    app - client application
    cmd - CLI commands
    docker - docker configuration
    model - translate communication messages to internal business logic types
    
server - sample server application
    app - server application
    docker - docker configuration
    model - translate communication messages to internal business logic types

store - pluggable sample server storage

zkp - ZKP protocol
    algorithm - ZKP algorithms
    pedersen - Chaum-Pedersen Protocol
    proto - protobuf messages

Generate dependencies

$ make proto

Test

$ make test

Get the coverage

$ make coverage

Build OS native application

$ make server
$ make client

Build docker images

$ make server-image
$ make client-image

Run docker images

Run server with default setting

$ make server-run

Run client docker container and accessing server container:

$ docker run -it --rm "zkp-client:0.1" register -s host.docker.internal:8080 -u user-id -p 123
$ docker run -it --rm "zkp-client:0.1" login -s host.docker.internal:8080 -u user-id -p 123

Run server using docker-compose:

$ docker-compose -f server/docker/docker-compose.yml up

Todo

  • Command/event handler
  • AWS code deploy
  • Functional/integration tests
  • Todos
  • Review and cleanup ZKP protocol
  • Compute real ZKP values of P,G,H,Q

Releases

No releases published

Packages

No packages published