メインコンテンツまでスキップ

BTC リステーキング(Babylon)

x/babylon モジュールは、QoreChain を Babylon Protocol と統合し、Bitcoin のプルーフオブワークによるファイナリティ保証を継承します。BTC リステーキングを通じて、QoreChain は Bitcoin のハッシュレートに裏付けられた二次的なファイナリティレイヤーを獲得します — Bitcoin プロトコル自体に変更を加える必要はありません。

概要

Babylon Protocol は、タイムスタンプとチェックポイントのメカニズムを通じて、プルーフオブステークチェーンが Bitcoin のセキュリティを活用できるようにします。QoreChain の統合は次のように機能します。

  1. BTC ステーカーは、Babylon ステーキングトランザクションで Bitcoin をロックし、そのポジションを QoreChain に登録します。
  2. QoreChain からのエポックチェックポイントは定期的に Babylon にリレーされ、Babylon がそれを Bitcoin 上でタイムスタンプします。
  3. ファイナリティの継承: QoreChain のエポックが Bitcoin 上でチェックポイントされると、そのエポックがカバーする状態は Bitcoin のプルーフオブワークによるファイナリティ保証を継承します。

これにより、QoreChain 自身のバリデーターセットのみに依存するのではなく、Bitcoin の累積ハッシュレートに固定されたロングレンジ攻撃や二重署名に対する防御が提供されます。

BTC ステーキングポジション

ユーザーは、Bitcoin ステーキングトランザクションを参照する MsgBTCRestake トランザクションを送信することで、QoreChain 上に BTC ステーキングポジションを登録できます。

登録要件

パラメータ説明
最小ステーク100,000 satoshi(0.001 BTC)ステーキングポジションごとに必要な最小 BTC
アンボンディング期間144 BTC ブロック(約 1 日)ステークされた BTC を引き出せるようになるまでの待機期間
チェックポイント間隔QoreChain 10 エポックごと状態が Babylon にチェックポイントされる頻度

ステーキングポジションの構造

各 BTC ステーキングポジションは、以下のオンチェーン状態を追跡します。

フィールド説明
staker_addressステーカーの QoreChain アドレス(qor1...
btc_tx_hashステーキングトランザクションの Bitcoin トランザクションハッシュ
amount_satoshisステークされた BTC の量(satoshi 単位)
statusポジションのライフサイクル状態: activeunbonding、または withdrawn
staked_atポジション登録のタイムスタンプ
unbonding_heightアンボンディングが開始されたブロック高さ(該当する場合)
validator_addrこのステークが委任される QoreChain バリデーターアドレス

登録フロー

  1. BTC ステーキングトランザクションの作成 — Bitcoin ネットワーク上で BTC ステーキングトランザクションを作成します。
  2. QoreChain 上で MsgBTCRestake を送信 — QoreChain 上で、btc_tx_hashamountvalidator を指定して MsgBTCRestake を送信します。
  3. ポジションの記録 — ポジションが「active」としてオンチェーンに記録されます。

エポックチェックポイント

QoreChain のエポック状態ルートは、Babylon リレーチェーンを通じて定期的に Bitcoin にチェックポイントされます。

チェックポイントフロー

  1. チェックポイントの送信 — QoreChain バリデーターが、エポック番号、BTC ブロックハッシュ、BTC ブロック高さ、QoreChain 状態ルートを含む MsgSubmitBTCCheckpoint を送信します。
  2. IBC リレー — チェックポイントデータが IBC を介して Babylon チェーンにリレーされます。
  3. Bitcoin 上でのタイムスタンプ — Babylon がチェックポイントを Bitcoin トランザクションに含め、QoreChain の状態を Bitcoin のブロックチェーンに固定します。
  4. 確認 — Bitcoin トランザクションが確認されると、ファイナリティが Babylon を通じて QoreChain に戻ります。
  5. 確定 — チェックポイントのステータスが pending から confirmed、そして finalized へと遷移します。

チェックポイントの構造

フィールド説明
epoch_numチェックポイントされる QoreChain エポック番号
btc_block_hashチェックポイントを含む Bitcoin ブロックハッシュ
btc_block_heightBitcoin ブロック高さ
state_rootエポック境界での QoreChain 状態ルート
submitted_atチェックポイント送信のタイムスタンプ
statusチェックポイント状態: pendingconfirmed、または finalized

エポックスナップショット

各チェックポイント境界で、エポックスナップショットがネットワークの集計状態をキャプチャします。

フィールド説明
total_staked全ポジションにわたってステークされた総 BTC(satoshi)
active_positionsアクティブなステーキングポジションの数
validator_countBTC に裏付けられた委任を持つバリデーターの数
block_heightスナップショット時の QoreChain ブロック高さ

二次的なファイナリティレイヤー

Babylon の統合は、QoreChain のネイティブコンセンサスファイナリティを補完する二次的なファイナリティ保証を提供します。

ファイナリティレイヤーソース速度セキュリティ
一次QoreChain コンセンサスエンジン約 5 秒QOR ステーク + PQC 署名に裏付けられる
二次Babylon + Bitcoin約 60 分Bitcoin の累積ハッシュレートに裏付けられる

二次レイヤーは特に以下の点で価値があります。

  • ロングレンジ攻撃の防止: 攻撃者が大量の QOR ステークを蓄積したとしても、Bitcoin 上でチェックポイントされた履歴を書き換えることはできません。
  • クロスチェーンブリッジのセキュリティ: 大きな価値を伴うブリッジ操作は、資金を解放する前に Bitcoin レベルのファイナリティを待つことができます。
  • 機関投資家の信頼: Bitcoin のタイムスタンプは、QoreChain の状態履歴を独立して検証可能な証明として提供します。

構成

パラメータデフォルト説明
enabledfalseBTC リステーキング機能のマスタースイッチ
min_stake_amount100,000 satoshiステーキングポジションごとの最小 BTC
unbonding_period144 BTC ブロックBTC 建てのアンボンディング期間
checkpoint_interval10 エポックBabylon チェックポイント間のエポック数
babylon_chain_idbbn-1接続された Babylon ネットワークのチェーン ID

イベント

このモジュールは以下のオンチェーンイベントを発行します。

イベントタイプ属性説明
btc_restakestaker, btc_tx_hash, amount, validator新しい BTC ステーキングポジションが登録された
btc_unbondstaker, amountBTC ステーキングポジションがアンボンディングに入った
btc_checkpointepoch, checkpoint_idエポックチェックポイントが Babylon に送信された
babylon_epoch_completeepochBitcoin タイムスタンプで Babylon エポックが確定した

API エンドポイント

REST

メソッドエンドポイント説明
GET/babylon/v1/staking/{address}アドレスの BTC ステーキングポジションを取得
GET/babylon/v1/checkpoint/{epoch}特定のエポックのチェックポイントデータを取得
GET/babylon/v1/paramsモジュールの構成パラメータを取得

JSON-RPC

メソッドパラメータ説明
qor_getBTCStakingPositionaddress(文字列)指定された QoreChain アドレスの BTC ステーキングポジションを返す

CLI コマンド

クエリコマンド

# Query BTC restaking configuration
qorechaind query babylon config

# Query a staking position by address
qorechaind query babylon position <staker-address>

トランザクションコマンド

# Register a BTC restaking position
qorechaind tx babylon restake \
--btc-tx-hash <hash> \
--amount-satoshis <amount> \
--validator <qorvaloper1...> \
--from <key-name>

# Submit a BTC checkpoint
qorechaind tx babylon submit-checkpoint \
--epoch <epoch-number> \
--btc-block-hash <hash> \
--btc-block-height <height> \
--state-root <root> \
--from <key-name>