Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: registration of phase 1 stake #417

Draft
wants to merge 19 commits into
base: main
Choose a base branch
from
Draft

Conversation

samricotta
Copy link
Contributor

No description provided.

docs/run-node.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
1. Create `MsgCreateBTCDelegation` with the inclusion proof filled as defined
above and submit `MsgCreateBTCDelegation` to the Babylon network's btcstaking
module. If all verifications pass, your delegation becomes active on the Babylon
chain immediately since you've already proven your BTC is locked on Bitcoin.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not the case, they need to wait for covenants to submit their signatures.

docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
docs/register-create-stake-phase-2.md Outdated Show resolved Hide resolved
This specific message registers a BTC delegation with the Babylon chain along
with all of the necessary data required to create/register a stake.

#### 3.2.1. Protobuf definition
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to have subsections here as we have only one.

docs/register-create-stake-phase-2.md Show resolved Hide resolved
In the **Bitcoin-first flow**, the staker locks their BTC on the Bitcoin blockchain
first before interacting with Babylon. This flow is particularly suited for
stakers who already have their stakes on Bitcoin, such as those who have
participated in Babylon's Phase-1 and would like to transition their stake
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
participated in Babylon's Phase-1 and would like to transition their stake
participated in Babylon's Phase-1 and would like to register their stake

docs/register-create-stake-phase-2.md Show resolved Hide resolved
docs/register-create-stake-phase-2.md Show resolved Hide resolved
The signature for the `slashing_tx`, which is crucial for authorizing the
transaction in the event of a protocol violation, such as double-signing.
The signature, generated with the private key for the staker's secp256k1
public key (`btc_pk`), should be compatible with ECDSA or Schnorr (BIP340).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It needs to be a Schnorr (BIP340) signature only.

The timelock period for unbonding, measured in Bitcoin blocks, indicating
how long funds remain locked. It should be an unsigned integer (uint32) and
ensure that any `unbonding_time` you choose is more than that specified
by the `min_unbonding_time_blocks` parameter in the genesis file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not in the genesis file but in the Babylon parameters. Do you think that it makes to have a 3.2. Babylon chain BTC Staking parameters section which explains the parameters of the x/btcstaking module, what they mean, and how they can be retrieved? As a lot of this data relates to the Babylon parameters.

staker to unlock their funds by obtaining necessary signatures and broadcasting
the transaction to the Bitcoin network.
Details on what constitutes a valid unbonding transaction can be found
[here](./staking-script.md#unbonding-transaction). Once confirmed, the staker
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Once confirmed" is not true. Once the unbonding timelock expires the user can withdraw

* Using our [TypeScript BTC staking library](https://github.com/babylonlabs-io/btc-staking-ts)
* Implementing the transaction generation themselves using the
[staking script specification](./staking-script.md) as a reference.
* `unbonding_value`:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand this parameter. I guess it refers to the unbonding fee, as I suppose that the staker can't set it to anything they want.

* `unbonding_slashing_tx`:
The unbonding slashing transaction in hex format. This transaction spends the
unbonding transaction in cases of protocol violations such as double-signing.
To genertate or obtain the slashing transaction, you can use the libraries
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should not that this is a schnorr signature in hex format, like with the delegator_slashing_sig.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants