A minimal proof of concept of a private sum protocol thta utilizes client clustering and configurable number of client shares.
- Start the server
iex -S mix phx.server
in a server terminal - Start the clients
bun run index.ts
in a clients terminal - Finish enrollment by running
PrivateSum.PrivateSum.end_enrollment()
in the server terminal - Press enter to make the clients request partners
- Press enter to make the clients exchange shares
- Read the
SUM
in the server terminal
The system can be in one of three states:
- Enrollment
- Exchange
- Finished
In the enrollment state participants can enroll into the protocol. On the edge to the exchange state, all participants are being devided into clusters.
In the exchange phase, participants exchange there share-parts. When they have received all there share parts, they are sending their partial sums to the server.
When all participants have send their partial sums to the server, the server moves to finished mode and the sum can be read.
The states are controlled from the REPL for ease.