Layer2のデータの可用性とは一体何を指すのでしょうか?
著者: ZKCross
原文タイトル:《Layer-2ブロックチェーンにおけるデータの可用性》
翻訳:麟奇,链捕手
ブロックチェーンデータの可用性
最新のイーサリアムのシャーディングロードマップは、実行のシャーディングではなくデータのシャーディングを優先し、イーサリアムのデータスループットを大幅に向上させます。さらに、モジュラー型ブロックチェーンは、Rollup、volitions、validity、データの可用性ソリューションを深く研究しています。これらはすべて、ブロックチェーンデータの可用性に関する最新の議論とトレンドです。
ブロックチェーンと暗号通貨の分野に関与する人々は、この場合のブロックチェーンデータの可用性が何を意味するのかに興味を持つかもしれません。
「ブロックチェーンにおけるデータの可用性」という用語は、多くのブロックチェーン拡張ソリューションが直面する特定の問題を指します。これは、ブロックチェーンノードが新しいブロックを生成する方法と、これらの新しいブロックに含まれるすべてのデータがネットワークにブロードキャストされているかどうかを検証します。問題は、ブロックの生産者がブロックに含まれるすべてのデータを公開しない場合、そのブロックに悪意のある取引が隠されているかどうかを誰も発見できないことです。データの可用性がブロックチェーン上でどのように機能するかを十分に理解するためには、ブロックチェーン内のブロックの構成とブロックチェーンノードの機能を理解することが重要です。
ブロックチェーンノードの入門
ブロックチェーンのデータ構造は、ブロックチェーンを含み、ブロックチェーン内の各ブロックは2つの部分で構成されています:ブロックヘッダーとトランザクションデータリスト。
- ブロックヘッダーはブロックのメタデータであり、トランザクションのマークルルートなど、ブロックに関する基本情報を含みます。
- トランザクション部分のブロックには、実際のトランザクションが含まれています。
ブロックチェーンネットワークには、フルノード(検証ノード)とライトクライアントの2種類のノードがあります。ブロックチェーンは、特にロールアップとレイヤー2チェーンにおいてデータの可用性をサポートする必要があります。
データの可用性の問題
データの可用性の問題は、ブロックチェーンの三元悖論:セキュリティ、スケーラビリティ、分散化に関連しています。
三難困難は、一般的に、任意の時点で分散型ネットワークが分散化、セキュリティ、スケーラビリティの3つの利点のうちの2つしか提供できないと考えられていることを指します。スケーラビリティ、セキュリティ、分散化は相互に作用しています。取引が成立する前に、ネットワークはその合法性について合意する必要があります。システムが大きい場合、合意に達するプロセスには時間がかかることがあります。
データの可用性に対する攻撃
悪意のあるノードがブロックヘッダーをブロードキャストし、誤った取引を含む部分的なブロックを保持する場合、ブロックチェーンデータの可用性攻撃が発生します。 完全なノードは、ブロックチェーン全体をダウンロードして保存することができますが、特定のデータが利用できないことを知っていても、リソースが限られていて全体のブロックチェーンデータにアクセスできないライトノードに対してこれを証明する正式なメカニズムが欠けています。したがって、サイドチェーンやシャーディングブロックチェーン戦略は、データの可用性攻撃に対して脆弱です。サイドチェーンネットワーク(またはシャーディング)上の悪意のあるノードは、ブロックのハッシュを信頼できるブロックチェーンに提出し、他のノードにこの攻撃のブロックデータを転送しません。
データの可用性攻撃は、ブロックチェーン分野で広く知られている問題であり、最初はブロックチェーンのライトクライアントの文脈で提起されました。Vitalikがその普及を促進しました。ライトノードが行うのは、ブロックヘッダーを保存し、powの要件を検証することだけです。彼らはフルノードに依存してブロックを検証し、不正なブロックに対して詐欺の証明を提供します。
ライトノードの場合、データの可用性攻撃は致命的ではありません。通常、マイナーも完全なノードに対して操作を行います。ブロックが利用できない場合、彼らはそれを無視し、同時にマイニングを行います(つまり、その親ブロック上で)。ブロックがアクセスできない限り、誠実なマイナーはそのブロックに基づいて構築することはありません。最終的には、最も長いチェーンから外れます。この時、ライトノードはそのようなブロックを自動的に無視します。セカンダリブロックチェーンやシャーディングに関わる場合、この攻撃はさらに重要視されるべきです。
重要な違いは、ブロックチェーン(またはシャーディング)以外に、ほとんどの誠実なマイナー/完全なノードが欠けている可能性があることです。したがって、サイドチェーン(またはシャーディング)内の参加者は、欠落しているブロックを分散台帳に統合するかどうかを決定するための統一されたシステム的な方法を持っていません。
データの可用性の問題
ブロックチェーンにおけるデータの可用性の問題は、次の質問を提起します:ノードは、新しいブロックを作成する際に、その中に含まれるすべてのデータが本当にネットワークにブロードキャストされているかどうかをどのように確認するのでしょうか?ブロックチェーンネットワーク内のピアノードは、新たに提案されたブロックに関連するすべてのデータが本当に利用可能であるかどうかをどのように確認するのでしょうか?
例えば、BobをZK-Rollup (ZKR)のオペレーターと見なします。彼はビットコイン上でZK証明を検証します。彼はすべての取引データをビットコインに転送していないにもかかわらず、彼の証明がロールアップ内のすべての状態変更の有効性を確認している場合、ロールアップのユーザーは彼らの現在の残高を知らない可能性があります。さらに、ZKの特性により、既存の条件を洞察することはできません。
データの可用性攻撃の解決策
モジュラー型ブロックチェーンでは、検証とデータの可用性の切り離しにより、モジュラー型ブロックチェーン内でデータの可用性を確保するための独自の方法が重要です。ロールアップは取引証明を提供し、オフチェーンで新しい状態を計算しますが、データの可用性の問題を防ぐために、特定の取引データをオンチェーンで公開する必要があります。ZKロールアップは、主に3つの重要なデータビットをメインチェーンに公開します:
- 新しい状態の暗号的コミットメント(ルートハッシュ)
- 新しい状態が初期状態に有効な取引を適用した結果であることを確認する暗号的証明(ZK-SNARKなど)。
- バッチ内の各取引に対してcalldataの形式で提供される小さなデータ
暗号的証明のゼロ知識特性は、取引と状態の変化が合法であることを確認しますが、取引自体に関する情報は提供しません。完全なノードは、取引を検証し、新しい状態のルートを再計算するために取引データをもはや必要としません。しかし、十分な取引データがメインチェーンにブロードキャストされない場合を考えてみましょう。この場合、L1上のノードはロールアップの現在の状態を検出できず、これは通常特定の状況でのみ(しかし依然として重要)必要です。
ブロックチェーンのデータ可用性層
ブロックチェーンのデータ層は、ブロックチェーンのデータ構造と物理ストレージの両方に使用されます。 ブロックチェーン台帳は、相互接続されたブロックのリストまたはマークルツリーを使用して設計され、これらのブロックリストは非対称暗号方式で暗号化されています。データ層は次の部分で構成されています:
ブロック:ブロックは、取引をグループ化し、それらをネットワークノード間で分配するためのデータ構造です。マイニングはブロックを生成するプロセスです。各ブロックには、ブロックの合法性を検証できるメタデータであるブロックヘッダーがあります。
マークルツリーと取引:ブロックチェーンでは、取引はマークルツリーの一部として維持されます。マークルツリーは、ブロック内のすべての取引のデジタルフィンガープリントを生成することによって、完全な取引セットを要約し、ユーザーが特定の取引が含まれているかどうかを確認できるようにします。各リーフノードには取引データがあり、各非リーフノードにはその前のハッシュ値のハッシュ値が含まれています。マークルツリーは二進法であり、奇数のリーフノードが必要です。奇数の取引がある場合、最終的なハッシュを1回コピーして偶数のリーフノードを生成します。
ネットワーク層:ブロックチェーンは分散型ネットワークを使用し、誰でもブロックチェーン上のすべての情報をダウンロードして相互作用できるようにします。ピアツーピア(P2P)ネットワークは、ノード間で取引を分配/ブロードキャストします。ブロックチェーンプラットフォームは、主に3種類のネットワークを利用します:中央集権型、分散型、分散ネットワーク。
物理層:この層には、サーバー、エッジノード、IoTデバイスが含まれ、これらはブロックチェーンネットワーク上のノードとして機能します。これらは通常、ピアツーピアネットワークを介して接続されています。ノードは、ネットワークに接続され、IPアドレスを持つ限り、コンピュータ、電話、プリンタなどの任意のアクティブな電子デバイスである可能性があります。
仮想層:ハードウェアの上に位置する仮想層は、ハードウェアとリソースを仮想マシンに割り当てるために使用されます。
コンセンサス層:この層は、ネットワーク内のノードがブロードキャストされた取引に対して合意を形成する方法を指定するネットワークルールを実施する責任があります。
インセンティブ層:この層は、分散型ネットワーク内のノードが合意に達するために努力する活動に対してインセンティブを得ることに関与しています。この層が使用されるかどうかは、ブロックチェーンプロトコルで使用されるコンセンサスメカニズムによって決まります。
コントラクト層:サービスとオプションのコンポーネントで構成され、ブロックチェーンプラットフォームがデータフィード、スマートコントラクト、オラクル、DAO、状態チャネルなどの他の技術と統合できるようにします。
API層:ブロックチェーンの上にアプリケーションインターフェースを提供し、第三者アプリケーションが台帳やスマートコントラクトと通信するメカニズムを提供します。
アプリケーション層:この層は、ブロックチェーンの上にアプリケーションを作成できる特徴を持っています。
従来のデータ可用性ソリューション
従来のデータ可用性ソリューションは、ブロックチェーンの基盤となるデータ転送プロトコル、ブロックデータ構造、コンセンサスアルゴリズム、インセンティブメカニズムなどの基本的なブロックチェーンプロトコルを変更することによって、スケーラビリティを向上させることを目的としています。これらのソリューションには、Segregated Witness、DAG、シャーディング、コンセンサスなどのLayer1拡張ソリューションが含まれます。しかし、Layer2ソリューションは、アプリケーション層のオフチェーン方式でスケーラビリティを向上させることを目的としています。
Segregated Witness:プロトコルの強化機能を持ち、取引の延長性を防ぎ、ブロック容量を増加させるために展開されています。
DAG:取引はDAG内で接続され、これは1つの取引が次の取引を検証することを意味します。各ノードは多くの取引レベルで構成されています。ノードに取引が登録されると、最初に他の2つの取引を検証する必要があります。これらの2つの取引は数学的プロセスを使用して選択されます。次に、ノードは2つの取引が衝突しないことを検証する必要があります。取引を検証するために、ノードはビットコインネットワーク上の暗号的な難題(pow)を解決する必要があります。
シャーディング:ブロックチェーンは複数のチェーンにシャーディングされ、スループットを向上させることができます。各シャードには独自のブロック生産者があり、トークンを取引するために通信できます。シャーディングは、各ブロック生産者が各取引を処理するのではなく、ネットワークの処理能力を特定の取引のみを処理するシャードに分割します。したがって、非シャーディングブロックチェーンは通常、1つまたは2つの完全なノードと1つ以上のライトクライアントを持っています。シャーディングは、ネットワークリソースを異なるノードに分散させることを目的としています。
コンセンサス:コンセンサス層はブロックチェーンの存在にとって重要です。任意のブロックは、正常に機能するためにコンセンサス層に依存しています。この層は、ブロックを検証し、その進捗が一致していることを確認する責任があります。
ZKRollupsソリューション
現在、いくつかのイーサリアムLayer2ソリューション、例えばoptimistic rollups、ZK rollups、Validiumsがあります。これらのソリューションは、操作をオフチェーンに移しつつ、アプリケーションの検証とデータのオンチェーンでの可用性を確保します。オフチェーン実行に基づくアーキテクチャはスループットを向上させますが、メインチェーンが処理できるデータ量の制限を受けます。実行はオフチェーンですが、検証または争いの解決プロセスはオンチェーンで行う必要があります。取引データはイーサリアム上でcalldataとして提出され、将来の再構築のためにデータが利用可能であることを確保します。これは非常に重要です。
optimistic rollupsの場合、オペレーターは無効な取引を提出し、部分的なブロックを抑制する可能性があります。この方法では、システム内の他のフルノードは、提出された主張が正しいかどうかを検証できません。データが不足しているため、彼らは主張が無効であることを示す詐欺の証明を提供できません。
ゼロ知識に基づくロールアップの場合、ZKPの完全性は受け入れられた取引が有効であることを保証します。しかし、そのような保証が存在しても、取引をサポートするデータを開示しないことは深刻な悪影響を及ぼす可能性があります。これにより、他の検証者がシステムの現在の状態を計算できなくなり、ユーザーがシステムから排除され、彼らの残高も凍結されます。
スループットを向上させるために、操作をオフチェーンに移すことは必要ですが、データの可用性を確保するためのスケーラブルなデータホスティング層も必要です。ZKcrossのようなエコシステムを利用することで、ゼロ知識ロールアップを使用して信頼できるデータホスティングとソーティングコンポーネントを提供します。実行層には、統合されるいくつかのオフチェーンZKRollups拡張ソリューションが含まれます。私たちは現在、ZKcrossを使用して、これを実現するために必要な技術を開発しています。
オンチェーンデータ
ブロックチェーンは、ハッシュレートや取引などの他の関連活動から大量のデータを生成します。
オンチェーンデータについて話すとき、私たちは何を指しているのでしょうか?簡単に言えば、ブロックチェーンに原生的に保存されているすべてのデータがオンチェーンデータです。
オンチェーンデータは、特定のブロックチェーンネットワーク上で発生したすべての取引を指します。言い換えれば、ブロックチェーンのブロックに書き込まれたすべてのデータです。パブリックチェーンの情報は公開アクセスの特性を持っています。データは主に3つの主要な分類に分けられます。
- 各ブロックの仕様(タイムスタンプ、ガス料金、マイナー、ブロックサイズなど)
- 各取引は非常に詳細です(「送信者」と「受信者」のアドレス、取引内の送金額など)
- スマートコントラクトの呼び出しと使用
オンチェーンデータは、ブロックチェーン全体の健康状態に関する情報を提供します:ネットワークのセキュリティ、財務の完全性、透明性、利用率。この層のデータは原始的で詳細であり、ほとんど変更が必要ありません。任意のブロックチェーン検索エンジンがアクセスできます。これはネットワーク上の基本的な「ファクトシート」であり、すべての市場参加者に関連しています。
オフチェーンデータ
ビットコインユーザーにとって、オフチェーンとオンチェーンの取引にはそれぞれ利点と欠点があります。スケーラビリティはブロックチェーン技術の制限であり、オフチェーンソリューションによって解決できます。オンチェーン取引の確認時間は、ネットワークの混雑状況によって異なる場合があります。オフチェーン取引は即時に実行され、取引コストも安価であり、特定の取引はオンチェーンにされる前に費用が発生しません。オフチェーン取引のプライバシーも強化されており、取引の詳細はメインチェーンから分離されて公開されません。
いくつかのブロックチェーンツール、特にスマートコントラクトは、ブロックチェーンベースのトリガーと現実世界のデータに依存して条件を検証し、契約を実行します。例えば、土地の所有権を移転するスマート法的契約。購入に必要な資金はスマートコントラクトによってホスティングされ、この契約は現実世界の不動産の事実を検証する必要があります。実際の契約移転に関して第三者が確認できない場合、スマートコントラクトの基準はどのように満たされ、売り手の資金が解放されるのでしょうか。オフチェーンデータは、スマートコントラクトに現実世界の情報を提供し、契約と売買を成功裏に実行するために必要です。ブロックチェーンと暗号通貨が進化する中で、オフチェーンソリューションは永続的な解決策となる可能性がありますが、唯一の基準は時間だけです。
ZKCrossのような、マルチチェーンZKRollupsとクロスチェーンレイヤー技術との相互運用をサポートするプロトコルを利用することで、オンチェーンとオフチェーンデータの可用性が向上します。ZKcrossは、クロスチェーンLayer2として機能する普遍的なレイヤーを作成し、ZKCrossは複数のブロックチェーン上でグローバルな状態変化の追跡と同期を維持します。 計算を検証し、zk-snark証明を使用してマルチチェーンロールアップを行うことで、クロスチェーンの第三者の信頼性の問題とデータの可用性攻撃の問題を解決します。
まとめ
私たちは、ビットコインのエコシステムを永遠に変える巨大なパラダイムシフトの前夜にいます。ZK-Rollupsは、最も効率的な方法でイーサリアムを拡張します。このパラダイムの変化は非常に深遠であり、すべての他のL1スマートコントラクトチェーンの死を効果的に示すものとなります。スケーラビリティに関するいくつかの議論があります。数千時間の研究、実装、成功、失敗がZK-Rollupsの創造に費やされました。
もちろん、努力はまだ終わっていません。前方の道は曲がりくねっていますが、目標はこれまで以上に明確です。現在のモノリシックブロックチェーンアーキテクチャの効率は依然として驚くほど低く、制限された三元悖論の下でスループットを増加させることは、セキュリティと/または分散化を低下させることを意味します。特別なモジュラー設計により、実行を異なる実行層に分けることで、ZKロールアップのように、ブロックチェーン業界の効率を100倍から10000倍に向上させました。間違いなく、これはグローバルな普遍性に拡張し、数百万TPSに向上させる唯一の方法です。さらに、数年以内に、90%以上のブロックチェーン活動がzkRollups上で行われ、安全性や分散化に明確な影響を与えないと予想されています。