Skip to content

Latest commit

 

History

History
89 lines (65 loc) · 1.85 KB

README.md

File metadata and controls

89 lines (65 loc) · 1.85 KB

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