-
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
Epic: Demo for Signature generation - Participant CLI #239
Labels
Comments
9 tasks
6 tasks
Hey team! Please add your planning poker estimate with Zenhub @conradoplg @dconnolly @natalieesk |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Motivation
We want to simulate a simple execution of FROST to show potential FROST implementers how to use the FROST library.
Scope
Build a simple CLI to simulate signing participant actions in a 2-round FROST signature generation protocol.
Round 1
Round 2
This will be done after the Coordinator CLI demo (should we split this into it's own epic?)
Specification
Set up
On startup, CLI should prompt for:
i
PK_i
, as well as the public keys for each of the other participants,PKn
, which were generated during the Key Generation Demo (Epic: Demo for Trusted Dealer key share generation #238)PK
generated during the Key Generation Demo (Epic: Demo for Trusted Dealer key share generation #238)sk_i
, generated during the Key Generation Demo (Epic: Demo for Trusted Dealer key share generation #238)Round 1
During Round 1, each instance of the participant CLI will generate:
(hiding_nonce, binding_nonce)
, and(hiding_nonce_commitment, binding_nonce_commitment)
by running
commit
on its secret key shares_i
.The pair of nonces and commitments should be stored by each Participant CLI instance, with the commitments output to the terminal so they can be aggregated by the person running the demo, acting as a coordinator, during Round 1 of the FROST signing protocol.
For the purposes of this demo we may also want to output the nonces to the terminal and should note that these should remain secret.
Round 2
During Round 2, the participant CLI will prompt for:
msg
, andcommitment_list
, which would have been generated by all other running instances of the participant CLIs during round 1.The CLI will then validate the inputs, by running
DeserializeElement
oncommitment_list
and by checking that its own identifier,i
, and commitments,hiding_nonce_commitment_i
andbinding_nonce_commitment_i
, are in thecommitment_list
which was input.Next the Participant CLI will generate its signature share, by running
sign
with:i
,sk_i
, generated during the Key Generation Demo (Epic: Demo for Trusted Dealer key share generation #238)PK
,nonce_i
, generated and stored in Round 1msg
, andcommitment_list
, aggregated by the coordinator running the demo,to output a signature share,
sig_share_i
to the terminal.The CLI will then exit, deleting any stored values (
nonce_i
andcommitment_i
.)The text was updated successfully, but these errors were encountered: