-
Notifications
You must be signed in to change notification settings - Fork 1
Simon/passive robust ecdsa #15
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
Conversation
Co-authored-by: Bowen Wang <bowenwang1996@users.noreply.github.com>
e5790a6
to
8d1fc35
Compare
8d1fc35
to
c6b1ed1
Compare
Check that me is in participant list of presign and sign
c6b1ed1
to
a4cb954
Compare
a4cb954
to
3bcc578
Compare
3bcc578
to
f58abe6
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 massive PR implements the Robust ECDSA scheme with passive security and restructures the codebase with major architectural changes. The changes include implementing a new robust ECDSA algorithm, unifying type systems, isolating crypto functions, and generalizing testing infrastructure.
- Implementation of Robust ECDSA scheme with passive security alongside existing OT-based ECDSA
- Removal of the CSCurve trait in favor of unified Frost library types (Secp256K1Sha256)
- Reorganization of crypto functions into dedicated modules with cleaner separation
Reviewed Changes
Copilot reviewed 54 out of 67 changed files in this pull request and generated 6 comments.
Show a summary per file
File | Description |
---|---|
src/serde.rs | Complete removal of custom serialization utilities |
src/protocol/mod.rs | Updated imports and added new error types for robust ECDSA |
src/protocol/internal.rs | Inlined encoding functions and updated deserialization calls |
src/participants.rs | Unified lagrange coefficient calculation and improved method signatures |
src/lib.rs | Stripped library documentation and removed legacy module exports |
src/generic_dkg.rs | Major refactoring to use Frost types and new polynomial/commitment system |
src/ecdsa/robust_ecdsa/* | New implementation of passive robust ECDSA scheme |
src/ecdsa/ot_based_ecdsa/* | Refactored OT-based ECDSA to use unified types |
Comments suppressed due to low confidence (1)
src/generic_dkg.rs:362
- [nitpick] Variable name 'all_full_commitments' is inconsistent with the previous 'all_commitments'. Consider using a more descriptive name that clearly indicates this contains commitments with proper threshold size.
let mut all_full_commitments = ParticipantMap::new(&participants);
Return type should be &[Participant] instead of &Vec to provide a more flexible API that doesn't expose the underlying container type.
0102933
to
f788f81
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.
Partial review, but already a few things that should be addressed. Please add the license, fix the panic in Polynomial::eval_on_zero
and add unit tests for the polynomial module.
…s adversaries from sending serialized empty polynomials
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.
This is a partial review, trying to get acquainted with the code.
README.md
Outdated
This repository offers a cryptographic implementation of **threshold ECDSA** and **threshold EdDSA**. The implementation has undergone professional <ins>audit</ins> and supports arbitrary numbers | ||
of signing parties and thresholds. | ||
|
||
The former implementation is imported from the [Cait-Sith](https://github.com/cronokirby/cait-sith) library and amended to meet our industrial needs. This includes modifying parts of the code to improve the performance, augment the security, and generalize functions' syntax. |
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.
This is a nit and a follow-up, but it would be nice to have a more specific tldr of the changes.
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.
Agree! how about we push this to when closing #5?
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.
Have to leave this review now as I'm out until August 13. Due to the size and complexity of this PR, I expect the remaining reviewing work to be a major effort. I wish you all the best in uncovering the best way forward for this PR.
…f and derefmut traits to prevent exposing the coefficients and popping elements from the polynomial
…nally to the polynomials
This massive PR includes:
The review might go smoother if it is isolated into reviewing one algorithm at a time (EdDSA folder, OT-based ECDSA (old cait-sith), and the robust-ecdsa)