-
Couldn't load subscription status.
- Fork 300
feat(sdk-lib-mpc): Added EdDSA DKG multi-party schnorr Impl #7113
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
base: master
Are you sure you want to change the base?
Conversation
b400412 to
0a2b581
Compare
81eae25 to
8fbb6dd
Compare
d16e5d8 to
e0a37eb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request adds EdDSA multi-party Schnorr Distributed Key Generation (DKG) support to the BitGoJS SDK's sdk-lib-mpc module, enabling threshold key generation using Silence Laboratories' EdDSA WASM libraries.
Key changes:
- Introduces EdDSA DKG protocol implementation with support for 3-party, threshold-2 key generation
- Adds comprehensive utility functions for key share management and byte concatenation
- Includes extensive unit tests covering deterministic/random seeding, session management, and protocol execution
Reviewed Changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| modules/sdk-lib-mpc/src/tss/eddsa-mps/dkg.ts | Core DKG class implementing the EdDSA multi-party Schnorr protocol |
| modules/sdk-lib-mpc/src/tss/eddsa-mps/types.ts | Type definitions for EdDSA key shares and WASM module interfaces |
| modules/sdk-lib-mpc/src/tss/eddsa-mps/util.ts | Utility functions for byte concatenation and key share processing |
| modules/sdk-lib-mpc/src/tss/eddsa-mps/index.ts | Module exports for EdDSA MPS functionality |
| modules/sdk-lib-mpc/src/tss/index.ts | Added export for eddsa-mps module |
| modules/sdk-lib-mpc/package.json | Added dependencies for Silence Laboratories EdDSA WASM libraries |
| modules/sdk-lib-mpc/test/unit/tss/eddsa/dkg.ts | Comprehensive unit tests for DKG protocol execution |
| modules/sdk-lib-mpc/test/unit/tss/eddsa/eddsa-utils.ts | Unit tests for utility functions |
| modules/sdk-lib-mpc/test/unit/tss/eddsa/util.ts | Test utility for generating EdDSA DKG key shares |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
233cac7 to
c9440bb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work! You have a typo on eddsa-mps -> eddsa-mpc.
| /** DKG session has not been initialized */ | ||
| Uninitialized = 'Uninitialized', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when would it be in this state? is it needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the DKG class instance is created.
It was intentional MPS (multi party schnorr) |
097a52c to
5a5d62f
Compare
TICKET: WP-6122 - Add EdDSA DKG DKLS implementation with core types and utilities - Implement distributed key generation for EdDSA signatures
5a5d62f to
6dcecad
Compare
Description
This pull request adds
EdDSA multi-party schnorr Distributed Key Generation (DKG)support to the BitGoJS SDK, specifically within the sdk-lib-mpc module.It introduces new dependencies for
Silence Laboratories' EdDSA WASMlibraries, implements theEdDSA DKGprotocol for multi-party threshold key generation, and provides supporting types and utility functions.The PR also includes comprehensive
unit teststhat cover key share generation, deterministic and random seeding, and utility behaviors.Issue Number
TICKET: WP-6122
Type of change
How Has This Been Tested?
Checklist: