-
Notifications
You must be signed in to change notification settings - Fork 25
Taurus CMP (ECDSA) #106
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: dev
Are you sure you want to change the base?
Taurus CMP (ECDSA) #106
Conversation
… improve subscription logic
pkg/event/keygen.go
Outdated
| WalletID string `json:"wallet_id"` | ||
| ECDSAPubKey []byte `json:"ecdsa_pub_key"` | ||
| EDDSAPubKey []byte `json:"eddsa_pub_key"` | ||
| CGGMP21PubKey []byte `json:"cggmp21_pub_key"` |
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.
is cggmp21_pub_key ecdsa or eddsa?
I think in keygen, sign event payload. We pass algorithm: Enum : gg18/20 | cggmp21 | ...
In the result event, we use ECDSAPubKey, EDDSAPubKey onl
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.
type MPCAlgorithm string
const (
// Threshold ECDSA family (GG18/GG20)
MPCAlgorithmGG MPCAlgorithm = "gg18/20"
// Advanced threshold ECDSA (modern successors)
MPCAlgorithmCGGMP21 MPCAlgorithm = "cggmp21"
// Threshold Schnorr family
MPCAlgorithmFROST MPCAlgorithm = "frost"
MPCAlgorithmTaproot MPCAlgorithm = "taproot"
)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.
currently all three cggmp21, frost, and taproot only support ECDSA
pkg/eventconsumer/event_consumer.go
Outdated
| ec.handleKeygenSessionError(walletID, err, "Failed to create EdDSA key generation session", natMsg) | ||
| return | ||
| } | ||
| cggmp21Session, err := ec.node.CreateTaurusSession(walletID, ec.mpcThreshold, types.KeyTypeCGGMP21, taurus.ActKeygen) |
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.
Should we call it CreateCGGMP21Session to be more generic
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 one’s a factory that sets up sessions for all protocols (CGGMP21, FROST, Taproot). Keeping it generic makes sign/presign creation cleaner and the code easier to read.
| type TaurusMessage struct { | ||
| SID string | ||
| From string | ||
| To []string | ||
| IsBroadcast bool | ||
| Data []byte | ||
| Signature []byte |
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.
Not sure if this Taurus Message is necessary, can we use existing events in initiator_msg.go
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.
yeah this one’s like a generic TssMessage wrapper for protocol transport, not the same as the initiator events
|
The pull request lacking pratical examples for cggmp21 + taproot + frost signing. May need to add more examples in |
… remove wallets.json
…g with new data structures
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|

PR Summary
Implement all Taurus protocols (CMP, FROST, Taproot) and add Presign support for CMP (CGGMP21).
Presign for CMP (CGGMP21)
Presignbefore signing a transaction.