-
Notifications
You must be signed in to change notification settings - 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.
e0a37eb
to
5e2f1c3
Compare
TICKET: WP-6122 - Add EdDSA DKG DKLS implementation with core types and utilities - Implement distributed key generation for EdDSA signatures
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) |
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 WASM
libraries, implements theEdDSA DKG
protocol for multi-party threshold key generation, and provides supporting types and utility functions.The PR also includes comprehensive
unit tests
that 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: