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

feat(cli): implement frost_ed25519 threshold signing cli #1654

Open
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

noot
Copy link
Collaborator

@noot noot commented Oct 12, 2024

Summary

implement threshold signing cli using the frost_ed25519 library.

Background

can be used for turning sequencer accounts into multisigs without any changes to the sequencer itself.

Changes

  • implement dkg, sign, and verify commands
  • see README in module for info on usage

Testing

i ran it manually and verified the signature.

Related Issues

closes #833

struct PrepareMessage {
/// message to be signed
#[arg(long)]
message: String,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need something that is not a string for the message?

This message is generally going to be the transaction we are signing right? At some point it needs to become a protobuf serialized TransactionBody (formerly UnsignedTransaction)?

In the simplest form we could have a message which is just pbjson via a file read? Then we might want to add a way to generate txs without signing and output the pbjson form of them, but not that's more better ux, we could generate that ourselves relatively simply?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated this to take a file that contains the message bytes. I could add an option to deserialize the message as a TransactionBody and display that before signing?

This message is generally going to be the transaction we are signing right?

yes, I was thinking of updating the other CLI commands to have an option to output the TransactionBody into a file, which is then used as the input to this command.

I also updated aggregate to have an option to output the signed message as a Transaction (signed) that can then be submitted to the sequencer.

--signing-package-path signing_package.out
```

The output is an ed25510 signature, eg:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The output is an ed25510 signature, eg:
The output is an ed25519 signature, eg:

@noot noot marked this pull request as ready for review October 15, 2024 21:00
@noot noot requested review from a team as code owners October 15, 2024 21:00
@noot noot requested a review from SuperFluffy October 15, 2024 21:00
@noot noot requested a review from joroshiba October 17, 2024 20:55
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.

sequencer: investigate ed25519 threshold signing libraries for bridge accounts
2 participants