stacks-network / sbtc

Repo containing sbtc
GNU General Public License v3.0
250 stars 5 forks source link

[Feature]: Submit `rotate-keys-wrapper` transactions after DKG #653

Open djordon opened 1 week ago

djordon commented 1 week ago

Feature - Submit rotate-keys-wrapper transactions after DKG

1. Description

After an initial round of distributed key generation (DKG), the signers will be able to function just fine (well, after https://github.com/stacks-network/sbtc/issues/652 gets done). The problem is that no one will be able to deposit into the system without the signers informing the world about their latest aggregate key for use on bitcoin. The mechanism to inform the world about the aggregate key is the rotate-keys contract call. After a successful rotate-keys contract call, the aggregate key will be part of the contract state for anyone to read. So we should always submit a rotate-keys transaction after running DKG.

1.1 Context & Purpose

In order to make a deposit into sBTC, the depositor needs to know the current aggregate key of the signers. And in order for anyone to know the aggregate key, the signers need to tell them. The only way to do that right now is for them to broadcast that information as part of a rotate-keys contract call.

2. Technical Details:

This ticket is just for the construction and submission of a rotate-keys contract call. They exact criteria for running validation on such a contract call will be left for another ticket.

2.1 Acceptance Criteria:

3. Related Issues and Pull Requests (optional):

This should follow up after https://github.com/stacks-network/sbtc/issues/590 gets done.

aldur commented 21 hours ago

@djordon please reword this so that it does not include validation since that will be taken care of in #663.