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
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
$ make proto
$ make test
Get the coverage
$ make coverage
$ make server
$ make client
$ make server-image
$ make client-image
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
- Command/event handler
- AWS code deploy
- Functional/integration tests
- Todos
- Review and cleanup ZKP protocol
- Compute real ZKP values of P,G,H,Q