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

[Feature]: Reject many WSTS messages with incorrect bitcoin chain tips #1176

Open
1 task
djordon opened this issue Dec 20, 2024 · 0 comments
Open
1 task
Labels
breaking-protocol Breaking protocol changes sbtc signer binary The sBTC Bootstrap Signer. signer communication Communication across sBTC bootstrap signers.

Comments

@djordon
Copy link
Collaborator

djordon commented Dec 20, 2024

Feature - Reject many WSTS messages with incorrect bitcoin chain tips

1. Description

All sBTC messages include the block hash of the bitcoin chain tip. This information is very useful for preventing replay attacks. The signers currently use it when filtering messages from peers where we care about whether the message is from the coordinator or from a signer with the same bitcoin chain tip. We should probably reject all WSTS messages where the chain tip of the sending signer does not match our view of the bitcoin chain tip.

1.1 Context & Purpose

We already filter messages based off of who the sender is and who the coordinator is. A consequence of this is that if a new bitcoin block arrives in the middle of a signing round or DKG, the signers will usually ignore the messages from the old coordinator, leading to an unsuccessful signing round or failed DKG. I say usually because the new coordinator could be the old coordinator. But regardless, we should not finish our signing rounds because a new block may mean a reorg, affecting lots of stuff. Similarly, for DKG a signer should not accept messages from peers who have a different view of the bitcoin blockchain than they do.

2. Technical Details:

The messages that should be rejected are DkgBegin, DkgEndBegin, DkgPrivateBegin, NonceRequest, and SignatureShareRequest.

2.1 Acceptance Criteria:

  • We reject WSTS DkgBegin, DkgEndBegin, DkgPrivateBegin, NonceRequest, and SignatureShareRequest messages if the chain tip does not match our own.

3. Related Issues and Pull Requests (optional):

This was largely addressed in #578.

@djordon djordon added sbtc signer binary The sBTC Bootstrap Signer. signer communication Communication across sBTC bootstrap signers. breaking-protocol Breaking protocol changes labels Dec 20, 2024
@djordon djordon added this to the sBTC: Key rotation milestone Dec 20, 2024
@djordon djordon added this to sBTC Dec 20, 2024
@github-project-automation github-project-automation bot moved this to Needs Triage in sBTC Dec 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-protocol Breaking protocol changes sbtc signer binary The sBTC Bootstrap Signer. signer communication Communication across sBTC bootstrap signers.
Projects
Status: Needs Triage
Development

No branches or pull requests

1 participant