Skip to content
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

DKG trustless key sharding #152

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from
Draft

DKG trustless key sharding #152

wants to merge 7 commits into from

Conversation

agouin
Copy link
Member

@agouin agouin commented May 18, 2023

Create horcrux key shards without a trusted dealer by performing distributed key generation (DKG) ceremony with participating cosigners.

No changes required to horcrux framework! The resulting DKG shards are shamir secret shards that are fully compatible with existing horcrux.

Two options for DKG ceremony: Online (via libp2p) or offline.

Online DKG

  • Cosigners discuss to determine who is going to be which shardID 1..N, and what threshold will be.
  • Cosigners share their P2P address and RSA public key to create config.yaml and rsaPubs in rsa_keys.json which will be shared by all cosigners.
  • Cosigners all launch DKG process with horcrux dkg --chain-id $CHAIN_ID --id $COSIGNER_ID
  • Cosigners wait to be connected to all others
  • Once all cosigners connected, the 3 round DKG message sharing process occurs over libp2p pubsub (no secret material is shared)
  • Once all cosigners have gossiped that they are complete, cosigners will write their own key shard to disk.
  • Cosigners populate their chainNodes in their own config
  • Cosigners are ready to validate on the chain

Offline DKG

TBD

Task list:

  • DKG tests to create an ed25519 public key without sharing secret material
  • Network process to perform DKG ceremony with participating cosigners via libp2p
  • Offline mode DKG
  • DKG guides in docs

Resolves #78

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Multiparty Trustless DKG Multisig Infrastructure
1 participant