You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Signer Wallet Rotation is a crucial security feature in the sBTC system that allows sBTC Signers to rotate their private keys securely.
3
+
Signer wallet rotation allows sBTC signers to update their private keys and modify the signer set composition. This mechanism is how the network maintains security over time and adapts to changing participants.
4
4
5
-
## Overview
5
+
## How it works
6
6
7
-
- sBTC Signers have the ability to rotate their private keys.
8
-
- This feature enhances the long-term security of the sBTC system.
9
-
- Key rotation is coordinated among signers and requires on-chain voting by the signers.
7
+
The sBTC system uses a multi-signature wallet on Bitcoin to custody BTC deposits. When the system needs to change who controls this wallet - either by rotating keys or changing the signer set - it uses the rotation mechanism.
10
8
11
-
## Process
9
+
As of v1.1.0, the system supports:
12
10
13
-
1. Signers coordinate offline to initiate the key rotation process.
14
-
2. Signers vote on-chain for the new signer set (new set of keys).
15
-
3. Once the new signer set is determined, signers conduct a wallet handoff.
16
-
4. The signers re-execute the Distributed Key Generation (DKG) process.
11
+
- Adding new signers to the set
12
+
- Removing existing signers
13
+
- Replacing specific signers
14
+
- Rotating keys for current signers
17
15
18
-
## Implementation
16
+
When signers agree on a new configuration, the system automatically runs a Distributed Key Generation (DKG) protocol to create new signing shares for the updated group. Once complete, control of the sBTC wallet transfers to the new configuration.
19
17
20
-
The Signer Wallet Rotation process is facilitated by:
18
+
## The rotation process
21
19
22
-
1.**Signer Key Rotation CLI**: Allows individual signers to initiate a private key rotation.
23
-
2.**Key Rotation Clarity Contracts**: Handle the on-chain aspects of the rotation process.
20
+
Here's what happens during a typical rotation:
24
21
25
-
## Security Considerations
22
+
1. Signers coordinate off-chain to decide on the new signer set
23
+
2. Each signer operator updates their configuration with the newly decided set
24
+
3. Once all signers have configured the exact same set of signers, DKG occurs automatically
25
+
4. The new signer set takes control of the sBTC wallet
26
26
27
-
- The rotation process must ensure that the sBTC UTxO remains secure throughout the transition.
28
-
- Proper coordination among signers is crucial to prevent any disruption in sBTC operations.
29
-
- The new keys must be thoroughly verified before being put into use.
27
+
The Bitcoin UTXOs remain under continuous control throughout this process - there's no moment where funds are unsecured.
30
28
31
-
## Benefits
29
+
## When rotation occurs
32
30
33
-
1.**Enhanced Security**: Regular key rotations reduce the risk of key compromise.
34
-
2.**Flexibility**: Allows for the replacement of compromised or lost keys.
35
-
3.**Continuity**: Enables long-term operation of the sBTC system with evolving security measures.
31
+
Key rotation typically happens when:
36
32
37
-
## Best Practices
33
+
**Signer changes**: When someone leaves the signer set or new participants join, the configuration must be updated to reflect the new membership.
38
34
39
-
- Signers should rotate their keys on a regular schedule (e.g., every 6 months).
40
-
- Emergency rotation procedures should be in place for suspected key compromises.
41
-
- The rotation process should be audited and tested regularly to ensure smooth execution when needed.
35
+
**Security events**: If a key might be compromised, an emergency rotation can be initiated to secure the system.
for a Docker Compose including all the required components.
174
164
165
+
{% hint style="warning" %}
166
+
167
+
When deploying with Docker, always use [immutable image tags](https://docs.docker.com/reference/cli/docker/image/pull/#pull-an-image-by-digest-immutable-identifier) - the image digests are provided below. Verify the attestation of these images using this [guide](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds#verifying-artifact-attestations-with-the-github-cli).
168
+
169
+
We publish our images on [GitHub Container Registry](https://github.com/stacks-sbtc/sbtc/pkgs/container/sbtc).
0 commit comments