(出典: companiesmarketcap)
2008年に匿名の開発者によって作成されたBitcoinは、あらゆる資産クラスの中で市場資本化で7位にランクインしており、巨大な資産に成長しました。それは今や金融機関だけでなく、アメリカ合衆国大統領にさえ認識されています。現在、Bitcoinの市場資本化は銀に匹敵しています。Bitcoinの普及がまだ比較的低いことと、その市場資本化が金の1/10しかないことを考えると、将来の成長ポテンシャルは非常に有望です。
ビットコインは資産としての成長が著しいにもかかわらず、まだ重大な欠点があります。それは、利用レベルです。株や債券などの伝統的資産は幅広い金融商品で利用されますが、ビットコインの金融アプリケーションは技術的にも実践的にも非常に限られています。アメリカ西部の開拓時代に似て、ビットコインは未開拓の機会の地を象徴しています。
市場価値が膨大であるため、多くの企業やプロトコルがビットコインを利用して追加の信用創造を試みてきました。これまでにBTCを利用しようとした主な試みは次のとおりです。
BTCを利用しようとする試みを調査すると、共通の課題が明らかになります。Bitcoinをネイティブな方法で利用するのは難しいということです。Bitcoinの最大の強みの1つはそのセキュリティですが、追加の信頼の前提がこのセキュリティを弱めると、BTC保有者にとってかなりの参入障壁となります。これがBitcoinの利用レベルが比較的低いままである主な理由です。
ここが@babylonlabs_io焦点がBTCに向けられます。 BabylonはBTCホルダーがビットコインネットワーク上でネイティブにBitcoinをステークし、他のPoSプロトコルの検証に参加して追加の報酬を得ることを可能にします。
BTCを追加の信頼前提なしで利用する利点のおかげで、Babylonは急速に50億ドル以上のTVLを達成しました。BTCにステーキング上限がなければ、TVLはさらに高くなっていたかもしれません。
しかし、ビットコインのスクリプト言語はチューリング完全ではないため、複雑なスマートコントラクトを簡単にサポートすることはできません。では、バビロンはどのようにしてこの機能を実現しているのでしょうか?この記事では、バビロンの動作の具体的なメカニズムを探っていきます。
バベルの塔を建てるように、本当のネイティブBTC利用を実現できるでしょうか?
Babylonのミッションは、分散型の世界を保護するためにBitcoinのスケーリングを行うことです。BTCステーキングプロトコルとして広く知られていますが、BabylonはBitcoinのタイムスタンプサービスも提供し、BTCセキュリティ共有プロトコルのスイートを形成しています。
バビロンは2つの主要なプロトコルで構成されています:
(出典: バビロン)
バビロンの基本的なアーキテクチャは、上記の図に示されており、その中心にはCosmos SDK上に構築されたバビロンチェーンがあります。バビロンチェーンに加えて、BTCステーキングおよびBitcoinや他のConsumer Zonesとの通信を容易にするいくつかの周辺プログラムがあります。Consumer Zonesとは、Bitcoinネットワーク上のチェックポイントを記録するPoSチェーンのことを指します。
バビロンチェーンは、エコシステム内で重要な機能を果たすさまざまなモジュールで構成されており、バリデータセットの管理、Bitcoinブロックヘッダーの追跡、Bitcoinネットワークへのチェックポイントの提出、BTCステーキングに関連するアクティブな最終性プロバイダーセットの管理などが含まれています。参考までに、最終性プロバイダーはEigenLayerのAVSオペレーターに類似しており、他のPoSプロトコルの検証に参加しています。
さらに、バビロンは、BitcoinネットワークとBabylon Chainの間のスムーズなコミュニケーションを促進するために、いくつかの支援プログラムを実装しています:
このエコシステムを通じて、Babylonは暗号通貨業界がBitcoinの強力なセキュリティと深い流動性を活用することを可能にします。さて、Babylonの2つの主要な機能、BitcoinのタイムスタンプとBitcoinのステーキングを詳しく見てみましょう。
以前トークンをステークしたことがある人なら、通常、アンステーキングには1〜2週間の待機期間が必要であることを知っているでしょう。この期間中、トークンを使用したり、利息を得たりすることはできません。これにより非効率が生じます。しかし、なぜアンステーキングには待機期間が必要なのでしょうか?なぜ即時引き出しが許可されないのでしょうか?
最も簡単な理由はネットワークセキュリティです。もしステーキング解除が即座に行われると、大量のトークンが市場の変動に応じて解除され、ネットワークセキュリティが著しく弱体化する可能性があります。しかし、セキュリティ以外にもう1つの基本的な理由があります。それは、長期攻撃を防ぐためです。
(出典: AP)
長距離攻撃とは、悪意のある検証者が過去のブロックから新しいフォークを作成し、現在の正規のチェーンを置換しようとする攻撃を指します。悪意のあるフォークされたチェーンが正規のチェーンと同じ長さまたはそれ以上になった場合、ネットワークに新しく参加するノードはどちらが正当なチェーンなのか混乱する可能性があり、潜在的な問題が発生する可能性があります。しかし待ってください、これは実際に可能なのでしょうか?
PoWネットワークでは、長期攻撃はほぼ不可能です。攻撃者が現在の正規のチェーンに追いつくためには、既存のネットワークの計算能力を超えて過去から新しいブロックを再作成する必要があり、これは実質的に不可能です。
同様に、正しく機能しているPoSネットワークでは、この攻撃も不可能です。新しいフォークを作成するには、悪意のある検証者が複数の相反するブロックに署名する必要があります。これは二重署名と見なされ、プロトコル違反であり、スラッシングペナルティの対象となります。
しかし、すぐにアンステーキングが許可されるとしたらどうでしょうか?
PoWネットワークとは異なり、PoSネットワークはブロックを生成するために大規模な計算能力を必要としません。これは、悪意のあるバリデータが既存のチェーンから自分の資産をアンステークし、その後、バリデータのキーがまだ有効だった過去のブロックから新しいフォークされたチェーンを作成する場合、彼らは現在の正統なチェーンに追いつく可能性があることを意味します。このシナリオでは、ネットワークに新たに参加するノードは、どちらが正当なチェーンかを判断するのに苦労するかもしれず、混乱やセキュリティリスクが発生する可能性があります。
(出典:バビロン)
長距離攻撃が成功した場合、悪意のある検証者はブリッジングメカニズムを悪用して資金を盗むことができます。例えば、悪意のある攻撃者であるJohnが、RugPullチェーンからOsmosisに1M RUGトークンを移動し、OSMOトークンと交換するとします。この移動はIBCを介して行われ、これはRugPullチェーン上の元のRUGトークンをロックし、Osmosisチェーン上で同等のRUGトークンを鋳造することで行われます。
(出典: バビロン)
もし、ジョンがRugPullチェーンでの長距離攻撃を成功させたと仮定すれば、新しくフォークされたチェーンで、RUGトークンをロックしてOsmosisチェーンに送信する取引を悪意を持って省略することができます。その結果、ジョンは事実上無料でOSMOトークンを取得することができます。
遠隔攻撃を防ぐためには、一定期間のステークのアンボンディング期間が必要です。悪意のある行為者は、アンボンディング期間中に遠隔攻撃を実行することはできません(試みれば、スラッシングペナルティに直面します)。さらに、この期間中、ネットワーク参加者は、どのチェーンが正準チェーンであるかについて社会的合意に達することができます。その結果、遠隔攻撃が後に発生しても、悪意のあるフォークされたチェーンがネットワークによって受け入れられる可能性は低いです。
ステークのアンボンディング期間は、長期攻撃を防ぐ効果的な方法ですが、いくつかの欠点があります。
最初の問題は、攻撃を防ぐために社会的合意に依存していることです。長期間にわたる参加者間のオフチェーンコミュニケーションが重要な役割を果たす一方で、それが100%完璧な解決策ではないという点です。
2つめの問題は、先に触れたように、長いアンステーキング期間がユーザーエクスペリエンスと流動性に悪影響を与えるということです。
Babylonは、Bitcoin Timestampingと呼ばれるソリューションを導入し、PoSチェーンがアンステーキング期間をわずか数時間に大幅に短縮できるようにします。これにより、PoSチェーンはビットコインネットワークに正規のチェーンブロックデータを記録することができます。
タイムスタンプを使用すると、悪意のある検証ノードが長距離攻撃を試み、分岐したチェーンを正規のチェーンと主張しても、攻撃は成功しません。なぜなら、元の正規のチェーンデータはすでにBitcoinネットワークに安全に記録されているからです。Bitcoinのセキュリティが維持されている限り、攻撃は必ず失敗します。このアプローチは社会的合意の必要性を排除するため、必要なアンボンディング期間を大幅に短縮することが可能です。
(出典:バビロン)
ここでは、Bitcoin Timestamping は Bitcoin ネットワーク内の OP_RETURN オペコードを使用して記録されます。OP_RETURN は、Bitcoin ネットワーク上に最大 80 バイトの任意のデータを保存することを可能にする命令です。通常の Bitcoin トランザクションとは異なり、OP_RETURN は資金の送金に使用することはできず、UTXO を生成しません。
PoSチェーンがすべてBitcoinネットワークで直接チェックポイントを作成できるかどうかは重要な考慮事項の1つです。 Bitcoinブロックはサイズが小さく、ブロック時間が10分であり、OP_RETURNには最大80バイトのデータしか格納できません。 多数のPoSチェーンが頻繁にチェックポイントトランザクションを送信した場合、Bitcoinネットワークはその負荷を処理できなくなります。
この問題を解決するために、バビロンはバビロンチェーンを導入し、複数のPoSチェーンからのチェックポイントをIBCを介して集約し、それをビットコインネットワークに単一の集約チェックポイントとして提出します。
このプロセスの重要な要素は、Vigilante Relayerであり、バビロンノードからチェックポイントを読み取り、それらをOP_RETURNトランザクションにパッケージ化し、それをビットコインネットワークに送信する責任があるエンティティです。システムは、適切に機能するためには、少なくとも1つの誠実でライブなVigilante Relayerが必要です。
(出典:バビロン)
BTCのタイムスタンプは次のように行われます:PoSチェーンは、ブロック情報を含むチェックポイントをバビロンチェーンに提出します。バビロンチェーンは、各エポックの最終ブロックでバビロンブロックのチェックポイントをビットコインネットワークに提出します。
(出典:バビロン)
遠隔攻撃が発生した場合でも、悪意のあるフォークされたチェーンのチェックポイントは常に正規のチェーンのチェックポイントよりもタイムスタンプが後ろになります。つまり、ネットワーク参加者は単にBitcoinネットワークのチェックポイントを確認するだけで悪質なフォークを簡単に特定できます。このアプローチにより、社会的合意の必要性がなくなるため、ステークのアンボンディング期間を数週間から数時間に短縮することができます。
バビロンのBitcoinタイムスタンプは、PoSチェーンのアンステーキング期間を短縮することで、UXと流動性効率を向上させるだけでなく、さまざまな追加の利点も提供します。
Babylonを通じた遅い最終性を採用することで、PoSチェーンはBitcoinと比較可能なセキュリティレベルを達成できます。特定のトランザクションを含むPoSブロックがBitcoinネットワーク上でタイムスタンプされ、6つのBitcoinブロックによって確認されると、Bitcoinのセキュリティが保持されている限り、そのトランザクションは不可逆になります。
このメカニズムは、不動産購入などの高額取引を処理する際に役立ち、絶対的なセキュリティが必要な場合に役立ちます。また、セキュリティが弱い可能性がある新規に立ち上げられたCosmosゾーンに対して、遅い確定性を実装することで、安全な取引処理に追加の保護層を提供できます。
Bitcoin Timestampingは、PoSチェーンへの検閲攻撃の場合にも生存性を回復するのに役立ちます。これを解決するために、Babylonはロールアップモードという特別なコンセプトを導入しています。
従来のPoSチェーンでは、検証者の少なくとも三分の二(2/3)が正直でなければ、検閲耐性を維持する必要があります。しかし、バビロンのロールアップモードでは、検証者の半数(1/2)だけが正直であれば、検閲耐性を達成でき、攻撃に対するチェーンの耐性が大幅に向上します。
(出典:バビロン)
もしPoSチェーンのユーザーが特定の取引が検閲されていると信じている場合、バビロンチェーンに検閲申し立て(図の赤いセクション)を提出し、ロールアップモードへの進入プロセスを開始することができます。検閲申し立てには、検閲された取引のハッシュが含まれています。
Bitcoinブロック確認後、疑わしい検閲トランザクションがPoSチェーンに含まれていない場合、誠実な検証者はPoSチェーンの状況をBabylonに提出します。さらに6回のBitcoinブロック確認後、検閲トランザクションに関連するチェックポイントがどのBitcoinブロックにも検出されない場合、誠実な検証者とユーザーはロールアップモードに入ります。
ロールアップモードでは、任意の検証者がPoSトランザクションのバンドルを提案することができ、少なくとも合計賭け金の半分(1/2)を保持している検証者がバンドルに署名すれば、トランザクションはビットコインネットワーク上で最終的に確定され、検閲を効果的に防止します。
Bitcoinのタイムスタンプは、PoSチェーンがステークのアンボンディング期間を短縮し、検閲耐性を向上させるためにBitcoinのセキュリティを活用することを可能にしますが、これはBitcoinのセキュリティを部分的にしか活用していません。
Bitcoinのタイムスタンプを超えて、バビロンはBitcoinステーキングを導入しました。これはBitcoinのスクリプト言語を使用してBTCステーキングをネイティブに実装しています。これにより、他のPoSプロトコルがステーキングされたBTCの暗号経済セキュリティを利用できるようになります。このステーキングプロトコルはモジュラープラグインとして設計されており、さまざまなPoSコンセンサスプロトコルに簡単に適応できるようになっています。
BTCを保有する人にとって、バビロンのBitcoinステーキングは魅力的な投資機会です。外部エンティティに頼らずにBTCをBitcoinのセキュリティレベルでステーキングでき、外部プロトコルから報酬を得ることができます。
いくつかのキータームを定義しましょう:
しかし、イーサリアムとは異なり、ビットコインネットワークはチューリング完全ではないため、複雑なステーキング契約を実装することが難しい。では、バビロンはどのようにこれを実現しているのでしょうか?
バビロンのブログからの例を使って詳細を探ってみましょう。
// 契約V0:アリスのステーキングUTXOにロック条件を追加する
condition-1 (locking): time_lock = 1000 & alice_public_key
AliceがBTCをステークし、同時にファイナリティ・プロバイダーとしても機能すると仮定しましょう。BTCのステーキングを実装するためには、BTCをロックするメカニズムが必要です。これは、UTXOの支出条件の1つを設定して、一定期間(time_lock = 1000)後にのみAlice(BTCの所有者)が彼女のalice_public_keyを使用して資金を引き出すことができるようにすることで達成されます。
// 契約V1:単純なスラッシングの追加
条件1(ロック中):time_lock = 1000&alice_public_key; OR
condition-2 (slashing): alice_eots_public_key
ステーキングに実装されなければならない重要な要素の1つはスラッシングです。悪意のある行動が発生した場合、ステーキングされたBTCを焼却することでインセンティブメカニズムが強制される可能性があります。これを実現するために、第2のUTXO支出条件が設定されており、誰かがAliceのEOTSキーを保持している場合にスラッシングが発生できるようになっています。
EOTS(Extractable One-Time Signature)は、ビットコインのTaprootアップグレード後に導入されたSchnorr署名を使用した署名です。単純に言えば、このアルゴリズムは、悪意のあるアクターが同じ鍵を使用して同じ高さの2つの異なるブロックに二重署名を行った場合、その秘密鍵が公開されることを確実にするものです。
これを詳しく見ると、Schnorr署名は秘密鍵x、公開鍵P=xG、およびランダムなノンスkから構成されます。署名プロセスは次のようになります。ランダムなノンスkが生成され、ノンスから公開値R=kGが計算されます。次に、メッセージMとRからハッシュ値eが計算され、署名値sがノンスとeに基づいて計算され、ここでs = k + exです。最終的なSchnorr署名は(s、R)で構成されています。
EOTSの核心アイデアは、同じキーが2回使用されると、秘密鍵が公開されるというものです。Aliceが同じノンスkを使用して2つの異なるメッセージに署名すると、最初の署名はs1= k + e_1xであり、2番目の署名はs2= k + e_2xです。s1、s2、e1、e2が公開されているため、誰でも方程式x=(s1 - s2)/(e1 - e2)を使用してAliceの秘密鍵xを求めることができます。
このメカニズムを使用すると、アリスがBSN検証プロセス中に同じEOTSキーを使用して2つの異なるメッセージに悪意を持って署名した場合、これを検出した誰もがアリスのEOTS秘密キーを抽出できます。 EOTS秘密キーが公開されると、攻撃者はアリスのステークされたBTCを盗んだり、アリスのステークされたBTCを罰金として燃やすことができます。
// 契約V2
condition-1(ロック):time_lock = 1000&alice_public_key; OR
condition-2(スラッシング):alice_eots_public_key&covenant_committee_quorum
// スラッシングトランザクションV0
inputs:
outputs:
0000...0000
事前承認V0:書き込みの強制
// 信託委員会は、上記のスラッシュ取引を事前承認として事前に署名します
以前にスラッシングが発生する条件について議論してきたので、今度はスラッシングが実際にどのように施行されるかを調べてみましょう。スラッシングの施行は非常に重要です。なぜなら、もしアリスが悪意のある行動に従事した場合、誰かが不正行為を検知する前に彼女が自分のBTCを引き出そうとするかもしれず、EOTSの秘密鍵を抽出してBTCを燃やす可能性があります。
これを防ぐためには、スラッシングをBTCを事前定義されたバーンアドレス(0000…0000)に強制的に転送する方法で実装する必要があります。これを実現するために、2番目のUTXO支出条件には、Covenant Committee Quorumが含まれています。Covenant Committeeは、スラッシングが正当であるかどうかを検証する責任があります。マルチシグネチャ(M-of-N)スキームを取り込むことで、システムは、スラッシングが実行される前にAliceがBTCを自分のウォレットに一方的に引き出すことができないことを保証します。
このアプローチの利点は、アリスが正直に振る舞っている限り、彼女のEOTS署名は決して公開されず、Covenant委員会は彼女の資金を押収することはできません。したがって、アリスはCovenant委員会を信頼する必要はなく、悪意を持って行動しない限り、彼らは彼女に対して行動することはできません。
// 契約V3:安全な委任の有効化
条件-1(ロック中):time_lock = 1000&alice_public_key;OR
condition-2(スラッシング):alice_public_key&validator_eots_public_key&covenant_committee_quorum
// スラッシュトランザクションV0
inputs:
出力:
0000...0000
// Pre-approval V1
// アリスは、プリ承認としてスラッシングtxに事前に署名します。
// 信託委員会は、事前承認としてスラッシング取引を事前に署名します。
アリスは直接BTCをステークし、他のPoSプロトコルの検証者として参加することができます。ただし、ほとんどのユーザーはBTCのステーキングを委任することを選択するでしょう。
これを実装するために、検証者のEOTSキーを第2の条件に追加することで、検証者が悪意のある行動に従事した場合、アリスのBTCが焼失することを確認します。ただし、問題は、検証者が契約委員会と共謀した場合、アリスのBTCを盗む可能性があることであり、その結果、アリスは検証者を信頼する必要があります。
この問題の簡単な解決策は、2つ目の条件にアリスの公開鍵も含めることです。これにより、BTCの焼却にはアリスの署名も必要となり、未承認のBTC盗難を防ぎます。
これを達成するために、アリスは「スラッシングが発生した場合、BTCをバーンアドレスに送る必要がある」と述べた取引に事前に署名します。この場合、バリデータが悪意を持って行動し、そのEOTSキーが露呈され、契約委員会がマルチシグネチャを実行した場合、BTCはバーンアドレスに送られ、スラッシングプロセスが強制されます。
/ 契約 V3
condition-1(ロック):time_lock = 1000 & alice_public_key; OR
condition-2(スラッシング):alice_public_key&validator_eots_public_key&covenant_committee_quorum
// スラッシュトランザクションV0
inputs:
outputs:
0000...0000
// Pre-approval V2: デリゲート時のアトミックスラッシングの強制
// アリスの事前承認は、スラッシングtxのアダプターシグネチャーです
// 彼女は、バリデータのEOTS公開鍵を使用して生成されました。
// 契約委員会は、事前承認としてスラッシングトランザクションに事前に署名します。
悪意のある検証者が特定のステーカーだけを狙ってスラッシュする場合はどうなりますか? これを防ぐために、Babylonはアダプターシグネチャを導入しています。
Aliceは、検証者のEOTS公開鍵をアダプタ署名として使用して署名を暗号化します。検証者がAliceのみをスラッシュしようとする場合、彼らは自分のEOTS秘密鍵を使用しなければなりません。アダプタ署名の性質上、これにより検証者のEOTS秘密鍵が露出し、悪意のある行動に関与する検証者にはいかなるインセンティブもなくなります。
// Contract V3
condition-1(ロック中):time_lock = 1000 & alice_public_key; OR
condition-2(スラッシング):alice_public_key&validator_eots_public_key&covenant_committee_quorum
スラッシング・トランザクション V1: パーシャル・スラッシングの有効化
入力:
outputs:
output-1: value = 0.09 Bitcoin、owner = 0000...0000
output-2: 値 = 0.9 ビットコイン、
条件:
// 事前承認V2
// アリスの事前承認はスラッシングtxのアダプターシグネチャです
// 彼女は、検証者のEOTS公開鍵を使用して生成されました。
// Covenant委員会は、事前承認としてスラッシュtxに署名します。
ただし、スラッシングの際にすべてのBitcoinを燃やすことはあまりに過激ではないと思いますか? この問題に対処するために、Bitcoinの一部(例:燃やす割合はたとえば10%だけで、残りの90%を一定期間後に返却する)を燃やすことができます。 これは、スラッシングトランザクションのアウトプットを2つに分割することで実装できます。
// 契約V4:再ステーキングを可能にする
条件 1 (ロック): time_lock = 1000 & alice_public_key;又は
condition-2 (slashing): alice_public_key & list[validator_eots_public_key] からの署名のいずれか & covenant_committee_quorum
アリスの委任されたBTCは、1つだけでなく複数のPoSプロトコルの検証に参加できます。検証者が同じEOTSキーを使用して異なるPoSプロトコルの検証に参加する場合、1か所での漏洩が他のシステムに影響を与える可能性があります。したがって、バビロンの最終性プロバイダーは、異なるPoSシステム用に異なるEOTSキーを使用する必要があり、EOTSキーのリストが第2条件で導入されています。
イーサリアムやSolanaなどのPoSネットワークとは異なり、BitcoinのネットワークはPoWで動作しているため、ステーキングの概念そのものは存在しません。ただし、Babylonは、UTXOsの特性、Bitcoinのスクリプト言語、さまざまな署名アルゴリズムを通じて、ステーキングに必要なBTCロック、スラッシング、および委任機能を実装しています。これにより、BTC保有者は、ブリッジやカストディサービスを必要とせずに、BTCを利用して追加の利益を獲得することができます。
ライトニングネットワーク以外に、ビットコインネットワークのセキュリティを完全に継承したプロトコルはありません。しかし、ビットコインネットワークと同様に、ライトニングネットワークの機能はかなり限られており、ビットコインの堅牢なセキュリティと巨大な流動性を放棄するにはあまりにも貴重です。
Babylonは、Bitcoin TimestampingとBitcoin Stakingの2つの異なる方法でBitcoinのセキュリティの使用を可能にしました。前者は、Bitcoinをタイムスタンプサーバーとして使用して取引のリバートや悪意のあるフォークを防ぎます。一方、後者はBTCの強力な流動性を暗号経済のセキュリティとして利用し、BTC保有者がネイティブな方法で追加の利益を得ることを可能にします。
現在、バビロンには約55,000 BTCが預けられており、これはバビロンに設定された預金上限と同じです。総ETH供給量の約3.9%がEigenLayerに再ステークされています。これを考慮すると、BTC保有者はBTCの利用について保守的かもしれませんが、現在ステークされている総BTC供給量の約0.2%だけでバビロンの成長ポテンシャルは考慮に値すると言えます。
(出典: companiesmarketcap)
2008年に匿名の開発者によって作成されたBitcoinは、あらゆる資産クラスの中で市場資本化で7位にランクインしており、巨大な資産に成長しました。それは今や金融機関だけでなく、アメリカ合衆国大統領にさえ認識されています。現在、Bitcoinの市場資本化は銀に匹敵しています。Bitcoinの普及がまだ比較的低いことと、その市場資本化が金の1/10しかないことを考えると、将来の成長ポテンシャルは非常に有望です。
ビットコインは資産としての成長が著しいにもかかわらず、まだ重大な欠点があります。それは、利用レベルです。株や債券などの伝統的資産は幅広い金融商品で利用されますが、ビットコインの金融アプリケーションは技術的にも実践的にも非常に限られています。アメリカ西部の開拓時代に似て、ビットコインは未開拓の機会の地を象徴しています。
市場価値が膨大であるため、多くの企業やプロトコルがビットコインを利用して追加の信用創造を試みてきました。これまでにBTCを利用しようとした主な試みは次のとおりです。
BTCを利用しようとする試みを調査すると、共通の課題が明らかになります。Bitcoinをネイティブな方法で利用するのは難しいということです。Bitcoinの最大の強みの1つはそのセキュリティですが、追加の信頼の前提がこのセキュリティを弱めると、BTC保有者にとってかなりの参入障壁となります。これがBitcoinの利用レベルが比較的低いままである主な理由です。
ここが@babylonlabs_io焦点がBTCに向けられます。 BabylonはBTCホルダーがビットコインネットワーク上でネイティブにBitcoinをステークし、他のPoSプロトコルの検証に参加して追加の報酬を得ることを可能にします。
BTCを追加の信頼前提なしで利用する利点のおかげで、Babylonは急速に50億ドル以上のTVLを達成しました。BTCにステーキング上限がなければ、TVLはさらに高くなっていたかもしれません。
しかし、ビットコインのスクリプト言語はチューリング完全ではないため、複雑なスマートコントラクトを簡単にサポートすることはできません。では、バビロンはどのようにしてこの機能を実現しているのでしょうか?この記事では、バビロンの動作の具体的なメカニズムを探っていきます。
バベルの塔を建てるように、本当のネイティブBTC利用を実現できるでしょうか?
Babylonのミッションは、分散型の世界を保護するためにBitcoinのスケーリングを行うことです。BTCステーキングプロトコルとして広く知られていますが、BabylonはBitcoinのタイムスタンプサービスも提供し、BTCセキュリティ共有プロトコルのスイートを形成しています。
バビロンは2つの主要なプロトコルで構成されています:
(出典: バビロン)
バビロンの基本的なアーキテクチャは、上記の図に示されており、その中心にはCosmos SDK上に構築されたバビロンチェーンがあります。バビロンチェーンに加えて、BTCステーキングおよびBitcoinや他のConsumer Zonesとの通信を容易にするいくつかの周辺プログラムがあります。Consumer Zonesとは、Bitcoinネットワーク上のチェックポイントを記録するPoSチェーンのことを指します。
バビロンチェーンは、エコシステム内で重要な機能を果たすさまざまなモジュールで構成されており、バリデータセットの管理、Bitcoinブロックヘッダーの追跡、Bitcoinネットワークへのチェックポイントの提出、BTCステーキングに関連するアクティブな最終性プロバイダーセットの管理などが含まれています。参考までに、最終性プロバイダーはEigenLayerのAVSオペレーターに類似しており、他のPoSプロトコルの検証に参加しています。
さらに、バビロンは、BitcoinネットワークとBabylon Chainの間のスムーズなコミュニケーションを促進するために、いくつかの支援プログラムを実装しています:
このエコシステムを通じて、Babylonは暗号通貨業界がBitcoinの強力なセキュリティと深い流動性を活用することを可能にします。さて、Babylonの2つの主要な機能、BitcoinのタイムスタンプとBitcoinのステーキングを詳しく見てみましょう。
以前トークンをステークしたことがある人なら、通常、アンステーキングには1〜2週間の待機期間が必要であることを知っているでしょう。この期間中、トークンを使用したり、利息を得たりすることはできません。これにより非効率が生じます。しかし、なぜアンステーキングには待機期間が必要なのでしょうか?なぜ即時引き出しが許可されないのでしょうか?
最も簡単な理由はネットワークセキュリティです。もしステーキング解除が即座に行われると、大量のトークンが市場の変動に応じて解除され、ネットワークセキュリティが著しく弱体化する可能性があります。しかし、セキュリティ以外にもう1つの基本的な理由があります。それは、長期攻撃を防ぐためです。
(出典: AP)
長距離攻撃とは、悪意のある検証者が過去のブロックから新しいフォークを作成し、現在の正規のチェーンを置換しようとする攻撃を指します。悪意のあるフォークされたチェーンが正規のチェーンと同じ長さまたはそれ以上になった場合、ネットワークに新しく参加するノードはどちらが正当なチェーンなのか混乱する可能性があり、潜在的な問題が発生する可能性があります。しかし待ってください、これは実際に可能なのでしょうか?
PoWネットワークでは、長期攻撃はほぼ不可能です。攻撃者が現在の正規のチェーンに追いつくためには、既存のネットワークの計算能力を超えて過去から新しいブロックを再作成する必要があり、これは実質的に不可能です。
同様に、正しく機能しているPoSネットワークでは、この攻撃も不可能です。新しいフォークを作成するには、悪意のある検証者が複数の相反するブロックに署名する必要があります。これは二重署名と見なされ、プロトコル違反であり、スラッシングペナルティの対象となります。
しかし、すぐにアンステーキングが許可されるとしたらどうでしょうか?
PoWネットワークとは異なり、PoSネットワークはブロックを生成するために大規模な計算能力を必要としません。これは、悪意のあるバリデータが既存のチェーンから自分の資産をアンステークし、その後、バリデータのキーがまだ有効だった過去のブロックから新しいフォークされたチェーンを作成する場合、彼らは現在の正統なチェーンに追いつく可能性があることを意味します。このシナリオでは、ネットワークに新たに参加するノードは、どちらが正当なチェーンかを判断するのに苦労するかもしれず、混乱やセキュリティリスクが発生する可能性があります。
(出典:バビロン)
長距離攻撃が成功した場合、悪意のある検証者はブリッジングメカニズムを悪用して資金を盗むことができます。例えば、悪意のある攻撃者であるJohnが、RugPullチェーンからOsmosisに1M RUGトークンを移動し、OSMOトークンと交換するとします。この移動はIBCを介して行われ、これはRugPullチェーン上の元のRUGトークンをロックし、Osmosisチェーン上で同等のRUGトークンを鋳造することで行われます。
(出典: バビロン)
もし、ジョンがRugPullチェーンでの長距離攻撃を成功させたと仮定すれば、新しくフォークされたチェーンで、RUGトークンをロックしてOsmosisチェーンに送信する取引を悪意を持って省略することができます。その結果、ジョンは事実上無料でOSMOトークンを取得することができます。
遠隔攻撃を防ぐためには、一定期間のステークのアンボンディング期間が必要です。悪意のある行為者は、アンボンディング期間中に遠隔攻撃を実行することはできません(試みれば、スラッシングペナルティに直面します)。さらに、この期間中、ネットワーク参加者は、どのチェーンが正準チェーンであるかについて社会的合意に達することができます。その結果、遠隔攻撃が後に発生しても、悪意のあるフォークされたチェーンがネットワークによって受け入れられる可能性は低いです。
ステークのアンボンディング期間は、長期攻撃を防ぐ効果的な方法ですが、いくつかの欠点があります。
最初の問題は、攻撃を防ぐために社会的合意に依存していることです。長期間にわたる参加者間のオフチェーンコミュニケーションが重要な役割を果たす一方で、それが100%完璧な解決策ではないという点です。
2つめの問題は、先に触れたように、長いアンステーキング期間がユーザーエクスペリエンスと流動性に悪影響を与えるということです。
Babylonは、Bitcoin Timestampingと呼ばれるソリューションを導入し、PoSチェーンがアンステーキング期間をわずか数時間に大幅に短縮できるようにします。これにより、PoSチェーンはビットコインネットワークに正規のチェーンブロックデータを記録することができます。
タイムスタンプを使用すると、悪意のある検証ノードが長距離攻撃を試み、分岐したチェーンを正規のチェーンと主張しても、攻撃は成功しません。なぜなら、元の正規のチェーンデータはすでにBitcoinネットワークに安全に記録されているからです。Bitcoinのセキュリティが維持されている限り、攻撃は必ず失敗します。このアプローチは社会的合意の必要性を排除するため、必要なアンボンディング期間を大幅に短縮することが可能です。
(出典:バビロン)
ここでは、Bitcoin Timestamping は Bitcoin ネットワーク内の OP_RETURN オペコードを使用して記録されます。OP_RETURN は、Bitcoin ネットワーク上に最大 80 バイトの任意のデータを保存することを可能にする命令です。通常の Bitcoin トランザクションとは異なり、OP_RETURN は資金の送金に使用することはできず、UTXO を生成しません。
PoSチェーンがすべてBitcoinネットワークで直接チェックポイントを作成できるかどうかは重要な考慮事項の1つです。 Bitcoinブロックはサイズが小さく、ブロック時間が10分であり、OP_RETURNには最大80バイトのデータしか格納できません。 多数のPoSチェーンが頻繁にチェックポイントトランザクションを送信した場合、Bitcoinネットワークはその負荷を処理できなくなります。
この問題を解決するために、バビロンはバビロンチェーンを導入し、複数のPoSチェーンからのチェックポイントをIBCを介して集約し、それをビットコインネットワークに単一の集約チェックポイントとして提出します。
このプロセスの重要な要素は、Vigilante Relayerであり、バビロンノードからチェックポイントを読み取り、それらをOP_RETURNトランザクションにパッケージ化し、それをビットコインネットワークに送信する責任があるエンティティです。システムは、適切に機能するためには、少なくとも1つの誠実でライブなVigilante Relayerが必要です。
(出典:バビロン)
BTCのタイムスタンプは次のように行われます:PoSチェーンは、ブロック情報を含むチェックポイントをバビロンチェーンに提出します。バビロンチェーンは、各エポックの最終ブロックでバビロンブロックのチェックポイントをビットコインネットワークに提出します。
(出典:バビロン)
遠隔攻撃が発生した場合でも、悪意のあるフォークされたチェーンのチェックポイントは常に正規のチェーンのチェックポイントよりもタイムスタンプが後ろになります。つまり、ネットワーク参加者は単にBitcoinネットワークのチェックポイントを確認するだけで悪質なフォークを簡単に特定できます。このアプローチにより、社会的合意の必要性がなくなるため、ステークのアンボンディング期間を数週間から数時間に短縮することができます。
バビロンのBitcoinタイムスタンプは、PoSチェーンのアンステーキング期間を短縮することで、UXと流動性効率を向上させるだけでなく、さまざまな追加の利点も提供します。
Babylonを通じた遅い最終性を採用することで、PoSチェーンはBitcoinと比較可能なセキュリティレベルを達成できます。特定のトランザクションを含むPoSブロックがBitcoinネットワーク上でタイムスタンプされ、6つのBitcoinブロックによって確認されると、Bitcoinのセキュリティが保持されている限り、そのトランザクションは不可逆になります。
このメカニズムは、不動産購入などの高額取引を処理する際に役立ち、絶対的なセキュリティが必要な場合に役立ちます。また、セキュリティが弱い可能性がある新規に立ち上げられたCosmosゾーンに対して、遅い確定性を実装することで、安全な取引処理に追加の保護層を提供できます。
Bitcoin Timestampingは、PoSチェーンへの検閲攻撃の場合にも生存性を回復するのに役立ちます。これを解決するために、Babylonはロールアップモードという特別なコンセプトを導入しています。
従来のPoSチェーンでは、検証者の少なくとも三分の二(2/3)が正直でなければ、検閲耐性を維持する必要があります。しかし、バビロンのロールアップモードでは、検証者の半数(1/2)だけが正直であれば、検閲耐性を達成でき、攻撃に対するチェーンの耐性が大幅に向上します。
(出典:バビロン)
もしPoSチェーンのユーザーが特定の取引が検閲されていると信じている場合、バビロンチェーンに検閲申し立て(図の赤いセクション)を提出し、ロールアップモードへの進入プロセスを開始することができます。検閲申し立てには、検閲された取引のハッシュが含まれています。
Bitcoinブロック確認後、疑わしい検閲トランザクションがPoSチェーンに含まれていない場合、誠実な検証者はPoSチェーンの状況をBabylonに提出します。さらに6回のBitcoinブロック確認後、検閲トランザクションに関連するチェックポイントがどのBitcoinブロックにも検出されない場合、誠実な検証者とユーザーはロールアップモードに入ります。
ロールアップモードでは、任意の検証者がPoSトランザクションのバンドルを提案することができ、少なくとも合計賭け金の半分(1/2)を保持している検証者がバンドルに署名すれば、トランザクションはビットコインネットワーク上で最終的に確定され、検閲を効果的に防止します。
Bitcoinのタイムスタンプは、PoSチェーンがステークのアンボンディング期間を短縮し、検閲耐性を向上させるためにBitcoinのセキュリティを活用することを可能にしますが、これはBitcoinのセキュリティを部分的にしか活用していません。
Bitcoinのタイムスタンプを超えて、バビロンはBitcoinステーキングを導入しました。これはBitcoinのスクリプト言語を使用してBTCステーキングをネイティブに実装しています。これにより、他のPoSプロトコルがステーキングされたBTCの暗号経済セキュリティを利用できるようになります。このステーキングプロトコルはモジュラープラグインとして設計されており、さまざまなPoSコンセンサスプロトコルに簡単に適応できるようになっています。
BTCを保有する人にとって、バビロンのBitcoinステーキングは魅力的な投資機会です。外部エンティティに頼らずにBTCをBitcoinのセキュリティレベルでステーキングでき、外部プロトコルから報酬を得ることができます。
いくつかのキータームを定義しましょう:
しかし、イーサリアムとは異なり、ビットコインネットワークはチューリング完全ではないため、複雑なステーキング契約を実装することが難しい。では、バビロンはどのようにこれを実現しているのでしょうか?
バビロンのブログからの例を使って詳細を探ってみましょう。
// 契約V0:アリスのステーキングUTXOにロック条件を追加する
condition-1 (locking): time_lock = 1000 & alice_public_key
AliceがBTCをステークし、同時にファイナリティ・プロバイダーとしても機能すると仮定しましょう。BTCのステーキングを実装するためには、BTCをロックするメカニズムが必要です。これは、UTXOの支出条件の1つを設定して、一定期間(time_lock = 1000)後にのみAlice(BTCの所有者)が彼女のalice_public_keyを使用して資金を引き出すことができるようにすることで達成されます。
// 契約V1:単純なスラッシングの追加
条件1(ロック中):time_lock = 1000&alice_public_key; OR
condition-2 (slashing): alice_eots_public_key
ステーキングに実装されなければならない重要な要素の1つはスラッシングです。悪意のある行動が発生した場合、ステーキングされたBTCを焼却することでインセンティブメカニズムが強制される可能性があります。これを実現するために、第2のUTXO支出条件が設定されており、誰かがAliceのEOTSキーを保持している場合にスラッシングが発生できるようになっています。
EOTS(Extractable One-Time Signature)は、ビットコインのTaprootアップグレード後に導入されたSchnorr署名を使用した署名です。単純に言えば、このアルゴリズムは、悪意のあるアクターが同じ鍵を使用して同じ高さの2つの異なるブロックに二重署名を行った場合、その秘密鍵が公開されることを確実にするものです。
これを詳しく見ると、Schnorr署名は秘密鍵x、公開鍵P=xG、およびランダムなノンスkから構成されます。署名プロセスは次のようになります。ランダムなノンスkが生成され、ノンスから公開値R=kGが計算されます。次に、メッセージMとRからハッシュ値eが計算され、署名値sがノンスとeに基づいて計算され、ここでs = k + exです。最終的なSchnorr署名は(s、R)で構成されています。
EOTSの核心アイデアは、同じキーが2回使用されると、秘密鍵が公開されるというものです。Aliceが同じノンスkを使用して2つの異なるメッセージに署名すると、最初の署名はs1= k + e_1xであり、2番目の署名はs2= k + e_2xです。s1、s2、e1、e2が公開されているため、誰でも方程式x=(s1 - s2)/(e1 - e2)を使用してAliceの秘密鍵xを求めることができます。
このメカニズムを使用すると、アリスがBSN検証プロセス中に同じEOTSキーを使用して2つの異なるメッセージに悪意を持って署名した場合、これを検出した誰もがアリスのEOTS秘密キーを抽出できます。 EOTS秘密キーが公開されると、攻撃者はアリスのステークされたBTCを盗んだり、アリスのステークされたBTCを罰金として燃やすことができます。
// 契約V2
condition-1(ロック):time_lock = 1000&alice_public_key; OR
condition-2(スラッシング):alice_eots_public_key&covenant_committee_quorum
// スラッシングトランザクションV0
inputs:
outputs:
0000...0000
事前承認V0:書き込みの強制
// 信託委員会は、上記のスラッシュ取引を事前承認として事前に署名します
以前にスラッシングが発生する条件について議論してきたので、今度はスラッシングが実際にどのように施行されるかを調べてみましょう。スラッシングの施行は非常に重要です。なぜなら、もしアリスが悪意のある行動に従事した場合、誰かが不正行為を検知する前に彼女が自分のBTCを引き出そうとするかもしれず、EOTSの秘密鍵を抽出してBTCを燃やす可能性があります。
これを防ぐためには、スラッシングをBTCを事前定義されたバーンアドレス(0000…0000)に強制的に転送する方法で実装する必要があります。これを実現するために、2番目のUTXO支出条件には、Covenant Committee Quorumが含まれています。Covenant Committeeは、スラッシングが正当であるかどうかを検証する責任があります。マルチシグネチャ(M-of-N)スキームを取り込むことで、システムは、スラッシングが実行される前にAliceがBTCを自分のウォレットに一方的に引き出すことができないことを保証します。
このアプローチの利点は、アリスが正直に振る舞っている限り、彼女のEOTS署名は決して公開されず、Covenant委員会は彼女の資金を押収することはできません。したがって、アリスはCovenant委員会を信頼する必要はなく、悪意を持って行動しない限り、彼らは彼女に対して行動することはできません。
// 契約V3:安全な委任の有効化
条件-1(ロック中):time_lock = 1000&alice_public_key;OR
condition-2(スラッシング):alice_public_key&validator_eots_public_key&covenant_committee_quorum
// スラッシュトランザクションV0
inputs:
出力:
0000...0000
// Pre-approval V1
// アリスは、プリ承認としてスラッシングtxに事前に署名します。
// 信託委員会は、事前承認としてスラッシング取引を事前に署名します。
アリスは直接BTCをステークし、他のPoSプロトコルの検証者として参加することができます。ただし、ほとんどのユーザーはBTCのステーキングを委任することを選択するでしょう。
これを実装するために、検証者のEOTSキーを第2の条件に追加することで、検証者が悪意のある行動に従事した場合、アリスのBTCが焼失することを確認します。ただし、問題は、検証者が契約委員会と共謀した場合、アリスのBTCを盗む可能性があることであり、その結果、アリスは検証者を信頼する必要があります。
この問題の簡単な解決策は、2つ目の条件にアリスの公開鍵も含めることです。これにより、BTCの焼却にはアリスの署名も必要となり、未承認のBTC盗難を防ぎます。
これを達成するために、アリスは「スラッシングが発生した場合、BTCをバーンアドレスに送る必要がある」と述べた取引に事前に署名します。この場合、バリデータが悪意を持って行動し、そのEOTSキーが露呈され、契約委員会がマルチシグネチャを実行した場合、BTCはバーンアドレスに送られ、スラッシングプロセスが強制されます。
/ 契約 V3
condition-1(ロック):time_lock = 1000 & alice_public_key; OR
condition-2(スラッシング):alice_public_key&validator_eots_public_key&covenant_committee_quorum
// スラッシュトランザクションV0
inputs:
outputs:
0000...0000
// Pre-approval V2: デリゲート時のアトミックスラッシングの強制
// アリスの事前承認は、スラッシングtxのアダプターシグネチャーです
// 彼女は、バリデータのEOTS公開鍵を使用して生成されました。
// 契約委員会は、事前承認としてスラッシングトランザクションに事前に署名します。
悪意のある検証者が特定のステーカーだけを狙ってスラッシュする場合はどうなりますか? これを防ぐために、Babylonはアダプターシグネチャを導入しています。
Aliceは、検証者のEOTS公開鍵をアダプタ署名として使用して署名を暗号化します。検証者がAliceのみをスラッシュしようとする場合、彼らは自分のEOTS秘密鍵を使用しなければなりません。アダプタ署名の性質上、これにより検証者のEOTS秘密鍵が露出し、悪意のある行動に関与する検証者にはいかなるインセンティブもなくなります。
// Contract V3
condition-1(ロック中):time_lock = 1000 & alice_public_key; OR
condition-2(スラッシング):alice_public_key&validator_eots_public_key&covenant_committee_quorum
スラッシング・トランザクション V1: パーシャル・スラッシングの有効化
入力:
outputs:
output-1: value = 0.09 Bitcoin、owner = 0000...0000
output-2: 値 = 0.9 ビットコイン、
条件:
// 事前承認V2
// アリスの事前承認はスラッシングtxのアダプターシグネチャです
// 彼女は、検証者のEOTS公開鍵を使用して生成されました。
// Covenant委員会は、事前承認としてスラッシュtxに署名します。
ただし、スラッシングの際にすべてのBitcoinを燃やすことはあまりに過激ではないと思いますか? この問題に対処するために、Bitcoinの一部(例:燃やす割合はたとえば10%だけで、残りの90%を一定期間後に返却する)を燃やすことができます。 これは、スラッシングトランザクションのアウトプットを2つに分割することで実装できます。
// 契約V4:再ステーキングを可能にする
条件 1 (ロック): time_lock = 1000 & alice_public_key;又は
condition-2 (slashing): alice_public_key & list[validator_eots_public_key] からの署名のいずれか & covenant_committee_quorum
アリスの委任されたBTCは、1つだけでなく複数のPoSプロトコルの検証に参加できます。検証者が同じEOTSキーを使用して異なるPoSプロトコルの検証に参加する場合、1か所での漏洩が他のシステムに影響を与える可能性があります。したがって、バビロンの最終性プロバイダーは、異なるPoSシステム用に異なるEOTSキーを使用する必要があり、EOTSキーのリストが第2条件で導入されています。
イーサリアムやSolanaなどのPoSネットワークとは異なり、BitcoinのネットワークはPoWで動作しているため、ステーキングの概念そのものは存在しません。ただし、Babylonは、UTXOsの特性、Bitcoinのスクリプト言語、さまざまな署名アルゴリズムを通じて、ステーキングに必要なBTCロック、スラッシング、および委任機能を実装しています。これにより、BTC保有者は、ブリッジやカストディサービスを必要とせずに、BTCを利用して追加の利益を獲得することができます。
ライトニングネットワーク以外に、ビットコインネットワークのセキュリティを完全に継承したプロトコルはありません。しかし、ビットコインネットワークと同様に、ライトニングネットワークの機能はかなり限られており、ビットコインの堅牢なセキュリティと巨大な流動性を放棄するにはあまりにも貴重です。
Babylonは、Bitcoin TimestampingとBitcoin Stakingの2つの異なる方法でBitcoinのセキュリティの使用を可能にしました。前者は、Bitcoinをタイムスタンプサーバーとして使用して取引のリバートや悪意のあるフォークを防ぎます。一方、後者はBTCの強力な流動性を暗号経済のセキュリティとして利用し、BTC保有者がネイティブな方法で追加の利益を得ることを可能にします。
現在、バビロンには約55,000 BTCが預けられており、これはバビロンに設定された預金上限と同じです。総ETH供給量の約3.9%がEigenLayerに再ステークされています。これを考慮すると、BTC保有者はBTCの利用について保守的かもしれませんが、現在ステークされている総BTC供給量の約0.2%だけでバビロンの成長ポテンシャルは考慮に値すると言えます。