src | ||
.gitignore | ||
Cargo.toml | ||
LICENSE | ||
README.md |
consensus
A peer-to-peer, cheating-proof multiplayer game
Algorithm
First, each player generates a private and public key, and shares their public key with everyone. When a player receives a public key, they share it with everyone too, to ensure that players send the same public key to everyone. This requires O(N^3) messages.
Next, each player chooses a number and signs it along with a timestamp and shares this signature with everyone. Again, when a player receives a signature, they should share it with everyone too. This ensures all players choose their number before seeing anyone else's choices. This also requires O(N^3) messages.
Once all signatures have been received, a player sends out their number and timestamp to everyone. Once again, when a player recieves a number and timestamp, they should share it with everyone.