sbtc-developer-release icon indicating copy to clipboard operation
sbtc-developer-release copied to clipboard

sBTC Research - Create Deposit Procedure Diagram

Open AshtonStephens opened this issue 1 year ago • 1 comments

Description

We need to create a deposit procedure diagrams to put in place of Figure 1 of the original sBTC SIP PR.

Context

During the SIP planning process we've identified a few key changes that we intend to make for the original deposit flow. The primary difference are:

  1. OP_RETURN will be supported but not the primary deposit protocol
  2. OP_DROPs will be collated into a single OP_RETURN along with any other UTXOs to the peg wallet such that at the end of every Bitcoin block there is only a single UTXO to the peg wallet.
  3. A user using OP_DROP will provide the revealer data via a Revealer API in the happy path, and "challenge" or "force" the transaction to be noticed by signers via a call to the .sbtc contract.

All research discussions: research All design discussions: design

Most relevant:

  • https://github.com/stacks-network/sbtc/discussions/345
  • https://github.com/stacks-network/sbtc/discussions/314
  • https://github.com/stacks-network/sbtc/discussions/343

Expected Approach

Create one or more protocol flow diagram like the others in the SIP that will show the full flow of OP_DROP and OP_RETURN and include that in the SIP. It is expected that these are iterated upon within this ticket.

  • [ ] Read relevant sBTC research discussions
  • [ ] Discuss areas of ambiguity
  • [ ] Create protocol diagram/s
  • Iterate

Artifacts / Acceptance Criteria

  • [ ] There are N protocol design diagrams that handle all variations of the 3 steps in the context description.
  • [ ] Those diagrams have been confirmed by Jude and others.
  • [ ] Those protocol design diagrams are linked to and included in the sBTC SIP in the initial sBTC SIP PR: https://github.com/stacksgov/sips/pull/156

AshtonStephens avatar Nov 02 '23 16:11 AshtonStephens

I think the steps are going to look like this for Commit-Reveal (largely unchanged compared to https://github.com/stacks-network/sbtc/discussions/345#discussioncomment-7452311):

image

And in the case of a Challenge, we'll have the following:

image

In both cases, the curve arithmetic is done by the Stacks Node and not in the Clarity contract

FriendsFerdinand avatar Nov 02 '23 22:11 FriendsFerdinand