stacks-network / sbtc-docs

Documentation about sBTC
https://stacks-network.github.io/sbtc-docs/
MIT License
9 stars 8 forks source link

Add consensus-level support for commit-reveal #73

Open netrome opened 1 year ago

netrome commented 1 year ago

Context

The current design supports commit-reveal operations as an alternative method of constructing sBTC operations. To use commit-reveal, a user or application is dependent on a trusted entity to act as a revealer - which is the entity consuming the commit transaction and constructing the reveal transaction visible to the sBTC system (and anyone else observing the chain).

While anyone can act as a revealer, we anticipate that there will be low interest in community-provided revealers. Therefore, we'd like to add consensus-level support for commit-reveal, to ensure that sBTC comes with a solution for applications to leverage the commit-reveal protocol.

Definition of done

The sBTC consensus rules are updated to ensure there's always a reliable revealer available.

FriendsFerdinand commented 1 year ago

@netrome I would like to know what the added complexity for doing this would be.

netrome commented 1 year ago

The added complexity for supporting commit-reveal on a consensus level is pretty big. The main challenge is defining exactly how the revealer API should be integrated in the stacks nodes (or PoX contract) and integrate the reveal functionality with the signers. Beyond this, we need to figure out how to enforce revealing on a consensus level, which is somewhat tricky since any ignored commit output will just look like an arbitrary p2tr output.

FriendsFerdinand commented 1 year ago

So, for reference, RSK uses the first input in the peg-in transaction to generate the address on RSK that will receive the rBTC.

For sBTC, I was thinking of having a Stacks smart contract that stores the P2TR outputs that have the sBTC format. The Stacks contract call required to store this information can be done by anyone. Then, when it's time to rotate the wallet, signers can claim this UTXO with all the other peg-in UTXOs

netrome commented 1 year ago

Yeah using smart contract calls for submitting reveal data makes sense. I don't see any other way to later enforce it at a consensus level.

netrome commented 1 year ago

@MarvinJanssen is looking into commit-reveal from a Clarity perspective right now. Hopefully we can figure out a good initial design, document it and include it in the sBTC DR 0.2 targeting end of October - depending on the complexity of the resulting design.

stale[bot] commented 6 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.