-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Demo for Distributed Key Generation (DKG) #252
Demo for Distributed Key Generation (DKG) #252
Comments
Prompts for the SecretPackage received from that participant? is not it Package broadcast from other participants? and that Package struct is not Printable? |
This is just meant as a toy/demo implementation as an example and is not intended to be used in a production setting |
Do we want to close this with ZcashFoundation/frost-zcash-demo#36 or split it into implementation and test issues and just close the implementation part? I'm good with either option |
I don't mind either way, I think it's simpler to keep this open, I will probably work on the tests soonish |
Motivation
We want to simulate a execution of FROST using DKG to show potential FROST implementers how to use the DKG.
Scope
Similar to #238, but using the DKG instead.
The DKG demo must be run for each signer, in parallel (e.g. one execution of the same binary in different terminals).
At the end of the execution, the program must print all the information required for signing and verifying (using #239 and ZcashFoundation/frost-zcash-demo#48)
Specification
On startup, it will prompt for:
MAX_PARTICIPANTS
)MIN_PARTICIPANTS
)It will the run
part1
of the DKG. Then:Package
(suggestion: in a single-line JSON to make it easy to copy&paste)SecretPackage
in memoryThe program keeps running, then prompts for:
SecretPackage
received from that participant. (Note that it could be easier to include the identifier inside the package itself. That would be a bad example, though, since the identifier must be deduced from the authenticated communication channel, which does not exist in the demo. We need to make it clearer to library users that the identifier should not be simply sent inside the channel since it could be spoofed.)It will run
part2
of the DKG. Then:Package
for each other participantSecretPackage
in memoryThe program keeps running, then prompts for:
SecretPackage
received from that participant.Finally, the program runs
part3
of the DKG using thePackage
s received in both round 1 and round 2 and the round 2 `SecretPackage. It then prints:The text was updated successfully, but these errors were encountered: