データの利用可能性の問題

初級編1/2/2024, 10:46:41 AM
この記事では、データの入手可能性の問題とそれがEthereumのスケーラビリティに与える影響について探求しています。

ブロックチェーンネットワーク内のピアが新しく提案されたブロックのすべてのデータが利用可能であることを確認する方法はありますか?そして、それはなぜ重要なのですか?

この投稿では、データの利用可能性の問題の詳細と、それがイーサリアムのスケーリングにどのように影響するかについて掘り下げます。

データの利用可能性問題とは何ですか?

データ利用可能性(DA)の問題:ブロックチェーンネットワーク内のピアが、新しい提案されたブロックのすべてのデータが実際に利用可能であることを確認する方法は何ですか?データが利用できない場合、ブロックにはブロック生成者によって隠されている悪意のあるトランザクションが含まれている可能性があります。ブロックに悪意のないトランザクションが含まれている場合でも、それらを隠すことはシステムのセキュリティを危険にさらす可能性があります。

例を挙げると、アリスがGate.ioのオペレーターであるとします。ZK-Rollup (ZKR)彼女は検証されたイーサリアム上のZK-Proofを提出します。イーサリアム上ですべての取引データを提出しない場合、彼女の証明がロールアップで行われたすべての状態遷移が有効であることを証明していても、ロールアップのユーザーは現在の口座残高について不明瞭な状態になるかもしれません。提出された証明は、そのゼロ知識性質のため、現在の状態について一切の情報を提供しません。

同様の例が存在します楽観的ロールアップ(OPR)AliceがEthereum上で主張を提出しますが、OPRの参加者はトランザクションデータが利用できないため、主張を再計算または異議を申し立てることができません。

上記のシナリオに対処するために、OPRおよびZKRの設計は、オペレーターがすべての取引の詳細を提出するよう義務付けています。イーサリアム‘calldata’として。これにより、ロールアップ内のトランザクション数が増えるにつれて、提出する必要のあるデータ量も増加し、これらのロールアップが提供できるスケーリング量が制限される可能性がありますが、短期間にDA問題を回避することができます。

さらに悪いことに、データの利用不能性は独自に帰属可能な欠陥ではありません。これは、参加者が他のピアに特定のデータチャンクが欠落していることを証明できないことを意味します。これは、BobがAliceによって提出されたブロックにデータが欠落しているとブロードキャストできるかもしれませんが、CharlieがAliceに問い合わせると、彼女がデータを提供するかもしれません。

今日、これはブロックチェーンにどのように影響しますか?

この質問に答えるために、まず最初に、Ethereumのようなブロックチェーンの一般的なブロック構造と、任意のブロックチェーンネットワークに存在するクライアントの種類を再訪してみましょう。

ブロックは主に2つの部分に分割できます:

  • ブロックヘッダー:小さなブロックヘッダーには、ブロックに含まれるトランザクションに関連するダイジェストとメタデータが含まれています。
  • ブロック本体:これにはすべての取引データが含まれ、ブロックサイズの大部分を占めています。

従来のブロックチェーンプロトコルでは、すべてのノードがフルノードと見なされ、すべてのブロックを同期させ、すべての状態遷移を検証します。 トランザクションの有効性をチェックし、ブロックを保存するためにかなりのリソースを費やす必要があります。 一方、これらのノードは無効なトランザクションを受け入れることはできません。

もう一つのノードのクラスが存在するかもしれませんが、それらはすべてのトランザクションを検証するためのリソースを持っていない(または使いたくない)かもしれません。代わりに、彼らは主にブロックチェーンの現在の状態を知りたがっており、彼らに関連するいくつかのトランザクションがチェーンに含まれているかどうかに興味を持っています。理想的には、これらの軽量クライアントは、無効なトランザクションが含まれているチェーンを追跡することからも保護されるべきです。これは、いわゆる詐欺証拠を使用することで実現できます。これらは、特定のブロック本体が無効なトランザクションを含むことを示す簡潔なメッセージです。どの完全ノードでもそのような詐欺証拠を生成でき、したがって軽量クライアントは特定の完全ノードが正直であることを信頼する必要がありません。彼らは、特定のブロックヘッダーに詐欺証拠が利用可能である場合、それを受信することを確実にするゴシップネットワークに十分に接続していることを確認するだけです。

しかし、このシステムには1つの問題があります。ブロックプロデューサーがブロックの背後にあるデータ全体を公開しない場合はどうなるでしょうか。この場合、フルノードは明らかにブロックを拒否します。なぜなら、彼らの視点では、ブロックの本体がなければ、それすらブロックではないからです。しかし、軽量クライアントはヘッダーチェーンを提示される可能性があり、データが欠落していることに気づく手段を持っていません。同時に、フルノードは詐欺証拠を生成することができません。なぜなら、詐欺証拠を作成するために必要なデータが欠落しているからです。

これを防ぐためには、軽量クライアントがデータの可用性を検証するメカニズムが必要です。これにより、データを隠すブロック生産者が軽量クライアントを説得して逃れることはできません。また、ブロック生産者にデータの一部を公開させることで、全体のネットワークが全体のブロックに共同でアクセスできるようになります。

例を使って、問題をもう少し詳しく見てみましょう。 ブロックプロデューサーのアリスがトランザクションtx1、tx2、…、txnを含むブロックBを構築したとします。 ここで、tx1が悪意のあるトランザクションであると仮定してみましょう。 tx1がブロードキャストされると、すべてのフルノードはそれが悪意のあるものであることを検証し、これをライトクライアントに詐欺の証拠として送信することができます。ライトクライアントはすぐにそのブロックが受け入れられないことを知ることができます。 しかし、もしアリスがtx1を隠したい場合、ヘッダーとtx1以外のすべてのトランザクションデータを公開します。その結果、フルノードはtx1の正当性を検証することができません。

単純な解決策は、すべての軽量クライアントが単にトランザクションを無作為にサンプリングし、サンプルが利用可能であることを見つけた場合、ブロックが利用可能であると確信できると考えるかもしれません。軽量ノードに任意の1つのトランザクションを一様に無作為にクエリを行わせます。軽量クライアントがtx1をクエリする確率は1/nです。したがって、圧倒的な確率で、アリスは軽量クライアントを悪意のあるトランザクションを受け入れるようにだますことができます。つまり、ほとんどの軽量クライアントがだまされるでしょう。非属性性のため、フルノードはどのような方法でもtx1が利用できないことを証明することができません。残念ながら、サンプル数を増やしても、これを大幅に改善することはできません。

では、これについてどうしますか?

この問題の解決策は、ブロックに冗長性を導入することにあります。一般的な符号理論や特に消去符号化に関する豊富な文献が存在し、この問題に役立つことができます。

要するに、イレイジャーコーディングを使用すると、データのnチャンクを2nチャンクに拡張でき、その際、2nのうちのn個で元のデータを再構築するのに十分であるようにします(パラメータは調整可能ですが、ここでは単純化のためにこれを考慮しています)。

ブロックプロデューサーにトランザクションtx1、tx2、...、txnを消去符号化するように強制すれば、単一のトランザクションを隠すためには、nを隠す必要があります+1データチャンクは任意のnがトランザクションセット全体を構築するのに十分です。この場合、一定の数のクエリにより、ライトクライアントは基礎となるデータが実際に利用可能であることを非常に高い確信を持つことができます。

うわー、これがそれなの?

No. この単純なトリックによって隠す作業がより困難になりますが、ブロックプロデューサーが故意に消去符号化を誤った方法で行う可能性はまだあります。ただし、フルノードはこの消去符号化が正しく行われたかどうかを検証し、そうでない場合はライトクライアントにこれを証明できます。これは、悪意のあるトランザクションの場合と同様に、別の種類の不正証明です。興味深いことに、ライトクライアントのもとには、ブロックが悪意のある場合に不正証明を受け取ることを確実にするために、単一の誠実なフルノードの隣人が必要です。これにより、ライトクライアントが非常に高い確率で悪意のあるトランザクションのないチェーンにアクセスできることが保証されます。

しかし、問題があります。単純に行うと、一部の詐欺の証明のサイズはブロックそのもののサイズと同じくらいになります。軽量クライアントに対するリソースの仮定により、そのような設計を使用することはできません。詐欺の証明のサイズを減らす多次元の消去符号化技術を使用することで、この点で改善が見られていますが、その代わりにコミットメントのサイズが増加します。簡潔にするために、これについては触れませんが、このペーパー詳細な分析があります。

詐欺証明ベースのソリューションの問題は、軽量クライアントがまだ詐欺証明を受け取っていないブロックについて完全に確信が持てないことです。また、彼らは常にフルノードのピアが正直であることを信頼し続けます。正直なノードもブロックを継続的に監査し続けるためにインセンティブを受ける必要があります。

私たちは、ブロックのエンコードが無効である場合、フルノードがそれを検出し、軽量クライアントに証拠を提供して、その動作を説得するシステムに焦点を当てました。しかし、次のセクションでは、有効なエンコードのみがチェーンにコミットされることを保証するブロックエンコードを見ていきます。これにより、エンコードエラーを証明する詐欺証拠の必要性がなくなります。これらの有効性証明ベースのソリューションにより、アプリケーションは、フルノードからこの種の詐欺証拠を待つ必要なくシステムを利用できます。

これらのソリューションはどのように機能するのですか?

最近、多項式コミットメントはブロックチェーンの分野から再び注目されています。これらの多項式コミットメント、特に多項式への一定サイズのKZG/Kateコミットメント, 詐欺証拠が不要なきれいなDAスキームを設計するために使用できます。要するに、KZGコミットメントを使用すると、1つの楕円曲線群要素を使用して多項式にコミットすることができます。さらに、このスキームは、ある点iで多項式φがφ(i)に評価されることを証明することができ、定数サイズの証人を使用します。コミットメントスキームは計算的に拘束力があり、また同型的であり、詐欺証拠をうまく回避することができます。

ブロックプロデューサーにオリジナルのトランザクションデータを取り、サイズn x mの2D行列に配置するよう強制します。それは多項式補間を使用して、サイズnの各列をサイズ2nの列に拡張します。この拡張行列の各行は多項式コミットメントを生成し、これらのコミットメントをブロックヘッダーの一部として送信します。ブロックの概略図が以下に示されています。

軽量クライアントは、この拡張された行列の任意のセルをクエリして、それによってブロックヘッダーに対してすぐに検証できる証明を取得します。定数サイズのメンバーシップ証明により、サンプリングが非常に効率的に行われます。コミットメントの同型性により、証明がブロックが正しく構築されている場合にのみ検証され、多項式補間により、一定数の成功したサンプルがデータが非常に高い確率で利用可能であることを保証します。

ブロックの模式図

この記事の範囲を超えるスキームの細部やさらなる最適化、コストの見積もりについては言及しません。ただし、ここで2Dスキームについて議論していますが、同様の保証は1Dスキームでも提供でき、ヘッダーサイズが小さくなり、並列処理が少なく、軽量クライアントサンプリング効率が低下する代わりに提供できます。この内容については、後続の記事で詳しく取り上げます。

他にはどんな選択肢がありますか?次には何がありますか?

高次元の消去符号とKZGコミットメントは、DA問題に取り組む唯一の方法ではありません。ここで省略した他の方法もあります。コーデッドメルクルツリー, コーデッドインターリービングツリー, FRI, そしてSTARKベースのアプローチがありますが、それぞれに長所と短所があります。

At Avail, we have been working on a Data Availability solution using KZG commitments. In later posts, we will cover the implementation details, how you can use it today and how we aim to transform the DA problem space. For more information regarding Avail, follow us on Twitterそして、私たちに参加してくださいDiscordサーバー.

免責事項:

  1. この記事は[から転載されましたAvail Team]. All copyrights belong to the original author [Avail Team]. If there are objections to this reprint, please contact the [Gate Learn]チームにお任せください。迅速に対応いたします。

  2. 免責事項:この記事で表現されている意見や見解は、著者個人のものであり、投資アドバイスを構成するものではありません。

  3. Gate Learnチームによって他言語への記事の翻訳が行われます。特に言及されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。

データの利用可能性の問題

初級編1/2/2024, 10:46:41 AM
この記事では、データの入手可能性の問題とそれがEthereumのスケーラビリティに与える影響について探求しています。

ブロックチェーンネットワーク内のピアが新しく提案されたブロックのすべてのデータが利用可能であることを確認する方法はありますか?そして、それはなぜ重要なのですか?

この投稿では、データの利用可能性の問題の詳細と、それがイーサリアムのスケーリングにどのように影響するかについて掘り下げます。

データの利用可能性問題とは何ですか?

データ利用可能性(DA)の問題:ブロックチェーンネットワーク内のピアが、新しい提案されたブロックのすべてのデータが実際に利用可能であることを確認する方法は何ですか?データが利用できない場合、ブロックにはブロック生成者によって隠されている悪意のあるトランザクションが含まれている可能性があります。ブロックに悪意のないトランザクションが含まれている場合でも、それらを隠すことはシステムのセキュリティを危険にさらす可能性があります。

例を挙げると、アリスがGate.ioのオペレーターであるとします。ZK-Rollup (ZKR)彼女は検証されたイーサリアム上のZK-Proofを提出します。イーサリアム上ですべての取引データを提出しない場合、彼女の証明がロールアップで行われたすべての状態遷移が有効であることを証明していても、ロールアップのユーザーは現在の口座残高について不明瞭な状態になるかもしれません。提出された証明は、そのゼロ知識性質のため、現在の状態について一切の情報を提供しません。

同様の例が存在します楽観的ロールアップ(OPR)AliceがEthereum上で主張を提出しますが、OPRの参加者はトランザクションデータが利用できないため、主張を再計算または異議を申し立てることができません。

上記のシナリオに対処するために、OPRおよびZKRの設計は、オペレーターがすべての取引の詳細を提出するよう義務付けています。イーサリアム‘calldata’として。これにより、ロールアップ内のトランザクション数が増えるにつれて、提出する必要のあるデータ量も増加し、これらのロールアップが提供できるスケーリング量が制限される可能性がありますが、短期間にDA問題を回避することができます。

さらに悪いことに、データの利用不能性は独自に帰属可能な欠陥ではありません。これは、参加者が他のピアに特定のデータチャンクが欠落していることを証明できないことを意味します。これは、BobがAliceによって提出されたブロックにデータが欠落しているとブロードキャストできるかもしれませんが、CharlieがAliceに問い合わせると、彼女がデータを提供するかもしれません。

今日、これはブロックチェーンにどのように影響しますか?

この質問に答えるために、まず最初に、Ethereumのようなブロックチェーンの一般的なブロック構造と、任意のブロックチェーンネットワークに存在するクライアントの種類を再訪してみましょう。

ブロックは主に2つの部分に分割できます:

  • ブロックヘッダー:小さなブロックヘッダーには、ブロックに含まれるトランザクションに関連するダイジェストとメタデータが含まれています。
  • ブロック本体:これにはすべての取引データが含まれ、ブロックサイズの大部分を占めています。

従来のブロックチェーンプロトコルでは、すべてのノードがフルノードと見なされ、すべてのブロックを同期させ、すべての状態遷移を検証します。 トランザクションの有効性をチェックし、ブロックを保存するためにかなりのリソースを費やす必要があります。 一方、これらのノードは無効なトランザクションを受け入れることはできません。

もう一つのノードのクラスが存在するかもしれませんが、それらはすべてのトランザクションを検証するためのリソースを持っていない(または使いたくない)かもしれません。代わりに、彼らは主にブロックチェーンの現在の状態を知りたがっており、彼らに関連するいくつかのトランザクションがチェーンに含まれているかどうかに興味を持っています。理想的には、これらの軽量クライアントは、無効なトランザクションが含まれているチェーンを追跡することからも保護されるべきです。これは、いわゆる詐欺証拠を使用することで実現できます。これらは、特定のブロック本体が無効なトランザクションを含むことを示す簡潔なメッセージです。どの完全ノードでもそのような詐欺証拠を生成でき、したがって軽量クライアントは特定の完全ノードが正直であることを信頼する必要がありません。彼らは、特定のブロックヘッダーに詐欺証拠が利用可能である場合、それを受信することを確実にするゴシップネットワークに十分に接続していることを確認するだけです。

しかし、このシステムには1つの問題があります。ブロックプロデューサーがブロックの背後にあるデータ全体を公開しない場合はどうなるでしょうか。この場合、フルノードは明らかにブロックを拒否します。なぜなら、彼らの視点では、ブロックの本体がなければ、それすらブロックではないからです。しかし、軽量クライアントはヘッダーチェーンを提示される可能性があり、データが欠落していることに気づく手段を持っていません。同時に、フルノードは詐欺証拠を生成することができません。なぜなら、詐欺証拠を作成するために必要なデータが欠落しているからです。

これを防ぐためには、軽量クライアントがデータの可用性を検証するメカニズムが必要です。これにより、データを隠すブロック生産者が軽量クライアントを説得して逃れることはできません。また、ブロック生産者にデータの一部を公開させることで、全体のネットワークが全体のブロックに共同でアクセスできるようになります。

例を使って、問題をもう少し詳しく見てみましょう。 ブロックプロデューサーのアリスがトランザクションtx1、tx2、…、txnを含むブロックBを構築したとします。 ここで、tx1が悪意のあるトランザクションであると仮定してみましょう。 tx1がブロードキャストされると、すべてのフルノードはそれが悪意のあるものであることを検証し、これをライトクライアントに詐欺の証拠として送信することができます。ライトクライアントはすぐにそのブロックが受け入れられないことを知ることができます。 しかし、もしアリスがtx1を隠したい場合、ヘッダーとtx1以外のすべてのトランザクションデータを公開します。その結果、フルノードはtx1の正当性を検証することができません。

単純な解決策は、すべての軽量クライアントが単にトランザクションを無作為にサンプリングし、サンプルが利用可能であることを見つけた場合、ブロックが利用可能であると確信できると考えるかもしれません。軽量ノードに任意の1つのトランザクションを一様に無作為にクエリを行わせます。軽量クライアントがtx1をクエリする確率は1/nです。したがって、圧倒的な確率で、アリスは軽量クライアントを悪意のあるトランザクションを受け入れるようにだますことができます。つまり、ほとんどの軽量クライアントがだまされるでしょう。非属性性のため、フルノードはどのような方法でもtx1が利用できないことを証明することができません。残念ながら、サンプル数を増やしても、これを大幅に改善することはできません。

では、これについてどうしますか?

この問題の解決策は、ブロックに冗長性を導入することにあります。一般的な符号理論や特に消去符号化に関する豊富な文献が存在し、この問題に役立つことができます。

要するに、イレイジャーコーディングを使用すると、データのnチャンクを2nチャンクに拡張でき、その際、2nのうちのn個で元のデータを再構築するのに十分であるようにします(パラメータは調整可能ですが、ここでは単純化のためにこれを考慮しています)。

ブロックプロデューサーにトランザクションtx1、tx2、...、txnを消去符号化するように強制すれば、単一のトランザクションを隠すためには、nを隠す必要があります+1データチャンクは任意のnがトランザクションセット全体を構築するのに十分です。この場合、一定の数のクエリにより、ライトクライアントは基礎となるデータが実際に利用可能であることを非常に高い確信を持つことができます。

うわー、これがそれなの?

No. この単純なトリックによって隠す作業がより困難になりますが、ブロックプロデューサーが故意に消去符号化を誤った方法で行う可能性はまだあります。ただし、フルノードはこの消去符号化が正しく行われたかどうかを検証し、そうでない場合はライトクライアントにこれを証明できます。これは、悪意のあるトランザクションの場合と同様に、別の種類の不正証明です。興味深いことに、ライトクライアントのもとには、ブロックが悪意のある場合に不正証明を受け取ることを確実にするために、単一の誠実なフルノードの隣人が必要です。これにより、ライトクライアントが非常に高い確率で悪意のあるトランザクションのないチェーンにアクセスできることが保証されます。

しかし、問題があります。単純に行うと、一部の詐欺の証明のサイズはブロックそのもののサイズと同じくらいになります。軽量クライアントに対するリソースの仮定により、そのような設計を使用することはできません。詐欺の証明のサイズを減らす多次元の消去符号化技術を使用することで、この点で改善が見られていますが、その代わりにコミットメントのサイズが増加します。簡潔にするために、これについては触れませんが、このペーパー詳細な分析があります。

詐欺証明ベースのソリューションの問題は、軽量クライアントがまだ詐欺証明を受け取っていないブロックについて完全に確信が持てないことです。また、彼らは常にフルノードのピアが正直であることを信頼し続けます。正直なノードもブロックを継続的に監査し続けるためにインセンティブを受ける必要があります。

私たちは、ブロックのエンコードが無効である場合、フルノードがそれを検出し、軽量クライアントに証拠を提供して、その動作を説得するシステムに焦点を当てました。しかし、次のセクションでは、有効なエンコードのみがチェーンにコミットされることを保証するブロックエンコードを見ていきます。これにより、エンコードエラーを証明する詐欺証拠の必要性がなくなります。これらの有効性証明ベースのソリューションにより、アプリケーションは、フルノードからこの種の詐欺証拠を待つ必要なくシステムを利用できます。

これらのソリューションはどのように機能するのですか?

最近、多項式コミットメントはブロックチェーンの分野から再び注目されています。これらの多項式コミットメント、特に多項式への一定サイズのKZG/Kateコミットメント, 詐欺証拠が不要なきれいなDAスキームを設計するために使用できます。要するに、KZGコミットメントを使用すると、1つの楕円曲線群要素を使用して多項式にコミットすることができます。さらに、このスキームは、ある点iで多項式φがφ(i)に評価されることを証明することができ、定数サイズの証人を使用します。コミットメントスキームは計算的に拘束力があり、また同型的であり、詐欺証拠をうまく回避することができます。

ブロックプロデューサーにオリジナルのトランザクションデータを取り、サイズn x mの2D行列に配置するよう強制します。それは多項式補間を使用して、サイズnの各列をサイズ2nの列に拡張します。この拡張行列の各行は多項式コミットメントを生成し、これらのコミットメントをブロックヘッダーの一部として送信します。ブロックの概略図が以下に示されています。

軽量クライアントは、この拡張された行列の任意のセルをクエリして、それによってブロックヘッダーに対してすぐに検証できる証明を取得します。定数サイズのメンバーシップ証明により、サンプリングが非常に効率的に行われます。コミットメントの同型性により、証明がブロックが正しく構築されている場合にのみ検証され、多項式補間により、一定数の成功したサンプルがデータが非常に高い確率で利用可能であることを保証します。

ブロックの模式図

この記事の範囲を超えるスキームの細部やさらなる最適化、コストの見積もりについては言及しません。ただし、ここで2Dスキームについて議論していますが、同様の保証は1Dスキームでも提供でき、ヘッダーサイズが小さくなり、並列処理が少なく、軽量クライアントサンプリング効率が低下する代わりに提供できます。この内容については、後続の記事で詳しく取り上げます。

他にはどんな選択肢がありますか?次には何がありますか?

高次元の消去符号とKZGコミットメントは、DA問題に取り組む唯一の方法ではありません。ここで省略した他の方法もあります。コーデッドメルクルツリー, コーデッドインターリービングツリー, FRI, そしてSTARKベースのアプローチがありますが、それぞれに長所と短所があります。

At Avail, we have been working on a Data Availability solution using KZG commitments. In later posts, we will cover the implementation details, how you can use it today and how we aim to transform the DA problem space. For more information regarding Avail, follow us on Twitterそして、私たちに参加してくださいDiscordサーバー.

免責事項:

  1. この記事は[から転載されましたAvail Team]. All copyrights belong to the original author [Avail Team]. If there are objections to this reprint, please contact the [Gate Learn]チームにお任せください。迅速に対応いたします。

  2. 免責事項:この記事で表現されている意見や見解は、著者個人のものであり、投資アドバイスを構成するものではありません。

  3. Gate Learnチームによって他言語への記事の翻訳が行われます。特に言及されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。

Start Now
Sign up and get a
$100
Voucher!