[Feature]: Use the bitcoin block height as the DKG ID #1177
Labels
breaking-protocol
Breaking protocol changes
key rotation
The functionality to rotate a private key for a signer in sBTC-v1.
sbtc signer binary
The sBTC Bootstrap Signer.
signer communication
Communication across sBTC bootstrap signers.
Milestone
Feature - Use the bitcoin block height as the DKG ID
1. Description
The DKG ID (the distributed key generation "identifier") is a number used in WSTS to prevent replay attacks during each DKG round. The signers already used signed messages that include the bitcoin chain tip as part of the signed message, but we should take the additional step of using the bitcoin block height as the DKG ID to make replay attacks even harder.
1.1 Context & Purpose
We currently do not support running DKG more than once, but when we do, the most straightforward thing to do is fix the DKG ID to zero for each DKG round. Doing so is probably not problematic, since we use signed messages and we include the bitcoin block hash as part of the message that is signed. The issue is that we do not always reject messages where the block hash is not the canonical one. will help by making it more difficult to do any replay type attacks. We already require that
DkgBegin
messages originate from the current coordinator, we just need to make sure that the chain tip is canonical and grab the block height of the current chain tip.2. Technical Details:
We should return the chain tip height as part of the
MsgChainTipReport
and use that height when creating a newSignerStateMachine
whenever the signers receive aDkgBegin
message from the coordinator.2.1 Acceptance Criteria:
3. Related Issues and Pull Requests (optional):
The text was updated successfully, but these errors were encountered: