Skip to content

Commit

Permalink
Merge branch 'babylonlabs-io:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexRockX authored Aug 16, 2024
2 parents 8a4a096 + 98366a0 commit bc62159
Show file tree
Hide file tree
Showing 37 changed files with 348 additions and 0 deletions.
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Ankr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Ankr",
"identity": "",
"website": "www.ankr.com",
"security_contact": "[email protected]",
"details": "Build web3 apps with a full suite of developer tools. Power them with fast, global, decentralized connections to dozens of chains"
},
"eots_pk": "cc25813bdd6fb8a9c2e343536a917598eebc955e88418e57875dd593eaa05f3c",
"commission": "0.10"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Coinage_x_Daic.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Coinage x DAIC",
"identity": "C92C6965D89F07A3",
"website": "https://daic.capital",
"security_contact": "[email protected]",
"details": "The official validator node from Coinage (Coinage.Media) and DAIC (https://daic.capital/telegram)"
},
"eots_pk": "61d437bcff4512e45075b5c12fc9b0ececd3e7c87512e0d7fb599c3a28e2671c",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/EquinoxDAO.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "EquinoxDAO",
"identity": "048733E2C6061B87",
"website": "https://www.equinoxdao.xyz",
"security_contact": "[email protected]",
"details": "professional Node Service Provider by EquinoxDAO"
},
"eots_pk": "04439d165b72bac13c16a22744a55cb249615b23b769fc393188cd4eed33f189",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Figment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Figment",
"identity": "E5F274B870BDA01D",
"website": "https://figment.io",
"security_contact": "[email protected]",
"details": "Figment is the complete staking solution for over 500 institutional clients, providing enterprise validators, seamless staking integrations, audited infrastructure, robust rewards data, and more."
},
"eots_pk": "710104ee21393df7b209e7f1202b60425075160aea52b60a9bcb0e996771f069",
"commission": "0.1"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/InfStones.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "InfStones",
"identity": "E9B7CDC7623E0327",
"website": "https://infstones.com/",
"security_contact": "[email protected]",
"details": "InfStones is committed to supporting a wide range restaking initives."
},
"eots_pk": "911421ea9cd3107d81aef2a62bf04d7a3c57b7bc0462af668d0a332e5dd72fa8",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Jetking.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Jetking",
"identity": "",
"website": "https://www.jetking.com",
"security_contact": "[email protected]",
"details": "India’s largest IT Training Institute"
},
"eots_pk": "3742769a01da6c7c4537ad7a4e181392ab3fd1fe04c78c137937974e74b39044",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Meria.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Meria",
"identity": "9A516A1CD4116BBF",
"website": "https://meria.com",
"security_contact": "[email protected]",
"details": "Meria is an institutional-grade staking service provider running blockchain infrastructure on more than +35 networks."
},
"eots_pk": "a1f39ed29581fb6ad54be8cdf1a8838b3429e87bdfdd2652c47946221c360f10",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/PumpBTC.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "PumpBTC",
"identity": "CAAE6F147CA9D28E",
"website": "https://pumpbtc.xyz",
"security_contact": "[email protected]",
"details": "PumpBTC is a liquid staking protocol on Babylon to allow BTC HODLER to maximize yield."
},
"eots_pk": "0f5c19935a08f661a1c4dfeb5e51ce7f0cfcf4d2eeb405fe4c7d7bd668fc85e4",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/ROCKMINER.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "ROCKMINER",
"identity": "",
"website": "",
"security_contact": "[email protected]",
"details": "We with experienced technical staff, blockchain researchers and community operators."
},
"eots_pk": "155537b908560545398a4801960446ab289fde41503ef6362ce367c261f6d567",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Robsberry.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Robsberry",
"identity": "27054F5CE3F4B80A",
"website": "https://docs.robsberry.pics",
"security_contact": "[email protected]",
"details": "👉Independent Validator👈"
},
"eots_pk": "d5018f048b88f1492404a06fedefe3a88f83337dc6c2b1e418cfab330a6fbc89",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/Solv-Protocol.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Solv Protocol",
"identity": "8E9C1C1E9ADB6512",
"website": "https://app.solv.finance",
"security_contact": "[email protected]",
"details": "Pioneering A Decentralized Bitcoin Reserve with SolvBTC."
},
"eots_pk": "fa7496f63a857d894aa393767325bf6f84560e9141f4ec54496c50f546f48bfb",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/ikunkun.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "ikunkun",
"identity": "",
"website": "",
"security_contact": "[email protected]",
"details": "ikun a trainee who has been practicing for two and a half years"
},
"eots_pk": "3227cda2e47410814688bf66c5178703a97f888f2ea9e6c5bc5ff0bb457ab23a",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/liquify.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "Liquify",
"identity": "005F74E8F7365C38",
"website": "https://www.liquify.com/",
"security_contact": "[email protected]",
"details": "Liquify is a fully bare-metal infrastructure company. Optimized for latency, throughput and uptime. Tailored for institutions"
},
"eots_pk": "615e9392eda947e85d827f19290c4dc2a5986dca278be4f480820741aa0fb1da",
"commission": "0.04"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/miles.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "miles",
"identity": "",
"website": "https://x.com/Miles082510",
"security_contact": "[email protected]",
"details": "build babylon"
},
"eots_pk": "ed58af4d147f5b5834e70a950e439312459b49e8f0dc705c1671467611f1a805",
"commission": "0.05"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/okxearn.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "OKX Earn",
"identity": "5E40FD2A1FCF6FE1",
"website": "https://www.okx.com",
"security_contact": "[email protected]",
"details": "OKX Earn serves as a one-stop shop for all the decentralised earning options available on the OKX platform and we are the leading staking service provider for blockchain projects"
},
"eots_pk": "374601b4c400b31f3aa78dc16b4e4d589c1284118e2476d83f0c39743881032c",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/pSTAKE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "pSTAKE",
"identity": "CCD58C1559B694A8",
"website": "https://pstake.finance/",
"security_contact": "[email protected]",
"details": "pSTAKE Finance is a multichain liquid staking protocol, backed by Binance Labs."
},
"eots_pk": "fc8a5b9930c3383e94bd940890e93cfcf95b2571ad50df8063b7011f120b918a",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/silent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "silent",
"identity": "A47522A5527DB39F",
"website": "https://silentvalidator.com",
"security_contact": "[email protected]",
"details": "Silent Validator leverages robust infrastructure and deep expertise to provide highly reliable validation services, enriches the community and furthers the growth of the ecosystem."
},
"eots_pk": "c790b603199b5c06e9a2230c798130cdc5ea24f0ef8250383e483ac9ae57b397",
"commission": "0.03"
}
11 changes: 11 additions & 0 deletions bbn-1/finality-providers/registry/web3btc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"description": {
"moniker": "web3btc",
"identity": "",
"website": "https://static-hk.istillgo.com",
"security_contact": "[email protected]",
"details": "A Decentralized Password Manager"
},
"eots_pk": "2f2ad150b5a0c3616ff438d275750db107b961f9dd783658ac4f79dcbccff98c",
"commission": "0.10"
}
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Ankr.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a7c0dd848f2290ec645ca28120cc3fb66421812db0d9bf892dd65e7a393be1a71dbef6ecedcb6a552f88b7c293e37fd2557e7bc08de52bd11292b1b4ea9560dd
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Coinage_x_Daic.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3b76eaa91002cf83b241b6eef49de8fc63c15cb85ee2803750dd625b87c4fcc6ceeeedfb7b0461b7579ee10ebedb9f3be8aba62531d8f374dc2718845c7f6cd2
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/EquinoxDAO.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7ddd117605505291e182eaaa7db601881fcd12cb75e1c1a0065abdfbacfb88a6d164810b4b32d7640ed6a6ba1042961472644b36c67a14ae53554b15564cacda
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Figment.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
49f41290febedd20e2ce7c00efc43cfc8191fd64dae59fd5eaf5b4d97c4c31d7b7bb114bf6c1b9034334442f3ae10b8598bb67193eb04326a642b496b8c048e2
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/InfStones.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
274b52336a9109b8240fe466fa203b03381b11388a6f200087c8015716d7fe0bc8c038b257c5e78c648f221145cf5136e86f99366129a9267352432d63aae0bb
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Jetking.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6e4c2a0c3bb3c4693a97945e2a1ef78baa7c2e081605177e51868a10777f9dbbe116cddbe2972be132a9f11ff89174217a12052ce469c06e8dd3d7108b93c4d5
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Meria.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
77541d7cb4a98912a1d7f68b93f3e8566211fd3d709c9e952b938739a4d67fa7acc2075aa40653e1eadffebcf153f9cd8d717f20294f3e3fdb5e8f1e19f04801
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/PumpBTC.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1528c7bac85c25bd91b0387b6c659ac515089b27778437b0d5101a2e78b2b0568e6c8fa6ef2b2af028c8619fd73fb2ab463e407936815e7a7b9817cc64de76a2
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/ROCKMINER.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
65a50431bbdd5eb7a40b94cca2b95ceceee60b952be7aab0246aa531f8638c2dc16d893e9c4b4957039ec9af6899aa22cbd9db19ea2b3c08dc2f00cd2b0d4b30
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Robsberry.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3fc96a6594057ecb60eba118a50633cddd9e5416f3bd71636a8fbae811546c4d7e380bed1f7fa4d5b49dca30b0a0940ebf3b122b554d2f4d0bd6c058cccde341
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/Solv-Protocol.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5c86bc554b489e36cd171ff89362ed141e2a87cc5f40b9f8fc0c454fbe634d0856f0175f400ae0679c7cc31e46001299a7cd6c1405a202d2bbaae7c7d9d5f668
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/ikunkun.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
523d97280936168b00edfd1f968681b8751318d5867f6364368dd4bcbbd14fcc57653ddfae592319c2dfadc9a1fff98139557caadc304a787697d30dfde2b6fb
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/liquify.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
26b47aa5db2a9d1626b1632c245ce09bed7caa4b5c540142293deaf2af78c6c0a66efc602adfc2046ee7bd2f64f6cf6722b08f228e2094eaeda0e05c1f1ffbfd
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/miles.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6cf23db312765aa8a01fff53a4416bf1d4ec29360279077c2ce0215f58a8498b7b88177851fe8f95dbe5ee1d1a6f9129e14691dcbdfad403dbdaedf6375b9d9a
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/okxearn.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7df0a4d2c710fcc9733698cbce610ad749eb657a51c9989815e41454a22be826b0c9289c8ecad5ab2291408d95c17f216e9e4eea357d2036a184078b75d150be
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/pSTAKE.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
15185d0e57ded0006eeb4d3b0fcc5ac38acd266e7c01cec0f684ae4e9899089e5a8e6ebff0c66a2512d961486bbb09b843d8be5f73d591477e5af0ca5b23aefd
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/silent.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
59f99082be33560e8256850f6501e72b872ffe591b98773218936476a67c1a4059fd105b891d7ef3b6fd32bb374e1432143f03908c7d713e7d50daaf831b7c71
1 change: 1 addition & 0 deletions bbn-1/finality-providers/sigs/web3btc.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
b256ac3de838a8d27ab84d70d7cf4190b0e6ad553508c90b75bbe1a18588a7cfdddc36a902dfd3270e36a2d8272eb6e3d62bad022230e5f77308ce9e7face17b
132 changes: 132 additions & 0 deletions bbn-1/parameters/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Staking Parameters

The staking parameters are governance parameters that specify what constitutes
a valid staking transaction that should be considered as an active one for
the lock-only phase-1 system.
They are maintained by Babylon and are timestamped on Bitcoin by a Bitcoin
governance wallet owned by it. They are additionally included in a GitHub
registry for easy retrieval and timestamp verification.

## Specification

The `global-params.json` file contains a JSON array (`versions`), with each
array element representing one version of the parameters. The array
elements are ordered by increasing version.

```json
{
"versions": [
{
"version": "<params_version>",
"activation_height": "<bitcoin_activation_height>",
"staking_cap": "<satoshis_staking_cap_of_version>",
"cap_height": "<bitcoin_cap_height>",
"tag": "<magic_hex_encoded_bytes_to_identify_staking_txs>",
"covenant_pks": [
"<covenant_btc_pk1>",
"<covenant_btc_pk2>",
],
"covenant_quorum": "<covenant_quorum>",
"unbonding_time": "<unbonding_time_btc_blocks>",
"unbonding_fee": "<unbonding_fee_satoshis>",
"max_staking_amount": "<max_staking_amount_satoshis>",
"min_staking_amount": "<min_staking_amount_satoshis>",
"max_staking_time": "<max_staking_time_btc_blocks>",
"min_staking_time": "<min_staking_time_btc_blocks>",
"confirmation_depth": "<confirmation_depth>"
},
...
]
}
```

The hash of each version of the parameters is further timestamped on Bitcoin by
a Babylon owned governance wallet to enable easy verification.

A parameters version has the following rules:
- *Version*: The version should be an integer and versions should be
monotonically increasing by `1` with an initial value of `0`.
- *ActivationHeight*: The activation height describes the Bitcoin height from
which the parameters of this version are taken into account. Each new
version, should have a strictly larger activation height than the previous
version. This ensures that for any transaction, we can identify which staking
parameters should apply to it.
- *StakingCap*: The staking cap describes the limit of Bitcoins that are
accepted in total for this parameters version. It includes Bitcoins that have
been accepted in prior versions. A later version should have a larger or
equal staking cap than a prior version in which the `StakingCap` is set.
If `StakingCap` is set, it should be strictly larger than the maximum staking amount.
- *CapHeight*: The cap height is a different cap mechanism than `StakingCap`.
It allows staking transactions to be accepted as long as their inclusion height
is in the range of `ActivationHeight` and `CapHeight` (inclusive) for this
parameters version. **Note**: Only one of `CapHeight` and `StakingCap` can be set in a
single parameters version. A later version should have a larger or equal cap height
than a prior version where `CapHeight` is set.
- *CovenantPKs*: Specifies the public keys of the covenant committee.
- *CovenantQuorum*: Specifies the quorum required by the covenant committee for
unbonding transactions to be confirmed.
- *UnbondingFee*: Specifies the required fee that an unbonding transaction
should have in satoshis. Can change arbitrarily between versions.
- *MinStakingAmount/MaxStakingAmount*: Specify the range of acceptable staking
amounts in satoshis. Can change arbitrarily between versions. The maximum
should be larger or equal to the minimum.
- *MinStakingTime/MaxStakingTime*: Specify the range of acceptable staking
periods in BTC blocks. Can change arbitrarily between versions. The maximum
should be larger or equal to the minimum. The maximum cannot be larger than
65535.
- *ConfirmationDepth*: The number of confirmations required for transactions
to be deep enough on the Bitcoin ledger so that their reversal is highly
improbable. Inclusion of a transaction in a block means the confirmation depth
for the transaction is `1`. More appended blocks further increment its
confirmation depth.

Rules specification:
```
Let v_n and v_m be versions `n` and `m` respectively, with `m > n`.
In between versions:
- v_m.Version == v_n.Version + (m - n)
- v_m.ActivationHeight > v_n.ActivationHeight
- v_m.StakingCap >= v_n.StakingCap if v_n.StakingCap != 0
For a particular version:
- len(v_m.Tag) == 4
- ValidBTCPks(v_m.CovenantPks)
- len(v_m.CovenantPks) > 0
- len(v_m.ActivationHeight) > 0
- v_m.StakingCap == 0 => v_m.CapHeight > 0
- v_m.StakingCap > 0 => v_m.CapHeight == 0
- v_m.StakingCap > 0 => v_m.StakingCap > v_m.MaxStakingAmount
- v_m.CovenantQuorum <= len(v_m.CovenantPks)
- v_m.CovenantQuorum < 2^32
- v_m.CovenantKeys.each(Key: validHexSchnorrKey(Key))
- v_m.MinStakingAmount >= v_m.UnbondingFee + 1000
- v_m.MaxStakingAmount >= v_m.MinStakingAmount
- v_m.MaxStakingAmount < 2^63 && v_m.MinStakingAmount < 2^63 && v_m.StakingCap < 2^63
- v_m.MaxStakingTime >= v_m.MinStakingTime
- v_m.MaxStakingTime > 0 && v_m.MinStakingTime > 0 && v_m.UnbondingTime > 0
- v_m.MaxStakingTime <= 65535 && v_m.MinStakingTime <= 65535 && v_m.UnbondingTime <= 65535
- v_m.ConfirmationDepth > 1 && v_m.ConfirmationDepth <= 65535
```

## Updating staking parameters

Given that the staking parameters are used by multiple entities running in a distributed
environment to validate staking and unbonding transactions,
all updates to the `global-params.json` must be made in well-defined and
transparent manner.

To update parameters the following steps will be taken:
1. The Babylon team creates a PR in this repository with an updated `global-params.json` file.
The only allowed modification to this file is appending a new object to the `versions`
collection. The newly appended object must obey all rules defined in the previous paragraph.
2. All interested entities, for example, covenant signers, approve this PR. Each
approval is interpreted as being ready to validate transactions using the new `global-params.json`
introduced by the PR.
3. After enough approvals are gathered, the PR is merged.
Now the tip of the `main` branch contains the last version of staking parameters.

0 comments on commit bc62159

Please sign in to comment.