Author: Faust; Source: geekweb3
The B^2 Hub: A Universal DA Layer and Verification Layer Under the Bitcoin Chain
今日のビットコインエコシステムは、チャンスと詐欺のブルーオーシャンと表現することができ、碑文の夏によって活性化されたこの真新しい分野は、肥沃な未開の地に他ならず、いたるところにお金の匂いが漂っています。今年1月にBitcoin Layer2が集団で出現したことで、もともと不毛の荒野のようだったこの土地は、瞬く間に無数のドリームメーカーの発祥地となった。
しかし、最も本質的な質問に戻ると、Layer2とは何なのか?サイドチェーンなのか?インデクサ?ブリッジを構築するチェーンがLayer2なのか?ビットコインとイーサに依存する単純なプラグインはLayerと言えるのだろうか? これらの疑問は、決して決定的な結末を持たない一連の難しい方程式のようなものだ。
イーサとセレスティアのコミュニティによると、レイヤー2はモジュラーブロックチェーンの特殊なケースで、いわゆる「セカンドレイヤー」と「ファーストレイヤー」の間に緊密な関係があります。この場合、いわゆる "セカンドレイヤー "と "ファーストレイヤー "の間には緊密な結合があり、セカンドレイヤーのネットワークはレイヤー1のセキュリティを大なり小なり継承することができる。セキュリティそのものの概念としては、DA、ステートフル検証、離脱検証、検閲耐性、再編耐性など、いくつかの指標に分けることができる。
ビットコインネットワークは、ネットワーク自体の中に多くの問題があるため、より完全なLayer2ネットワークをサポートするのは本質的に不利です。たとえばDAでは、ビットコインのデータスループットはイーサよりもはるかに低く、平均ブロックタイムは10分で、ビットコインの最大データスループットはイーサのほぼ20分の1の6.8KB/秒にすぎず、このような混雑したブロック空間は当然、データ配信の高コストを生み出します。
(ビットコインブロックにデータを公開するコストは、1KBあたり$ 5に達することさえあります)
Layer2が追加された取引データをビットコインブロックに直接公開する場合、高いスループットも低い手数料も実現できません。低手数料を実現できない。そのため、高度に圧縮してデータサイズを可能な限り小さくするか、ビットコインブロックにアップロードする。このソリューションは現在Citrea社によって使用されており、同社は、複数のアカウントで時間の経過とともに発生した状態変化の結果である状態差分の量を、対応するZK証明とともにビットコインチェーンにアップロードすると主張している。
この場合、誰もがメインのビットコインネットワークから状態差分とZKPをダウンロードし、それらが有効であることを検証することができますが、チェーンにアップロードされるデータのサイズは軽量である可能性があります。
(former Polygon Hermez whitepaper explaining the principles of the above compression scheme)
この方式は、データサイズを大幅に圧縮する一方で、最終的にはボトルネックになりやすい。例えば、10分間に何万ものトランザクションが発生し、何万ものアカウントのステータスが変更されたとすると、それらのアカウントの変更を集約してビットコインチェーンにアップロードしなければならなくなります。これはトランザクションごとのデータを直接アップロードするよりははるかに軽いですが、それでも非常に大きなデータ公開コストが発生します。
そのため、多くのビットコインレイヤー2は、単にDAデータをメインのビットコインネットワークにアップロードせず、CelestiaのようなサードパーティのDAレイヤーに直行しています。B^2は異なるアプローチを採用し、B^2 Hubと呼ばれるチェーン直下のDAネットワーク(データ配信ネットワーク)を構築します。B^2のプロトコル設計では、取引データや状態差分、その他の重要なデータはチェーン直下に保存され、これらのデータの保存インデックスのみがメインのビットコインネットワークにアップロードされます。データハッシュ)。
これらのデータハッシュとストレージインデックスは、碑文に似た方法でビットコインチェーンに書き込まれ、ビットコインノードを実行している限り、データハッシュとストレージインデックスをローカルにダウンロードすることができ、インデックス値に基づいて、B^2のアンダーチェーンDAレイヤーまたはストレージレイヤーから生データを読み取ることができます。データハッシュに基づいて、あなたはチェーン下のDAレイヤーから得たデータが正しいかどうか(ビットコインチェーン上のデータハッシュに対応できるかどうか)を判断することができます。このシンプルな方法で、Layer2はDA問題でビットコインのメインネットに過度に依存することを避け、手数料コストを節約し、高いスループットを実現しています。
もちろん、無視できないことの1つは、サードパーティのDAプラットフォームがこの種のチェーンに関与する可能性です。この連鎖の下にあるサードパーティのDAプラットフォームは、部外者が新しいデータにアクセスすることを拒否するデータ保留を行う可能性がある。 このシナリオには「データ保留攻撃」と呼ばれる特別な用語があり、データ流通における反検閲問題として要約することができる。異なるDAスキームには異なる解決策がありますが、核となる目的は、少数の特権ノードグループがデータへのアクセスを制御するのを防ぐために、できるだけ速く、できるだけ広くデータを拡散することです。
B^2ネットワークの新しい公式ロードマップによると、そのDAソリューションはCelestiaを利用したもので、サードパーティのデータプロバイダーがCelestiaネットワークに継続的にデータを提供し、Celestiaブロッカーがこれらのデータ断片を受け取り、それをセレスティア・ブロッカーはこれらのデータ断片を受け取り、TIAブロックに詰められ、ネットワーク内のバリデーター/フル・ノードにブロードキャストされる。
これは大量のデータであり、ブロックも大きいため、ほとんどの人はフルノードを走らせる余裕がなく、ライトノードしか走らせることができません。
ライトノードはブロック全体を同期するのではなく、ブロックヘッダをMerkle TreeのルートRootと同期するだけです。
ライトノードはブロックヘッダだけではMerkle Treeの全体像を把握できないため、当然、新しいデータが何であるかわからず、データに誤りがないことを検証できません。しかし、ライトノードはフルノードにツリーのリーフの葉を求めることができ、フルノードは対応するメルクル証明とともにリーフをライトノードに提出し、リーフがセレスティアブロックのメルクルツリーに確かに存在し、ノードが何もないところから作り上げた偽のデータではないことをライトノードに納得させることができます。
(Source: W3 Hitchhiker)
セレスティア・ネットワークには多数のライトノードが存在し、異なるフルノードに対して高頻度のデータサンプリングを開始し、メルクルツリー上の特定のデータ断片をランダムに選択することができる。一旦ライトノードがこれらのデータ断片を取得すると、ライトノードは接続可能な他のノードにもそれを伝播することができる。そうすることで、効率的なデータ普及を達成する方法として、データをできるだけ多くの人々/デバイスに迅速に配布することができる。十分なノードがすべて最新のデータに迅速にアクセスできる限り、人々は一握りのデータプロバイダを信頼する必要はない。もちろん、上記のシナリオだけに基づいた攻撃シナリオはまだ存在します。なぜなら、データが分散されたときに、人々が皆データに素早くアクセスできることを保証できるだけで、データの生成元が邪悪でないことを保証する方法はないからです。例えば、セレスティア・ブロッカーはブロックの中に少しゴミのようなデータを混ぜてしまうかもしれませんし、たとえ人々がブロック内のすべてのデータ断片にアクセスできたとしても、「含まれているべきだった」(注:ここでは「含まれているべきだった」という言葉が非常に重要です)完全なデータセットを復元することはできないでしょう。
さらに、元のデータセットに100件のトランザクションがあったとして、そのうちの1件のデータが完全な形で外部に広がらなかったとします。このとき、データセットの全容を外部が解析できないように、データ断片の1%だけを隠す必要がある。これはまさに、最も初期のデータ隠蔽攻撃問題で検討されたシナリオです。
実際、ここで説明したシナリオに基づいてデータの可用性を理解するには、可用性という言葉は、ブロック内の取引データが完全で使用可能かどうか、検証のために他の人に直接渡せるかどうかを表しているのであって、多くの人が理解しているように、可用性が過去のブロックチェーンデータが外部から読み取れるかどうかを表しているわけではありません。そのため、セレスティアの関係者やL2BEATの創設者は、データの可用性はデータリリースと改名されるべきであり、取引データの完全で使用可能なセットがブロック内でリリースされるかどうかを意味すると指摘している。
セレスティアは2D修正削除コードを導入しました。前述のデータ保留攻撃に対処するためだ。ブロック(削除コード)に含まれるデータ断片の1/4が有効である限り、対応する元のデータセットを復元できる。ブロック製作者がブロックの3/4にゴミのようなデータ断片を混ぜてしまわない限り、元のデータセットを復元することはできない。その場合、ブロックはより軽いノードによって簡単に検出されるほど多くのゴミを含むことになります。
先に述べたシナリオにより、「データ流通プラットフォーム」としての利用を効果的に防ぐことができます。"B^2ネットワーク "は今後、セレスティアのデータサンプリングを重要なリファレンスとして使用し、KZGコミットメントなどの暗号技術と組み合わせることで、ライトノードによるデータサンプリングと検証のコストをさらに削減する可能性がある。十分な数のノードがデータサンプリングを行うことで、DAデータの配布を効率化し、非信頼化することができます。
もちろん、上記のスキームはDAプラットフォーム自身によるデータ保留の問題を解決するだけですが、Layer2の基本構造では、データ保留を開始する能力を持つのはDAプラットフォームだけでなく、シーケンサーも同様です。B^2ネットワークとLayer2のほとんどのワークフローでは、新しいデータはシーケンサーによって生成され、シーケンサーはユーザー側からのトランザクションを集約し、それらのトランザクションの実行から生じる状態変化をバッチにパッケージし、DAレイヤーとして機能するB^2ハブノードに送信する。
シーケンサーによって生成されたバッチがそもそも欠陥がある場合、データ保留の可能性が残りますし、もちろん他の形の悪意のあるシナリオもあります。そこで、B^2のDAネットワーク(B^2ハブ)は、シーケンサーが生成したバッチを受信すると、まずバッチの内容をペア検証し、問題があれば拒否する。B^2 HubはCelestiaのようなDAレイヤーとしてだけでなく、RGB++プロトコルのCKBの役割にやや似た、チェーンの下の検証レイヤーとしても機能すると言えます。
(B^2ネットワークの基本構造の不完全な図)
B^2ネットワークの最新の技術ロードマップによると、B^2ハブはバッチが受信され、検証された後、一定期間のみバッチを保持します。バッチデータはB^2ハブノードからローカルに削除されます。EIP-4844のようなデータの消去と紛失の問題を解決するために、B^2ネットワークは、バッチデータを永続させる役割を担うストレージノードのセットを設定し、誰でも、いつでも、必要な履歴データをストレージネットワークから検索できるようにします。
しかし、誰も何もせずにB^2ストレージノードを実行するつもりはない。インセンティブを提供するためには、不正行為に対抗する方法を考えなければなりません。例えば、自分のデバイスにローカルにデータを保存している人なら誰でも報酬を得られるようなインセンティブを提案した場合、データをダウンロードし、データの一部をこっそり削除しておきながら、保存したデータは完全だと主張する人が出てくるかもしれません。
Filecoinは、PoRepやPoStと呼ばれる保管証明プロトコルによって、保管ノードが保管証明を外部に示すことができ、一定期間データを無傷で保管したことを証明します。しかし、このストレージ証明スキームは、ZK証明を生成する必要があり、計算複雑度が高いため、ストレージノードのハードウェア機器に負荷がかかり、経済的に費用対効果の高いアプローチではないかもしれません。
新しいバージョンのB^2 Networkの技術ロードマップでは、ストレージノードはArweaveに似たメカニズムを使用する予定で、トークンのインセンティブを得るためにブロックを終了する権利を争う必要があります。ストレージノードが非公開でデータを削除した場合、そのノードが次のブロッカーになる確率は低下し、最も多くのデータを保持するノードほど、ブロックから抜けることに成功し、より多くのインセンティブを得られる可能性が高くなる。そのため、ほとんどのストレージノードでは、履歴データを完全に保持しておく方が良いのです。
もちろん、インセンティブを受けるのはストレージノードだけでなく、前述のB^2ハブノードも同様で、ロードマップによれば、十分な数のトークンを誓約した人は誰でもB^2のメンバーになれるパーミッションレスPOSネットワークに形成される。このように、B^2ネットワークはチェーンの下に分散型DAプラットフォームとストレージプラットフォームを構築しようとしており、将来的にはB^2以外のBitcoin Layer2と統合し、ビットコインチェーンの下に普遍的なDAレイヤーとデータストレージレイヤーを構築する予定です。
ZKとProof of Fraudをミックスしたステートフルな検証ソリューション
前回、B^2 NetworkのDAソリューションについて説明したが、次はそのステートフルな検証ソリューションに焦点を当てる。状態検証とは、Layer2 がその状態遷移が十分に「信頼されていない」ことを保証する方法を意味します。
前述したように、B^2ネットワークやほとんどのLayer2ワークフローでは、状態遷移が十分に「非信頼」であることを保証しています。ネットワーク、そしてほとんどの Layer2 ワークフローにおいて、追加されたデータはシーケンサー Sequencer によって生成されます。Sequencer はユーザーサイドから送信されたトランザクションを集約・処理し、トランザクション実行後の状態変化の結果を添付して、Layer2 ネットワークの他のノード(通常の Layer2 フルノード、B^2 Hub ノードを含む)に送信するバッチにパッケージします。2ハブノードを含む。
バッチデータを受け取った後、B^2ハブノードはその内容を解析し、前述の「状態検証」を含む検証を行います。実際、状態検証とは、シーケンサが生成したバッチに記録された「トランザクション実行後の状態変化」が正しいかどうかを検証することである。もしB^2ハブノードが不正な状態を含むBatchを受信した場合、それを拒否します。
実際、B^2ハブは基本的にPOSパブリックチェーンであり、オリジネーターとベリファイアーの間で分割されている。B^2 Hubのブロッカーは時々、新しいブロックを生成し、シーケンサーから提出されたバッチデータを含む他のノード(検証者)に伝播します。残りのワークフローは、先に述べたCelestiaと少し似ています。B^2 Hubノードにデータスニペットを頻繁に要求する多くの外部ノードがあり、その過程でバッチデータは、先に述べたストレージネットワークも含め、多くのノードデバイスに分散されます。
B^2ハブにはコミッターと呼ばれるローテーション可能な役割があり、バッチのデータハッシュ(これは実際にはMerkleルート)とストレージインデックスを受け取り、碑文の形でビットコインチェーンにコミットします。このデータハッシュとストレージインデックスを読みさえすれば、チェーン下のDAレイヤー/ストレージレイヤーで完全なデータを取得する方法がある。バッチデータを保存しているチェーン下のノードがN個あると仮定すると、そのうちの1個がデータを公開する意思がある限り、誰でも必要なデータにアクセスすることが可能になります。
もちろん、上記のプロセスにおいて、Layer2の状態遷移の妥当性を検証する役割を担うB^2 Hubは、メインのビットコインネットワークから独立しており、オフチェーンの検証レイヤーに過ぎないため、現時点では、Layer2の状態検証スキームとLayer2の状態検証スキームを同一視することはできない。検証スキームは、信頼性の点で、メインのビットコインネットワークと同一視することはできません。
一般的に、ZK RollupはLayer1のセキュリティを完全に継承することができますが、現在のところビットコインチェーンは、ZK証明を直接検証することができない一部の極めて単純な計算しかサポートしていないため、セキュリティモデルの点でイーサリアムのZK Rollupと同列に扱えるLayer2は存在しません。CitreaやBOBなどを含むRollup。
現時点での「より実現可能な」アイデアは、BitVMホワイトペーパーにあるように、複雑な計算をビットコインチェーンから移動させ、必要な場合にのみ特定の単純な計算をチェーン上に移動させることです。例えば、ZK証明を検証する際に生成される計算の痕跡を公開し、外部の精査にオープンにすることができる。人々がより微妙な計算ステップのひとつに問題を見つけた場合、ビットコインチェーン上で「論争の的になっている計算」を検証することができる。これには、ビットコインのスクリプト言語を使って、EVMのような特別な仮想マシンの機能をエミュレートする必要があり、膨大な作業が必要になる可能性があるが、実現不可能ではないだろう。
参考:「BitVMの超簡単な説明:BTCチェーン上の不正の証明を検証する方法(EVMまたは他のVMのオペコードを実行する)」
B^2ネットワークの技術的ソリューションでは、シーケンサーが新しいバッチを生成し、そのバッチがBTCチェーンに転送されます。B^Hub ノードは EVM 互換であり、Solidity コントラクトを通して ZK Proof を検証します。の形で表現され、そのすべてが十分な処理能力を持つサードパーティのDAプラットフォームに提出されます。
これらの開示されたZK検証の痕跡に疑問を持ち、小さなステップが正しくないと感じた場合、ビットコインチェーン上のノードに「挑戦」して問題のあるステップを直接検査し、適切なペナルティを課すことができます。適切なペナルティを課すことができます。
(データ・サンプリング・ノードを除いたB^2ネットワークの全体構造の図)
では、誰がペナルティーを受けているのでしょうか?B^2ネットワークの設定では、コミッターは前述のデータハッシュをビットコインチェーンに公開するだけでなく、ZK証明の検証済み「約束」もメインのビットコインネットワークに公開します。Bitcoin Taprootのいくつかの設定により、コミッターによってビットコインチェーンに投稿されたZK証明の検証プロミスに常に質問し、挑戦することができます。
ここで「コミットメント」とは何かについて説明します。"コミットメント "とは、誰かがあるオフチェーンデータが正確であると主張し、その旨のステートメントをチェーン上に投稿することを意味し、これは "コミットメント "であり、コミットメントの値は特定のオフチェーンデータに結びつけられます。B^2のシナリオでは、コミッターが投稿したZK検証の約束に問題があると考える人がいれば、それに異議を唱えることができます。
B^2ハブはバッチを受信した後、その有効性を直接検証する。バッチを検証するプロセスを公開して、人々が直接チャレンジできるようにすればいいのに、なぜZK証明を導入する必要があるのでしょうか?Layer2のトランザクションを検証し、状態変化を生成する計算過程をロジックゲートやビットコインスクリプトの形で開示すると、膨大なデータサイズになってしまう。ZKingを使えば、公開前にデータサイズを大幅に圧縮できる。
以下は、B^2のワークフローの大まかな要約です:
B^2のシーケンサー。シーケンサーは新しいレイヤー2ブロックを生成し、複数のブロックをデータ・バッチに集約する役割を果たします。データ・バッチはアグリゲーター、集約者、およびB^Hubネットワークのバリデーター・ノードに送信されます。
Aggregatorはデータバッチを受け取り、後者が対応するゼロ知識証明を生成するために、それをProverノードに送信します。
B^2Hubノードは、アグリゲーターが送信したZK Proofがシーケンサーが送信したバッチに対応できるかどうかを検証する。両者が対応できる場合、検証に合格する。検証に合格したバッチは、データハッシュとストレージインデックスと共に、指定されたB^Hubノード(コミッターと呼ばれる)によってビットコインチェーンに送信されます。
B^Hubノードは、計算プロセスのコミットメントをビットコインチェーンに送信することで、ZKプルーフを検証するための計算プロセス全体を公開し、誰でもチャレンジできるようにします。チャレンジが成功した場合、コミットメントを投稿したB^Hubノードは金銭的なペナルティを受けます(ビットコインチェーン上のUTXOはロック解除され、チャレンジャーに転送されます)
このB^2ネットワークの状態検証スキームは、一方ではZKを導入し、他方では不正証明を使用します。は、ZKを導入し、片側で不正証明を使用しますが、これは実際にはハイブリッド状態検証アプローチに属します。エラーを検出した後にチャレンジを開始する意思のある、少なくとも1つの正直なノードがチェーンの下に存在する限り、B^2ネットワークの状態遷移が問題ないことが保証される。
欧米のビットコインコミュニティのメンバーによると、将来、メインのビットコインネットワークは、より多くの計算機能をサポートするために適切なフォークを行う可能性があり、おそらく将来的には、ビットコインチェーン上で直接ZK証明を検証することが現実になり、ビットコインレイヤー2全体に新しいパラダイムレベルの変化をもたらすでしょう。B^2 Hubは、汎用のDAレイヤーおよび検証レイヤーとして、B^2ネットワークの専用モジュールとして機能するだけでなく、他のビットコインレイヤー2にも力を与えることができます。 ビットコインレイヤー2の大奮闘の世界では、オフチェーン機能拡張レイヤーはますます重要になるに違いなく、B^HubとBTCKBの出現は、これらの機能拡張レイヤーの氷山の一角を明らかにしただけかもしれません。