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(bridge-withdrawer): support FROST threshold signing #1948

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

noot
Copy link
Collaborator

@noot noot commented Feb 5, 2025

Summary

support FROST ed25519 threshold signing in the bridge withdrawer.

Background

improves security of the withdrawer over having one private key used; instead, we can employ an m-of-n threshold signature scheme to sign withdrawals.

Changes

  • create FrostParticipantService gRPC proto definition, which is to be implemented by a binary which contains a FROST secret key partial that participates in the threshold signing process
  • update withdrawer config/setup to support single signer (previous behaviour) or threshold signing via the Signer trait
  • create FrostSigner which has gRPC clients for the signing participants
  • FrostSigner.sign() performs the signing process by calling each participant for their commitment (part 1) and signature share (part 2) and finally aggregates the shares to create a valid signature.
  • FrostSigner.sign() will fail if it does not receive responses from at least the minimum number of signers required. the min number of signers is determined during key generation, which is done completely separately.

Testing

todo: testing with signer node (perhaps mocks as well?)

Changelogs

Ensure all relevant changelog files are updated as necessary. See
keepachangelog for change
categories. Replace this text with e.g. "Changelogs updated." or "No updates
required." to acknowledge changelogs have been considered.

Related Issues

closes #1937

@github-actions github-actions bot added the proto pertaining to the Astria Protobuf spec label Feb 5, 2025
@github-actions github-actions bot added the cd label Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cd proto pertaining to the Astria Protobuf spec
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support threshold signing in bridge withdrawer
1 participant