著者: Kernel Ventures ジェリー・ルオ

査読者: Kernel Ventures Mandy、Kernel Ventures Joshua

TLDR:

  1. 初期のパブリック チェーンでは、セキュリティと分散化を確保するために、すべてのネットワーク ノードがデータの一貫性を維持する必要がありました。しかし、ブロックチェーンエコシステムの発展に伴い、ストレージへのプレッシャーは増大し続けており、ノード運用が集中化する傾向にあります。現段階では、レイヤー 1 は、TPS の成長によって引き起こされるストレージ コストの問題を早急に解決する必要があります。

  2. この問題に直面して、開発者は、セキュリティ、ストレージ コスト、データ読み取り速度、DA 層の汎用性を考慮しながら、新しい履歴データ ストレージ ソリューションを提案する必要があります。

  3. この問題を解決する過程で、シャーディング、DAS、Verkle Tree、DA 中間コンポーネントなど、多くの新しいテクノロジーや新しいアイデアが登場しました。データの冗長性を削減し、データ検証の効率を向上させることで、DA 層のストレージ ソリューションの最適化を試みました。

  4. 現在の DA ソリューションは、データの保存場所に基づいて、メインチェーン DA とサードパーティ DA の 2 つのカテゴリに大別されます。メイン チェーン DA は、定期的にデータをクリーニングし、データをシャーディングしてノード ストレージの負荷を軽減するという観点から始まります。サードパーティの DA 設計要件はすべてストレージ サービスを対象としており、大量のデータに対する合理的なソリューションを備えています。したがって、主な焦点はシングルチェーン互換性とマルチチェーン互換性の間のトレードオフであり、メインチェーン専用 DA、モジュラー DA、ストレージ パブリック チェーン DA の 3 つのソリューションが提案されています。

  5. 決済型のパブリックチェーンは履歴データのセキュリティ要件が非常に高く、メインチェーンをDA層として使用するのに適しています。ただし、長期間運営され、多数のマイナーがネットワークを実行しているパブリック チェーンの場合は、コンセンサス層を介さず、セキュリティを考慮したサードパーティの DA を採用する方が適切です。包括的なパブリック チェーンは、より大きなデータ容量、より低いコスト、およびセキュリティを備えたメイン チェーン専用の DA ストレージを使用するのに適しています。ただし、クロスチェーンのニーズを考慮すると、モジュラー DA も良い選択肢です。

  6. 一般的に、ブロックチェーンはデータの冗長性とマルチチェーンの分業を削減する方向で発展しています。

1. 背景

ブロックチェーンは分散型台帳として、データ ストレージのセキュリティと十分な分散化を確保するために、すべてのノードに履歴データを保存する必要があります。各状態変化の正確性は前の状態(トランザクション元)に関連しているため、トランザクションの正確性を保証するために、ブロックチェーンは原則として最初のトランザクションから現在のトランザクションまでのすべての履歴記録を保存する必要があります。イーサリアムを例にとると、平均ブロック サイズが 20 kb と推定されている場合でも、イーサリアム ブロックの現在の合計サイズは 370 GB に達しており、ブロック自体に加えて、フル ノードはステータスとトランザクションの受信も記録する必要があります。 。この部分を含めると、単一ノードの合計ストレージ容量は 1 TB を超え、ノードの操作が数人に集中します。

イーサリアムの最新のブロック高さ、画像ソース: Etherscan

最近のイーサリアム カンクンのアップグレードは、イーサリアムの TPS を約 1,000 に増やすことを目的としています。その時点までに、イーサリアムの年間ストレージの増加は現在のストレージ容量の合計を超えるでしょう。最近普及しているさまざまな高性能パブリック チェーンの中でも、数万 TPS のトランザクション速度により、毎日平均して数百 GB の新しいデータがもたらされる可能性があります。ネットワーク ノード全体の一般的なデータ冗長化方法では、このようなストレージのプレッシャーに適応できないのは明らかです。レイヤー 1 は、TPS の増大とノードのストレージ コストのバランスをとるための適切なソリューションを見つける必要があります。

2. DAのパフォーマンス指標

2.1 セキュリティ

データベースやリンク リストのストレージ構造と比較して、ブロックチェーンの非改ざん性は、履歴データを通じて新しく生成されたデータを検証する機能によってもたらされます。そのため、履歴データのセキュリティを確保することが、DA レイヤー ストレージで考慮される最初の課題になります。ブロックチェーンシステムのデータセキュリティを判断する際、データの冗長性の量やデータの可用性の検証方法から分析することがよくあります。

  • 冗長性の量: ブロックチェーン システム内のデータの冗長性に関しては、主に次の役割を果たすことができます。 まず、ネットワーク内の冗長性の数が多い場合、検証者が特定の履歴ブロック内のアカウントのステータスをチェックする必要がある場合に、 verify トランザクションが検証されるとき、参照用にほとんどのサンプルを取得し、ほとんどのノードによって記録されたデータを選択できます。従来のデータベースでは、データは特定のノードにキーと値のペアの形式でのみ保存されるため、履歴データへの変更は単一のノードでのみ実行でき、理論上、冗長性が高いほど攻撃コストは非常に低くなります。データの可能性が低いほど、信頼性の度合いは高くなります。同時に、保存されるノードが増えるほど、データが失われる可能性が低くなります。これは、Web2 ゲームを保存する集中サーバーと比較することもできます。すべてのバックエンド サーバーがシャットダウンされると、サーバーは完全にシャットダウンされます。ただし、冗長性が高すぎると、システムに過度のストレージ負荷がかかるため、冗長性は高いほど良いため、セキュリティとストレージ効率のバランスを考慮した適切な冗長性を選択する必要があります。

  • データの可用性の検証: 冗長性の数により、ネットワーク内に十分なデータの記録が存在することが保証されますが、使用されるデータの正確性と完全性を検証する必要があります。現在のブロックチェーンで一般的に使用されている検証方法は、ネットワーク全体が記録するための小さな暗号化コミットメントを保持する暗号化コミットメント アルゴリズムです。このコミットメントは、トランザクション データを混合することによって取得されます。特定の履歴データの信頼性をテストしたい場合は、データを通じて暗号化コミットメントを復元し、この復元によって取得された暗号化コミットメントがネットワーク全体の記録と一致しているかどうかを確認する必要があります。 、検証はパスされます。一般的に使用される暗号検証アルゴリズムには、マークル ルートとバークル ルートが含まれます。高セキュリティのデータ可用性検証アルゴリズムは、少量の検証データのみを必要とし、履歴データを迅速に検証できます。

2.2 ストレージコスト

基本的なセキュリティを確保することを前提として、DA 層が達成する必要がある次の中核となる目標は、コストを削減し、効率を向上させることです。 1 つ目は、ハードウェアのパフォーマンスの違いに関係なく、ストレージ コストを削減すること、つまり、ユニット サイズのデータ​​を格納することによって発生するメモリ使用量を削減することです。現段階では、ブロックチェーンのストレージ コストを削減する主な方法は、シャーディング テクノロジーを採用し、報酬ベースのストレージを使用してデータが効果的に保存され、データ バックアップの数を減らすことです。ただし、上記の改善方法から、ストレージ コストとデータ セキュリティの間には密接な関係があることを理解するのは難しくありません。ストレージ占有量の削減は、多くの場合、セキュリティの低下を意味します。したがって、優れた DA レイヤーでは、ストレージ コストとデータ セキュリティの間のバランスを達成する必要があります。さらに、DA 層が別のパブリック チェーンである場合、各転送プロセスでインデックス データを後続のクエリ呼び出しのために残しておく必要があるため、コストを削減する必要があります。プロセスが完了すると、より多くのインデックス データが残り、ストレージ コストが増加します。最後に、データ ストレージのコストはデータの耐久性に直接関係します。一般に、データのストレージ コストが高くなるほど、パブリック チェーンがデータを永続的に保存することが難しくなります。

2.3 データ読み取り速度

コスト削減を達成したら、次のステップは効率を向上させることです。これは、使用する必要があるときに DA 層からデータを迅速に呼び出す機能です。このプロセスには 2 つのステップが含まれます。1 つ目は、データを保存するノードを検索することです。このプロセスは主に、ネットワーク全体でデータの一貫性が達成されていないパブリック チェーンを対象としています。プロセスの時間消費は無視できます。第二に、ビットコイン、イーサリアム、ファイルコインを含む現在の主流のブロックチェーンシステムでは、ノードの保存方法はLeveldbデータベースです。 Leveldb では、データは 3 つの方法で保存されます。まず、すぐに書き込まれたデータは Memtable タイプのファイルに保存され、Memtable ストレージがいっぱいになると、ファイル タイプが Memtable から Immutable Memtable に変更されます。どちらのタイプのファイルもメモリに保存されますが、不変 Memtable ファイルは変更できなくなり、データの読み取りのみが可能になります。 IPFSネットワークで使用されるホットストレージは、この部分にデータを格納しますが、通常のノードのモバイルメモリはGBレベルであることが多く、書き込みが遅くなりやすいです。ノードがクラッシュしたり、その他の異常な状況が発生したりすると、メモリ内のデータは永久に失われます。データを永続的に保存したい場合は、SST ファイルの形式でソリッド ステート ドライブ (SSD) に保存する必要があります。ただし、データを読み取る場合は、最初にデータをメモリに読み取る必要があります。これにより、データのインデックス作成速度が大幅に低下します。最後に、共有ストレージを使用するシステムの場合、データを復元するには複数のノードにデータ要求を送信して復元する必要があり、このプロセスによりデータの読み取り速度も低下します。

Leveldb データの保存方法、画像出典: Leveldb-handbook

2.4 DA レイヤーの多用途性

DeFiの発展とCEXのさまざまな問題に伴い、分散型資産のクロスチェーン取引に対するユーザーの要求も高まっています。ハッシュ ロック、公証人チェーン、リレー チェーンのクロスチェーン メカニズムに関係なく、両方のチェーンで履歴データを同時に特定することは避けられません。この問題の鍵は 2 つのチェーン上のデータの分離にあり、異なる分散システムでは直接通信を実現できません。したがって、この段階では、複数のパブリック チェーンの履歴データを同じ信頼できるパブリック チェーンに保存するだけでなく、検証中にこのパブリック チェーン上のデータを呼び出すだけで済むように、DA 層の保存方法を変更することで解決策が提案されています。 。これには、DA 層がさまざまなタイプのパブリック チェーンと安全な通信方法を確立できる必要があります。これは、DA 層が優れた汎用性を備えていることを意味します。

3. DA関連技術の探索

3.1 シャーディング

  • 従来の分散システムでは、ファイルは特定のノードに完全な形で保存されるのではなく、元のデータが複数のブロックに分割され、各ノードに 1 つのブロックが保存されます。また、ブロックは 1 つのノードだけに保存​​されるわけではなく、他のノードに適切なバックアップを残します。既存の主流の分散システムでは、このバックアップの数は通常 2 に設定されます。このシャーディング メカニズムにより、単一ノードのストレージ負荷が軽減され、システムの総容量が各ノードのストレージ容量の合計まで拡張され、同時に適切なデータ冗長性によってストレージのセキュリティが確保されます。ブロックチェーンで採用されているシャーディングスキームは一般的に似ていますが、具体的な詳細は異なります。まず、ブロックチェーン内の各ノードはデフォルトでは信頼できないため、シャーディングを実装するプロセスでは、その後のデータの信頼性の判断に十分な量のデータのバックアップが必要となるため、このノードのバックアップの数は 2 よりはるかに多くなる必要があります。 。理想的には、このストレージ方式を使用するブロックチェーン システムでは、検証ノードの総数が T、シャードの数が N の場合、バックアップの数は T/N でなければなりません。 2 つ目は、ブロックの保存プロセスです。従来の分散システムではノードの数が少ないため、多くの場合、1 つのノードが複数のデータ ブロックに適応します。まず、データが一貫したハッシュ アルゴリズムを通じてハッシュ リングにマッピングされ、その後、各ノードがデータを保存します。特定の範囲で番号が付けられたブロックであり、ノードが特定のストレージ中にストレージ タスクを割り当てないことを受け入れることができます。ブロックチェーン上では、各ノードにブロックが割り当てられるかどうかは、ランダムなイベントではなく、必然的なイベントになります。このプロセスにより、元のデータとブロックおよびノー​​ド自身の情報が結合されます。データのハッシュ化は、シャード数の係数を取得することで完了します。各データが N ブロックに分割されていると仮定すると、各ノードの実際のストレージ サイズは元のサイズの 1/N にすぎません。 N を適切に設定することで、増大する TPS とノードのストレージ圧力の間のバランスを達成できます。

シャーディング後のデータ保存方法、画像出典:Kernel Ventures

3.2 DAS(データ可用性サンプリング)

DAS テクノロジーは、シャーディング ストレージ方法のさらなる最適化に基づいています。シャーディング プロセス中、ノードは単純にランダムに保存されるため、特定のブロックが失われる可能性があります。次に、断片化されたデータの場合、復元プロセス中にデータの信頼性と完全性を確認することも非常に重要です。 DAS では、これら 2 つの問題は、イレーザー コードと KZG 多項式コミットメントによって解決されます。

  • イレイザーコード: イーサリアムの膨大な数の検証ノードを考慮すると、特定のブロックがどのノードにも格納されない確率はほぼ 0 ですが、理論的にはそのような極端な状況が発生する可能性はまだあります。ストレージ損失の可能性がある脅威を軽減するために、このスキームでは、元のデータは多くの場合、ストレージのためにブロックに直接分割されず、最初に元のデータが n 次の多項式の係数にマッピングされ、次に 2n がマッピングされます。多項式点から取得され、ノードがそれらからランダムに 1 つを選択して保存します。この n 次多項式の場合、復元するには n+1 個の点だけが必要なので、ノードによってブロックの半分だけを選択するだけで済み、元のデータを復元できます。 Eraser コードにより、データ ストレージのセキュリティとネットワークのデータ回復機能が向上します。

  • KZG 多項式のコミットメント: データ ストレージの非常に重要な部分は、データの信頼性の検証です。 Eraser コードを使用しないネットワークでは、検証プロセスでさまざまな方法を使用できますが、データのセキュリティを向上させるために上記の Eraser コードを導入する場合、より適切な方法は KZG 多項式コミットメントを使用することです。 KZG 多項式コミットメントは、単一ブロックの内容を多項式の形式で直接検証できるため、多項式をバイナリ データに変換するプロセスが不要になります。検証形式は一般的にマークル ツリーに似ていますが、特定のパス ノード データは必要なく、KZG のみが必要です。ルート その真正性はブロックデータで検証できます。

3.3 DA層データの検証方法

データ検証により、ノードから呼び出されたデータが改ざんされておらず、紛失していないことが保証されます。検証プロセスに必要なデータ量と計算コストを最小限に抑えるために、DA 層では現在主流の検証手法としてツリー構造が使用されています。最も単純な形式は、完全なバイナリ ツリーの形式で記録されるマークル ツリーを使用して検証することです。検証するには、マークル ルートとサブツリーのハッシュ値を保持するだけです。検証時間は複雑です。次数は O(logN) レベルです (logN に基数が追加されない場合は、デフォルトで log2(N) になります)。検証プロセスは大幅に簡素化されましたが、データの増加に伴い、検証プロセス全体のデータ量は依然として増加しています。検証量の増加の問題を解決するために、別の検証手法である Verkle Tree が現段階で提案されています。 Verkle Tree の各ノードには、値の保存に加えて、元のノードの値とこのコミットメント証明を通じて、他の姉妹の値を呼び出すことなく、データの信頼性を迅速に検証できます。検証計算の数は Verkle Tree の深さにのみ関係し、固定定数であるため、検証速度が大幅に向上します。ただし、Vector Commitment の計算には、同じレイヤー内のすべての姉妹ノードが参加する必要があるため、データの書き込みと変更のコストが大幅に増加します。ただし、履歴データなど、永久に保存され改ざんできず、読み取りのみで書き込みは必要ないデータの場合は、Verkle Tree が非常に適しています。さらに、Merkle Tree と Verkle Tree 自体には K-ary 形式のバリアントがあり、各ノードの下のサブツリーの数が変更されている点を除き、それらの具体的なパフォーマンスの比較を以下の表に示します。

データ検証方法の時間パフォーマンスの比較、画像出典: Verkle Trees

3.4 一般的な DA ミドルウェア

ブロックチェーンエコシステムの継続的な拡大により、パブリックチェーンの数は継続的に増加しています。各パブリック チェーンにはそれぞれの分野における利点と代替不可能性があるため、レイヤー 1 パブリック チェーンを短期間に統合することはほぼ不可能です。しかし、DeFiの発展やCEXのさまざまな問題に伴い、分散型クロスチェーン取引資産に対するユーザーの要件も高まっています。したがって、クロスチェーンデータインタラクションにおけるセキュリティ問題を解決できるDAレイヤーマルチチェーンデータストレージがますます注目を集めています。ただし、さまざまなパブリック チェーンから履歴データを受け入れるために、DA レイヤーは、標準化されたストレージとデータ ストリームの検証のための分散プロトコルを提供する必要があります。たとえば、Arweave ベースのストレージ ミドルウェアである kvye は、チェーンからデータを積極的に取得し、すべてのデータを取得できます。チェーン上のデータは、データ送信プロセスの違いを最小限に抑えるために標準形式で Arweave に保存されます。比較的言えば、特定のパブリック チェーンに DA 層のデータ ストレージを提供する Layer2 は、内部共有ノードを通じてデータと対話しますが、対話のコストが削減され、セキュリティが向上しますが、比較的大きな制限があり、特定のパブリックにのみデータを提供できます。チェーンはサービスを提供します。

4. DA層ストレージソリューション

4.1 メインチ​​ェーン DA

4.1.1 クラス DankSharding

このタイプのストレージ ソリューションにはまだ明確な名前がなく、最も著名な代表はイーサリアムの DankSharding であるため、この記事ではこのタイプのソリューションを指すために DankSharding クラスを使用します。このタイプのソリューションでは、主に前述の 2 つの DA ストレージ テクノロジ、シャーディングと DAS が使用されます。まず、データがシャーディングによって適切な共有に分割され、各ノードが DAS 形式でデータ ブロックを抽出して保存します。ネットワーク全体に十分なノードがある場合は、より多くのシャード N を選択できるため、各ノードのストレージ圧力は元の 1/N にすぎず、全体のストレージ容量の N 倍の拡張が実現します。同時に、特定のブロックがどのブロックにも格納されないという極端な状況を防ぐために、DankSharding は Eraser Code を使用してデータをエンコードし、データの半分しか完全に復元できません。最後のステップはデータ検証プロセスです。このプロセスでは、Verkle ツリー構造と多項式コミットメントを使用して高速検証を実現します。

4.1.2 短期保管

メインチェーンの DA の場合、最も簡単なデータ処理方法の 1 つは、履歴データを短期的に保存することです。本質的に、ブロックチェーンは公開台帳の役割を果たし、台帳の内容への変更を永続的な保管を必要とせずにネットワーク全体で監視できるようになります。 Solana を例にとると、その履歴データは Arweave に同期されますが、メインネット ノードは過去 2 日間のトランザクション データのみを保持します。アカウント記録に基づくパブリック チェーンでは、各瞬間の履歴データがブロックチェーン上のアカウントの最終ステータスを保持します。これは、次の瞬間の変更の検証基盤を提供するのに十分です。この期間より前にデータに対する特別なニーズがあるプロジェクトの場合は、プロジェクト自体が他の分散パブリック チェーンに保存することも、信頼できるサードパーティによって保存することもできます。言い換えれば、追加のデータが必要な場合は、履歴データのストレージに料金を支払う必要があります。

4.2 サードパーティ DA

4.2.1 メインチ​​ェーン固有の DA: EthStorage

  • メインチェーン固有の DA: DA 層で最も重要なことは、データ送信のセキュリティです。現時点で最も安全なのはメインチェーンの DA です。ただし、メインチェーンストレージはストレージスペースの制限とリソースの競争にさらされるため、ネットワークデータの量が急速に増加する場合、データの長期保存を実現するにはサードパーティのDAがより良い選択肢になります。サードパーティ DA がメイン ネットワークとの互換性を高めれば、ノードの共有を実現でき、データ インタラクション プロセス中のセキュリティも向上します。したがって、セキュリティを考慮することを前提とすると、メインチェーン特化型DAのメリットは非常に大きくなります。イーサリアムを例に挙げると、メインチェーン固有の DA の基本要件は、EVM と互換性があり、イーサリアムのデータとコントラクトとの相互運用性を確保することです。代表的なプロジェクトには、Topia、EthStorage などが含まれます。その中で、EthStorage は現在、互換性の点で最もよく開発されています。EVM レベルでの互換性に加えて、Remix や Hardhat などの Ethereum 開発ツールと接続するための関連インターフェイスも特別に設定されており、互換性を実現しています。イーサリアム開発ツールレベル。

  • EthStorage: EthStorage は Ethereum から独立したパブリック チェーンですが、その上で実行されるノードは Ethereum ノードよりも優れています。つまり、EthStorage を実行するノードは、Ethereum 上のオペレーション コードを通じて同時に Ethereum を実行することもできます。 EthStorage。EthStorage は操作を実行します。 EthStorage のストレージ モデルでは、インデックス作成のために少量のメタデータのみがイーサリアム メインネット上に保持され、本質的にイーサリアムの分散データベースが作成されます。現在のソリューションでは、EthStorage は、Ethereum メイン ネットワーク上に EthStorage コントラクトを展開することで、Ethereum メイン ネットワークと EthStorage の間の対話を実装します。 Ethereum がデータを保存したい場合、コントラクト内で put() 関数を呼び出す必要があります。入力パラメータは 2 バイトの変数 key と data で、data は保存されるデータを表し、key は Ethereum ネットワーク内の位置を表します。この識別は、IPFS における CID の存在と同様とみなすことができます。 (キー、データ) データ ペアが EthStorage ネットワークに正常に保存されると、EthStorage は kvldx を生成し、Ethereum 上のキーに対応する Ethereum メイン ネットワークに返します。この値は EthStorage 上のデータのストレージ アドレスに対応します。 、したがって、もともと可能です 大量のデータを保存する必要があるという問題は、単一の(キー、kvldx)ペアを保存するようになり、イーサリアムメインネットのストレージコストが大幅に削減されます。以前に保存されたデータを呼び出す必要がある場合は、EthStorage の get() 関数を使用してキー パラメーターを入力する必要があります。Ethereum に保存された kvldx を通じて EthStorage 上のデータをすばやく検索できます。

EthStorage 契約、画像出典: Kernel Ventures

  • ノードが具体的にどのようにデータを保存するかという点では、EthStorage は Arweave モデルを利用しています。まず、ETH からの多数の (k, v) ペアがシャーディングされます。各シャーディングには、固定数の (k, v) データ ペアが含まれます。また、各 (k, v) ペアの特定のサイズにも制限があります。このようにして、ストレージ報酬プロセスにおけるマイナーの後続のワークロードの公平性が保証されます。報酬を発行するには、まずノードにデータが保存されているかどうかを確認する必要があります。このプロセス中、EthStorage はシャーディング (TB レベルのサイズ) を多くのチャンクに分割し、検証のために Ethereum メイン ネットワーク上にマークル ルートを保持します。次に、マイナーはまず、EthStorage 上の前のブロックのハッシュを使用してランダム アルゴリズムを通じていくつかのチャンクのアドレスを生成するためのノンスを提供する必要があります。マイナーは、シャーディング全体を実際に保存していることを証明するために、これらのチャンクのデータを提供する必要があります。しかし、このノンスは任意に選択することはできません。そうでない場合、ノードは保存されているチャンクにのみ対応する適切なノンスを選択し、検証に合格することになります。したがって、このノンスは、生成されたチャンクの難易度値が混合後にネットワーク要件を満たすことができるようなものでなければなりません。ハッシュとノンスおよびランダムアクセス証明を送信した最初のノードのみが報酬を取得できます。

4.2.2 モジュラー DA: Celestia

  • ブロックチェーン モジュール: この段階では、レイヤー 1 パブリック チェーンによって実行する必要があるトランザクションは、主に次の 4 つの部分に分かれています。 (1) ネットワークの基礎となるロジックを設計し、特定の方法で検証ノードを選択し、ブロックを書き込み、割り当てます。ネットワーク保守者への報酬; (2) トランザクションをパッケージ化して処理し、関連事項を公開する; (3) チェーンにアップロードされるトランザクションを検証し、最終ステータスを決定する; (4) ブロックチェーン上に履歴データを保存および維持する。完成したさまざまな機能に応じて、ブロックチェーンをコンセンサス層、実行層、決済層、データ可用性層 (DA 層) の 4 つのモジュールに分割できます。

  • モジュール型ブロックチェーン設計: 長い間、これら 4 つのモジュールはパブリック チェーンに統合されてきました。このようなブロックチェーンは単一ブロックチェーンと呼ばれます。この形式はより安定しており、保守が簡単ですが、単一のパブリック チェーンに大きな負担がかかります。実際の運用中、これら 4 つのモジュールは相互に制約し、パブリック チェーンの限られたコンピューティング リソースとストレージ リソースをめぐって競合します。たとえば、処理層の処理速度を向上させると、データ可用性層に大きなストレージ圧力がかかります。実行層のセキュリティを確保するには、より複雑な検証メカニズムが必要になりますが、トランザクションの処理速度は遅くなります。したがって、パブリック チェーンの開発では、これら 4 つのモジュール間のトレードオフに直面することがよくあります。パブリック チェーンのパフォーマンス向上のボトルネックを突破するために、開発者はモジュール式ブロックチェーン ソリューションを提案しました。モジュラー ブロックチェーンの中心となるアイデアは、上記の 4 つのモジュールのうち 1 つ以上を分離し、それらを別のパブリック チェーンに実装することです。このようにして、パブリック チェーンは、トランザクション速度またはストレージ容量の向上のみに重点を置くことができ、欠点によるブロックチェーン全体のパフォーマンスに対する以前の制限を打ち破ることができます。

  • モジュラー DA: DA レイヤーをブロックチェーン ビジネスから分離し、パブリック チェーンに引き渡す複雑な方法は、レイヤー 1 の増大する履歴データに対する実現可能なソリューションと考えられています。現段階ではこの分野の探索はまだ初期段階にあり、現時点で最も代表的なプロジェクトは Celestia です。具体的な保存方法に関しては、Celestia は Danksharding の保存方法を参考にしています。これもデータを複数のブロックに分割し、各ノードが保存用の部分を抽出し、KZG 多項式コミットメントを使用してデータの整合性を検証します。同時に、Celestia は高度な 2 次元 RS 消去コードを使用して元のデータを k*k 行列の形式で書き換えますが、最終的に復元できるのは元のデータの 25% だけです。ただし、データ シャーディング ストレージは基本的に、ネットワーク ノード全体のストレージ プレッシャーに合計データ ボリュームの係数を乗算するだけで、ノードのストレージ プレッシャーとデータ ボリュームは依然として直線的な増加を維持します。レイヤ 1 がトランザクション速度を向上させ続けるにつれて、ノードのストレージ負荷が依然として許容できない重大なレベルに達する日が来る可能性があります。この問題を解決するために、Celestia では IPLD コンポーネントが処理のために導入されています。 k*kマトリックスのデータはCelestia上に直接保存されるのではなく、LL-IPFSネットワーク上に保存され、IPFS上のデータのCIDコードのみがノード内に保持されます。ユーザーが履歴データを要求すると、ノードは対応する CID を IPLD コンポーネントに送信し、元のデータはこの CID を通じて IPFS 上で呼び出されます。データが IPFS 上に存在する場合は、IPLD コンポーネントおよびノー​​ドを介して返されます。データが存在しない場合、データは返されません。

Celestia データの読み取り方法、画像ソース: Celestia Core

  • Celestia: Celestia を例に挙げると、イーサリアムのストレージ問題の解決におけるモジュラー ブロックチェーンの応用を垣間見ることができます。 Rollup ノードは、パッケージ化され検証されたトランザクション データを Celestia に送信し、そのデータを Celestia に保存します。最終的に、Rollup ノードはストレージ領域のサイズに応じてローリングされます。対応する tia トークンが保管料として Celestia に支払われます。 Celstia のストレージは、EIP4844 と同様の DAS および消去コードを利用しますが、EIP4844 の多項式消去コードはアップグレードされ、ストレージのセキュリティを再度アップグレードするために 25% のフラクチャのみが使用されます。トランザクションデータ全体。これは本質的にストレージコストが低い単なる POS パブリックチェーンであり、イーサリアムの履歴データストレージの問題を解決するために使用する場合、Celestia と連携するには他の多くの特定のモジュールが必要になります。たとえば、ロールアップに関して言えば、Celestia 公式 Web サイトで強く推奨されているロールアップ モードは Sovereign Rollup です。 Layer2 の一般的なロールアップとは異なり、トランザクションの計算と検証のみを行います。つまり、実行層の操作が完了します。ソブリンロールアップには実行と決済のプロセス全体が含まれており、Celestia の全体的なセキュリティがイーサリアムよりも弱い場合、この措置により全体のトランザクションプロセスのセキュリティを最大化できます。イーサリアムのメインネットワークであるセレスティアから呼び出されるデータの安全性を確保するという観点から、現在最も主流となっているソリューションは量子重力ブリッジスマートコントラクトです。 Celestia に保存されているデータについては、マークル ルート (データの可用性の証明) が生成され、イーサリアム メイン ネットワークの量子重力ブリッジ コントラクト上に保持されます。イーサリアムがセレスティア上の履歴データを呼び出すたびに、そのハッシュ結果が比較されます。マークルルートとの比較が行われ、一致する場合は、実際の履歴データであることを意味します。

4.2.3 パブリックチェーンDAの保存

メインチェーン DA の技術原則に関しては、シャーディングに似た多くのテクノロジーがストレージ パブリック チェーンから借用されています。サードパーティ DA の中には、ストレージ パブリック チェーンを直接使用して一部のストレージ タスクを完了するものもあります。たとえば、Celestia の特定のトランザクション データは LL-IPFS ネットワーク上に配置されます。サードパーティ DA ソリューションでは、レイヤー 1 のストレージ問題を解決するために別のパブリック チェーンを構築することに加えて、より直接的な方法は、ストレージ パブリック チェーンをレイヤー 1 に直接接続して、膨大な履歴データをレイヤー 1 に保存することです。高性能ブロックチェーンの場合、履歴データの量はさらに大きくなり、フルスピードで実行すると、高性能パブリック チェーン Solana のデータ量は 4 PG に近くなり、通常のノードのストレージ範囲を完全に超えます。 Solana が選択したソリューションは、分散ストレージ ネットワーク Arweave に履歴データを保存し、検証のためにメイン ネットワーク ノードに 2 日分のデータのみを保持するというものです。保存されたプロセスのセキュリティを確保するために、Solana と Arweave Chain はストレージ ブリッジ プロトコルである Solar Bridge を特別に設計しました。 Solana ノードによって検証されたデータは Arweave に同期され、対応するタグが返されます。このタグを通じてのみ、Solana ノードはいつでも Solana ブロックチェーンの履歴データを表示できます。 Arweave では、すべてのネットワーク ノードがデータの一貫性を維持し、これをネットワーク操作に参加するためのしきい値として使用する必要はなく、代わりに報酬ストレージが採用されます。まず第一に、Arweave はブロックの構築に従来のチェーン構造を使用せず、グラフ構造に似ています。 Arweave では、新しいブロックは前のブロックを指すだけでなく、生成されたブロック Recall Block もランダムに指します。リコール ブロックの特定の場所は、前のブロックのハッシュ結果とそのブロックの高さによって決まります。リコール ブロックの場所は、前のブロックがマイニングされるまで不明です。ただし、新しいブロックを生成する過程で、ノードは POW メカニズムを使用して指定された難易度のハッシュを計算するためのリコール ブロック データを持っている必要があります。その難易度を満たすハッシュを計算した最初のマイナーのみが報酬を得ることができます。これにより、マイナーはできるだけ多くの履歴データを保存するようになります。同時に、特定の履歴ブロックを保存する人が少なければ少ないほど、難易度を満たすナンスを生成する際のノードの競合相手が少なくなり、マイナーがネットワークに保存するブロックの数が減ります。最後に、ノードが Arweave にデータを永続的に保存することを保証するために、WildFire のノード スコアリング メカニズムが導入されています。ノードはより多くの履歴データをより速く提供できるノードと通信する傾向がありますが、評価の低いノードは最新のブロック データやトランザクション データをできるだけ早く取得できないことが多く、そのため POW 競争を利用できません。

Arweave ブロック構築法、画像出典: Arweave Yellow-Paper

5. 総合比較

次に、DA パフォーマンス指標の 4 つの側面に基づいて、5 つのストレージ ソリューションの長所と短所を比較します。

  • セキュリティ: データ セキュリティの問題の最大の原因は、データ送信プロセス中に発生する損失と、クロスチェーン プロセスでは 2 つのパブリック チェーンの独立性とステータスにより、データ送信のセキュリティが非常に高くなります。最も被害が大きかった地域。さらに、現在専用の DA レイヤーを必要とするレイヤー 1 には強力なコンセンサス グループが存在することが多く、それ自体のセキュリティは通常のストレージ パブリック チェーンよりもはるかに高くなります。したがって、メインチェーン DA ソリューションはより高いセキュリティを備えています。データ送信のセキュリティを確保したら、次のステップは通話データのセキュリティを確保することです。トランザクションを検証するために使用される短期間の履歴データのみを考慮すると、DankSharding のようなソリューションでは、同じデータがネットワーク全体によってバックアップされます。データ バックアップの平均数はわずか 1/N です。ネットワーク全体のノード数が増えると、データの冗長性が高くなり、データが失われる可能性が低くなり、検証中により多くの参照サンプルを提供できます。したがって、一時ストレージの方が比較的データのセキュリティが高くなります。サードパーティDAソリューションでは、メインチェーン固有のDAはメインチェーンとのパブリックノードを使用し、クロスチェーンプロセス中にこれらの中継ノードを介してデータを直接送信できるため、他のDAソリューションに比べて安全性が比較的高くなります。 。

  • ストレージ コスト: ストレージ コストに影響を与える最大の要因は、データの冗長性の量です。メインチェーン DA の短期ストレージ ソリューションでは、ネットワーク ノード全体のデータ同期の形式で保存されます。新しく保存されたデータはすべてネットワーク ノード全体でバックアップされる必要があり、これにはストレージ コストが最も高くなります。ストレージ コストが高いため、この方法は高 TPS ネットワークでの一時ストレージにのみ適していることがわかります。 2つ目はシャーディングの保存方法で、メインチェーンでのシャーディングとサードパーティDAでのシャーディングが含まれます。メイン チェーンにはより多くのノードが含まれることが多いため、対応するブロックにはより多くのバックアップも含まれるため、メイン チェーンのシャーディング ソリューションのコストは高くなります。ストレージ コストが最も低いのは、報酬ストレージ方式を採用したスト​​レージ パブリック チェーン DA です。この方式では、データの冗長性の量は一定の値を中心に変動することがよくあります。同時に、動的調整メカニズムもストレージパブリックチェーンDAに導入され、データセキュリティを確保するための報酬を増加させることで、バックアップデータの保存量を減らすノードを引き寄せます。

  • データ読み取り速度: データのストレージ速度は、ストレージスペース内のデータの保存場所、データインデックスパス、ノード内のデータの分散によって主に影響を受けます。中でもノード上のデータの保存場所は速度に大きく影響します。データをメモリやSSDに保存すると読み出し速度が数十倍も異なる場合があります。パブリック チェーン DA の保存には SSD ストレージがよく使用されます。これは、このチェーンの負荷には DA 層のデータだけでなく、ユーザーがアップロードしたビデオや写真など、メモリ使用量の多い個人データも含まれるためです。ネットワークがストレージ スペースとして SSD を使用しない場合、膨大なストレージ負荷に耐えて長期ストレージのニーズを満たすことが困難になります。次に、メモリを使用してデータを保存するサードパーティ DA とメインチェーン DA の場合、サードパーティ DA はまずメイン チェーンで対応するインデックス データを検索し、次にそのインデックス データをチェーン全体で 3 番目の DA に転送する必要があります。 -party DA を送信し、ストレージ ブリッジ データを通じてそれを返します。対照的に、メインチェーン DA はノードからデータを直接クエリできるため、データ取得速度が速くなります。最後に、メイン チェーン DA 内で、シャーディング メソッドでは複数のノードから Block を呼び出し、元のデータを復元する必要があります。したがって、断片化ストレージを使用しない短期ストレージと比較すると、速度が遅くなります。

  • DA 層の普遍性: ストレージ スペースが不十分なパブリック チェーン上のデータを、ストレージ スペースが不十分な別のパブリック チェーンに転送することは不可能であるため、メイン チェーンの DA ユニバーサル性はゼロに近いです。サードパーティ DA では、ソリューションの多用途性と特定のメインチェーンとの互換性は相反する指標です。たとえば、特定のメインチェーン向けに設計されたメインチェーン固有の DA ソリューションでは、パブリック チェーンに適応するためにノード タイプとネットワークのコンセンサス レベルで多くの改善が行われているため、これらの改善は通信時に役割を果たします。他のパブリックチェーンでは大きな障害になります。サードパーティ DA 内では、ストレージ パブリック チェーン DA は、モジュラー DA と比較して、汎用性の点で優れたパフォーマンスを発揮します。ストレージ パブリック チェーン DA には、より大規模な開発者コミュニティとより多くの拡張機能があり、さまざまなパブリック チェーンの条件に適応できます。同時に、ストレージ パブリック チェーン DA は、他のパブリック チェーンから送信された情報を受動的に受信するのではなく、パケット キャプチャを通じてより積極的にデータを取得します。したがって、独自の方法でデータをエンコードし、データ ストリームの標準化されたストレージを実現し、さまざまなメイン チェーンからのデータ情報の管理を容易にし、ストレージ効率を向上させることができます。

ストレージ ソリューションのパフォーマンス比較、画像出典: Kernel Ventures

6. まとめ

現在のブロックチェーンは、Crypto からより包括的な Web3 への変革を遂げています。このプロセスは、ブロックチェーン上に豊富なプロジェクトをもたらすだけではありません。 Gamefi や Socialfi プロジェクトのエクスペリエンスを確保しながら、Layer1 での非常に多くのプロジェクトの同時動作に対応するために、Ethereum に代表される Layer1 では、TPS を向上させるために Rollup や Blobs などの手法が採用されています。新しいブロックチェーンの中には、高性能なブロックチェーンも増えています。ただし、TPS が高くなると、パフォーマンスが向上するだけでなく、ネットワーク上のストレージの負荷も大きくなります。膨大な履歴データについては、オンチェーンストレージの圧力の増加に適応するために、メインチェーンとサードパーティに基づくさまざまな DA 手法が現在提案されています。それぞれの改善方法には長所と短所があり、状況に応じて適用可能性も異なります。

決済に焦点を当てたブロックチェーンには、履歴データのセキュリティに対する要件が非常に高く、特に高い TPS は追求されません。この種のパブリックチェーンがまだ準備段階であれば、DankShardingのようなストレージ方式を採用することで、セキュリティを確保しながらストレージ容量の大幅な増加を実現できます。ただし、ビットコインのような既に形を成しノード数が多いパブリックチェーンの場合、コンセンサス層での性急な改善は大きなリスクを伴うため、より安全性の高いメインチェーン専用のDAをオフチェーンストレージに設置する必要があります。セキュリティとストレージの問題のバランスをとるために使用できます。しかし、ブロックチェーンの機能は静的なものではなく、常に変化していることに注目する価値があります。たとえば、イーサリアムの初期の機能は主に、スマート コントラクトを使用した決済と資産およびトランザクションの単純な自動処理に限定されていましたが、ブロックチェーンの状況が拡大し続けるにつれて、さまざまな Socialfi および Defi プロジェクトがイーサリアムの開発に徐々に追加されました。より包括的な方向へ。最近、ビットコインの登録エコロジーの爆発的な増加に伴い、ビットコインネットワークの取引手数料は8月以来20倍近くに高騰しました。これは、現段階でのビットコインネットワークの取引速度が取引需要を満たすことができず、トレーダーができることは20倍近くに達していることを反映しています。手数料を上げることで、取引ができるだけ早く処理されるようになります。現在、ビットコインコミュニティは、高い手数料と遅い取引速度を受け入れるか、それともネットワークセキュリティを低下させて取引速度を上げるが、支払いシステムの本来の目的を裏切るか、トレードオフを行う必要がある。ビットコインコミュニティが後者を選択した場合、データプレッシャーの増大に直面して、対応するストレージソリューションも調整する必要があります。

ビットコインのメインネット取引手数料は変動します、画像出典: OKLINK

包括的な機能を備えたパブリック チェーンの場合、TPS の追求がより高度になり、履歴データの増加はさらに大きくなります。DankSharding のようなソリューションを採用することで、長期的には TPS の急速な成長に適応するのは困難です。したがって、より適切な方法は、データをサードパーティの DA に移行して保存することです。このうち、メインチェーン固有の DA は互換性が最も高く、単一のパブリックチェーンのストレージの問題だけを考慮すると、より多くの利点がある可能性があります。しかし、レイヤー 1 パブリック チェーンが繁栄している今日、クロスチェーン資産転送とデータ インタラクションは、ブロックチェーン コミュニティの共通の追求となっています。ブロックチェーンエコシステム全体の長期的な発展を考慮すると、異なるパブリックチェーンの履歴データを同じパブリックチェーンに保存することで、データ交換および検証プロセスにおける多くのセキュリティ問題を排除できるため、モジュラーDAとストレージの違いは明確になります。パブリックチェーン DA の方法の方が良い選択かもしれません。高い汎用性を前提として、モジュラー DA はブロックチェーン DA 層サービスの提供に重点を置き、より洗練されたインデックス データ管理の履歴データを導入し、さまざまなパブリック チェーン データを合理的に分類し、パブリック チェーン データを保存することができます。ただし、上記のソリューションでは、既存のパブリック チェーンのコンセンサス層を調整するコストが考慮されていません。このプロセスは非常に危険であり、問​​題が発生するとシステムの脆弱性が生じ、パブリック チェーンがコミュニティのコンセンサスを失う可能性があります。したがって、ブロックチェーンの拡張プロセス中の過渡的なソリューションである場合は、最も単純なメインチェーンの一時ストレージの方が適している可能性があります。最後に、上記の議論は実際の運用中のパフォーマンスに基づいていますが、特定のパブリック チェーンの目標が、独自のエコシステムを開発し、より多くのプロジェクト関係者や参加者を引き付けることである場合、そのパブリック チェーンは、独自の支援と資金提供を受けたプロジェクトを好む場合もあります。財団。 。たとえば、全体的なパフォーマンスがパブリック チェーン ストレージ ソリューションと同等か、それよりわずかに低い場合、イーサリアム コミュニティは、イーサリアム エコシステムの開発を継続するために、EthStorage などのイーサリアム財団がサポートするレイヤー 2 プロジェクトも利用する傾向があります。

全体として、今日のブロックチェーンの機能はますます複雑になっており、これにより必要なストレージ容量も増大しています。十分なレイヤー 1 検証ノードがある場合、ネットワーク全体のすべてのノードで履歴データをバックアップする必要はありません。バックアップの数が特定の値に達した場合にのみ、相対的なセキュリティが保証されます。同時に、パブリックチェーンの分業はますます細かくなり、レイヤー1はコンセンサスと実行を担当し、ロールアップは計算と検証を担当し、データストレージには別のブロックチェーンが使用されます。各部品は、他の部品の性能に制限されることなく、特定の機能に集中できます。ただし、履歴データをどのくらいの量またはどの割合で保存すれば、セキュリティと効率のバランスを実現できるか、また、異なるブロックチェーン間で安全な相互運用性を確保するにはどうすればよいか、これはブロックチェーン開発者が考え続けなければならない問題です。投資家にとっては、イーサリアムのメインチェーン固有の DA プロジェクトに注目することができます。イーサリアムにはこの段階ですでに十分な支持者がおり、その影響力を拡大するために他のコミュニティに依存する必要がないからです。さらに必要なのは、独自のコミュニティを改善および発展させ、より多くのプロジェクトをイーサリアムエコシステムに誘致することです。ただし、Solana や Aptos など、後追いの立場にあるパブリック チェーンの場合、単一チェーン自体がそれほど完全なエコロジーを持っていないため、他のコミュニティと協力して巨大なクロスチェーン エコロジーを構築する傾向が強いかもしれません。影響力を拡大するため。したがって、新興の Layer1 では、一般的なサードパーティ DA がより注目に値します。

Kernel Ventures は、研究開発コミュニティが主導する仮想通貨ベンチャー キャピタル ファンドで、インフラストラクチャ、ミドルウェア、dApps、特に ZK、ロールアップ、DEX、モジュラー ブロックチェーン、および数十億の仮想通貨ユーザー向けの垂直領域に焦点を当てた 70 を超える初期段階の投資を行っています。アカウントの抽象化、データの可用性、スケーラビリティなどの将来性。過去 7 年間、私たちは世界中のコア開発コミュニティと大学ブロックチェーン協会の成長を支援することに取り組んできました。

参考文献

  1. Celestia: モジュラーブロックチェーンの星空: https://foresightnews.pro/article/detail/15497

  2. DHT の使用法と今後の取り組み:https://github.com/celestiaorg/celestia-node/issues/11

  3. Celestia-core:https://github.com/celestiaorg/celestia-core

  4. Solana ラボ:https://github.com/solana-labs/solana?source=post_page-----cf47a61a9274--------------------------------

  5. SOLAR Bridge の発表:https://medium.com/solana-labs/announcing-the-solar-bridge-c90718a49fa2

  6. leveldb ハンドブック:https://leveldb-handbook.readthedocs.io/zh/latest/sstable.html

  7. Kuszmaul J. Verkle 木[J]. Verkle 木、2019、1: 1.:https://math.mit.edu/research/highschool/primes/materials/2018/Kuszmaul.pdf

  8. アルウィーヴ公式サイト:https://www.arweave.org/

  9. Arweave イエロー ペーパー: https://www.arweave.org/ yellow-paper.pdf