Frostsnap BTC++ Workshop

Distributed Key Generation & Threshold Signing Coordination
Instructions

  1. Download and build:
  2. Check out the commands available by running yushan --help
  3. Find one or more people to partner up with (N) and agree upon a threshold (T).
  4. Choose a unique room ID (enter below) which will be used to share messages.
  5. Run the first command (keygen-round1) and share your contribution with your group.
  6. After receiving input from all parties, use this data as input for the next round, e.g.
    yushan keygen-round2 --data '{PARTY1_JSON} {PARTY2_JSON} ...'
    
  7. Repeat the same with the following steps. Look at console output, ask questions.
  8. Finish creating your FROST key, sign things!
  9. 9. cry to nick if things are broken
Challenge: can you sign a nostr event?

Extremely Public Bulletin Board


Configuration Disconnected
⚠ Everyone must agree on the same threshold and n_parties values for the protocol to work!

Part I: Distributed Key Generation

Distributed Keygen Round 1: Commitments
0 / 0
Waiting for parties to post their commitments...
Group's Keygen Commitments
No data yet
Distributed Keygen Round 2: Keygen Shares
0 / 0
Waiting for parties to post their secret shares...
Group's Keygen Shares
No data yet
Finalize Keygen
After this step, you'll have your secret share of the group's public key!

Part II: Signing

Signing: Nonces
0 / 0
Waiting for signers to post nonces...
Session Nonces
No data yet
Signing: Signature Shares
0 / 0
Waiting for signers to post signature shares...
Session Signature Shares
No data yet

Signature Verifier

Verify Schnorr Signature