paint-brush
シャーディングの技術的特性の謎解き: シャーディングが優れている理由@Vitalik
1,619 測定値
1,619 測定値

シャーディングの技術的特性の謎解き: シャーディングが優れている理由

Vitalik Buterin19m2022/08/29
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

シャーディングは、イーサリアム エコシステムおよびブロックチェーン エコシステムでより広く誤解されている概念の 1 つです。これは、非常に特定のプロパティを持つ非常に特定のアイデアのセットを指します。多くの場合、セキュリティ特性が大きく異なり、しばしば脆弱な手法と混同されます。シャーディングを説明する最良の方法は、スケーラビリティのトリレンマから始まります。ランダム サンプリングによるシャーディングは、ETH エコシステムで構築しているシャーディングの形式よりも信頼性が低くなりますが、より単純なテクノロジーを使用します。投稿の残りの部分では、シャードされたブロックチェーンがこれをどのように行うかについて説明します.

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - シャーディングの技術的特性の謎解き: シャーディングが優れている理由
Vitalik Buterin HackerNoon profile picture


Dankrad Feist と Aditya Asgaonkar のレビューに感謝します


シャーディングはイーサリアムのスケーラビリティの未来であり、エコシステムが毎秒何千ものトランザクションをサポートし、世界の大部分が手頃な価格でプラットフォームを定期的に使用できるようにするための鍵となります。しかし、これは、イーサリアム エコシステムやブロックチェーン エコシステムでより広く誤解されている概念の 1 つでもあります。これは、非常に特定のプロパティを持つ非常に特定のアイデアのセットを指しますが、非常に異なる、多くの場合、はるかに弱いセキュリティ プロパティを持つ手法と混同されることがよくあります。この投稿の目的は、シャーディングが提供する特定のプロパティ、シャーディングではない他のテクノロジとの違い、およびシャード システムがこれらのプロパティを実現するために必要な犠牲を正確に説明することです。


Ethereum のシャード バージョンの多くの描写の 1 つ。 Hsiao-wei Wang によるオリジナルの図、Quantstamp によるデザイン。

スケーラビリティのトリレンマ

シャーディングを説明する最良の方法は、ソリューションを形作り、インスピレーションを与えた問題のステートメント、つまりスケーラビリティのトリレンマから始まります。


スケーラビリティのトリレンマは、ブロックチェーンが持とうとする 3 つの特性があり、 「単純な」手法に固執する場合、それらの 3 つのうち 2 つしか得られないことを示しています。 3 つのプロパティは次のとおりです。


  • スケーラビリティ: チェーンは、単一の通常のノード (コンシューマ ラップトップを考えてください) が検証できるよりも多くのトランザクションを処理できます。

  • 分散化: チェーンは、中央集権化された大規模なアクターの小さなグループに対して、信頼に依存することなく実行できます。これは通常、消費者向けラップトップだけでは参加できない一連のノードの信頼 (または正直な過半数の仮定) があってはならないことを意味すると解釈されます。

  • セキュリティ: チェーンは、攻撃しようとする参加ノードの大部分に抵抗できます (理想的には 50%; 25% を超えるものは問題ありませんが、5% はまったく問題ありません)。


ここで、3 つのうち 2 つしか得られない「簡単な解決策」の 3 つのクラスを見てみましょう。


  • 従来のブロックチェーン- ビットコイン、プレ PoS/シャーディング イーサリアム、ライトコイン、およびその他の同様のチェーンを含む。これらは、すべてのトランザクションを検証するフルノードを実行するすべての参加者に依存しているため、分散化とセキュリティはありますが、スケーラビリティはありません.

  • 高 TPS チェーン- DPoS ファミリーだけでなく、他の多くのチェーンも含まれます。これらは少数のノード (多くの場合 10 ~ 100) がノード間のコンセンサスを維持することに依存しており、ユーザーはこれらのノードの大部分を信頼する必要があります。これはスケーラブルで安全ですが (上記の定義を使用)、分散化されていません。

  • マルチチェーン エコシステム- これは、さまざまなアプリケーションをさまざまなチェーン上で稼働させ、クロスチェーン通信プロトコルを使用してそれらの間で通信することによる「スケールアウト」の一般的な概念を指します。これは分散型でスケーラブルですが、安全ではありません。なぜなら、攻撃者は多くのチェーンの 1 つ (多くの場合、エコシステム全体の 1% 未満) でコンセンサス ノードの過半数を取得するだけで、そのチェーンを破り、波及効果を引き起こす可能性があるためです。他のチェーンのアプリケーションに大きなダメージを与えます。


シャーディングは、3 つすべてを実現する手法です。シャードされたブロックチェーンは次のとおりです。


  • スケーラブル: 単一ノードよりもはるかに多くのトランザクションを処理できます
  • 分散型: 「スーパーノード」にまったく依存せずに、消費者向けラップトップで完全に存続できます
  • 安全: 攻撃者は、少数のリソースでシステムの小さな部分を標的にすることはできません。彼らは全体を支配して攻撃しようとすることしかできません


投稿の残りの部分では、シャードされたブロックチェーンがこれをどのように行うかについて説明します.

ランダム サンプリングによるシャーディング

理解するのが最も簡単なシャーディングは、ランダム サンプリングによるシャーディングです。ランダム サンプリングによるシャーディングは、Ethereum エコシステムで構築しているシャーディングの形式よりも信頼性が低くなりますが、より単純なテクノロジを使用します。


コアとなるアイデアは次のとおりです。多数 (例: 10000) のバリデーターを持つプルーフ オブ ステーク チェーンがあり、検証が必要な多数 (例: 100) のブロックがあるとします。次のブロック セットが到着する前に、これらすべてのブロックを検証できるほど強力なコンピューターは 1 台もありません。


したがって、私たちが行うことは、検証を行う作業をランダムに分割することです。バリデーターリストをランダムにシャッフルし、シャッフルされたリストの最初の 100 個のバリデーターを最初のブロックの検証に割り当て、シャッフルされたリストの 2 番目の 100 個のバリデーターを 2 番目のブロックの検証に割り当てます。ブロックを検証する (または他のタスクを実行する) ことを委員会と呼びます。


バリデーターがブロックを検証すると、検証したことを証明する署名を発行します。他のすべての人は、100 個のブロック全体を検証する代わりに、10000 個の署名のみを検証するようになりました。特にBLS 署名の集約を使用すると、作業量が大幅に減少します。すべてのブロックが同じ P2P ネットワークを介してブロードキャストされるのではなく、各ブロックが異なるサブネットワークでブロードキャストされ、ノードは、担当する (または他の理由で関心がある) ブロックに対応するサブネットに参加するだけで済みます。


各ノードの計算能力が 2 倍になるとどうなるかを考えてみましょう。各ノードは 2 倍以上の署名を安全に検証できるようになったため、ステーキング デポジットの最小サイズを削減して 2 倍以上のバリデーターをサポートできるため、100 ではなく 200 の委員会を作成できます。

したがって、1 スロットあたり 100 ではなく 200 ブロックを検証できます。さらに、個々のブロックは 2 倍大きくなる可能性があります。したがって、サイズが 2 倍のブロックが 2 倍になり、チェーン容量が全体で 4 倍になります。


何が起こっているのかについて話すために、いくつかの数学用語を紹介できます。 Big O表記を使用して、「 O(C) 」を使用して、単一ノードの計算能力を表します。従来のブロックチェーンは、サイズO(C)のブロックを処理できます。上記のシャード チェーンは、 O(C)ブロックを並列に処理できます (各ブロックを間接的に検証するための各ノードのコストはO(1)であることに注意してください)。これは、各ノードが検証する必要があるのは固定数の署名のみであるためです)。 O(C)容量があるため、シャードチェーンの合計容量はO(C2)です。これが、このタイプのシャーディングを二次シャーディングと呼ぶ理由であり、この効果が、長期的にはシャーディングがブロックチェーンをスケーリングする最良の方法であると考える主な理由です。

よくある質問: 100 の委員会に分割することは、100 の個別のチェーンに分割することとどう違うのですか?

主な違いは 2 つあります。


  1. ランダム サンプリングにより、攻撃者は 1 つのシャードに力を集中できなくなります。 100 チェーンのマルチチェーン エコシステムでは、攻撃者は大混乱をもたらすために合計ステークの最大 0.5% しか必要としません。攻撃者は 51% を 1 つのチェーンの攻撃に集中させることができます。シャードされたブロックチェーンでは、攻撃者が同じことを行うには、ステーク全体の約 30 ~ 40% が必要です (つまり、チェーンはセキュリティを共有しています)。確かに、彼らは幸運になるまで待つことができ、賭け金の合計の 50% 未満であってもランダムな確率で 1 つのシャードで 51% を獲得できますが、51% を大幅に下回る攻撃者にとって、これは指数関数的に難しくなります。攻撃者が ~30% 未満の場合、事実上不可能です。
  2. 密結合: 1 つのシャードでも不良ブロックが発生すると、それを回避するためにチェーン全体が再編成されます。 1 つのシャードに 1 つでも不良ブロックがあるチェーンは受け入れられず、発見されたらすぐに破棄する必要があるという社会契約があります (このドキュメントの後半のセクションでは、これを技術的に強制する方法について説明します)。これにより、チェーンのアプリケーションの観点からは、完全なセキュリティが保証されます。コントラクト A はコントラクト B に依存できます。これは、コントラクト B がチェーンへの攻撃により不正な動作をした場合、トランザクションを含む履歴全体が元に戻るためです。コントラクト B の機能不全の結果、コントラクト A が不正に動作した。


これらの両方の違いにより、シャーディングは、マルチチェーン エコシステムでは基本的に行われない方法で、シングル チェーン環境の主要な安全特性を保持するアプリケーションの環境を確実に作成します。

より優れたセキュリティ モデルによるシャーディングの改善

ビットコインのサークルで共通して控えていることの 1 つは、私が完全に同意することですが、ビットコイン (またはイーサリアム) のようなブロックチェーンは、正直な多数決の仮定に完全に依存しているわけではないということです。このようなブロックチェーンに 51% の攻撃があった場合、攻撃者はトランザクションの取り消しや検閲などの厄介なことを行うことができますが、無効なトランザクションを挿入することはできません。また、トランザクションを元に戻したり検閲したりしても、通常のノードを実行しているユーザーはその動作を簡単に検出できるため、コミュニティが調整して、攻撃者の力を奪うフォークで攻撃を解決したい場合は、すぐに実行できます.


この追加のセキュリティの欠如は、より集中化された高 TPS チェーンの主な弱点です。そのようなチェーンには、通常のユーザーがノードを実行するという文化がありませんし、持つこともできません。そのため、主要なノードとエコシステムのプレーヤーは、はるかに簡単に集まり、コミュニティが非常に嫌うプロトコルの変更を課すことができます。さらに悪いことに、ユーザーのノードはデフォルトでそれを受け入れます。しばらくすると、ユーザーは気付くだろうが、それまでに強制的なプロトコル変更は既成事実となるだろう: 変更を拒否する調整の負担はユーザーにあり、彼らは 1 日分以上のプロトコルを元に戻すという苦渋の決断をしなければならないだろう.誰もが思っていた活動はすでに確定しています。


理想的には、有効性に対する 51% の信頼の仮定を回避し、従来のブロックチェーンが完全な検証から得られる強力なセキュリティの防波堤を維持するシャーディングの形式が必要です。そして、これはまさに、過去数年間の私たちの研究の多くが行ってきたことです.

計算のスケーラブルな検証

51% の攻撃耐性を持つスケーラブルな検証の問題は、次の 2 つのケースに分けることができます。


  • 計算の検証: 計算へのすべての入力を所有していると仮定して、一部の計算が正しく行われたことを確認します。

  • データの可用性の検証: 計算自体への入力が、本当に必要な場合にダウンロードできる何らかの形式で保存されていることを確認します。このチェックは、入力全体自体を実際にダウンロードせずに実行する必要があります (データが大きすぎてブロックごとにダウンロードできない可能性があるため)。


ブロックチェーン内のブロックの検証には、計算とデータの可用性チェックの両方が含まれます。ブロック内のトランザクションが有効であること、およびブロック内で要求された新しい状態のルート ハッシュがそれらのトランザクションを実行した正しい結果であることを確信する必要がありますが、そのデータをダウンロードするユーザーが状態を計算し、ブロックチェーンの処理を続行できるように、ブロックからの十分なデータが実際に公開されたことを確信する必要があります。この 2 番目の部分は、 データ可用性の問題と呼ばれる非常に微妙ですが重要な概念です。これについては後で詳しく説明します。


計算をスケーラブルに検証することは比較的簡単です。テクニックには、詐欺証明ZK-SNARKの 2 つのファミリーがあります。


不正証明は、計算をスケーラブルに検証する 1 つの方法です。

この 2 つのテクノロジは、次のように簡単に説明できます。


  • 不正証明は、計算の結果を受け入れるシステムです。賭けられたデポジットを持つ誰かに、「入力Xで計算Cを行うと出力Yが得られることを保証します」という形式のメッセージに署名するように要求します。デフォルトではこれらのメッセージを信頼しますが、ステークされたデポジットを持つ他の誰かが挑戦する機会を残します (「同意しません。出力は Z です」という署名付きのメッセージ)。課題がある場合にのみ、すべてのノードが計算を実行します。どちらが間違っていたとしても、預金を失い、その計算の結果に依存するすべての計算が再計算されます。
  • ZK-SNARKは、「入力Xに対して計算Cを実行すると、出力Yが得られる」という主張を直接証明する暗号証明の形式です。証明は暗号的に「健全」ですC(x)Yと等しくない場合、有効な証明を行うことは計算上不可能です。 Cの実行自体に膨大な時間がかかる場合でも、証明は迅速に検証できます。 ZK-SNARK の数学的な詳細については、この投稿を参照してください。


「通常のケースでは」、複雑な計算の実行を単一の署名の検証に置き換えるため、不正証明に基づく計算はスケーラブルです。チャレンジがあるためにオンチェーンで計算を検証する必要がある例外的なケースがありますが、それをトリガーするのは非常に高価であるため、例外的なケースは非常にまれです (元のクレーム者またはチャレンジャーのいずれかが多額の預金を失います)。 ZK-SNARK は概念的に単純です - 計算をはるかに安価な証明検証に置き換えるだけです - しかし、それらがどのように機能するかの背後にある数学はかなり複雑です。


すべてのノードがすべてのデータを検証する必要がある一方で、計算をスケーラブルに検証するだけのセミスケーラブルなシステムのクラスがあります。これは、一連の圧縮トリックを使用してほとんどのデータを計算に置き換えることで、非常に効果的にすることができます。これはロールアップの領域です

データ可用性のスケーラブルな検証は難しい

データの可用性を検証するために不正防止を使用することはできません。計算の不正証明は、元のクレームが提出された瞬間に計算への入力がチェーン上で公開されるという事実に依存しているため、誰かがチャレンジした場合、チャレンジの実行は元の実行とまったく同じ「環境」で行われます。ハプニング。データの可用性をチェックする場合、これを行うことはできません。問題は、チェックするデータが多すぎてチェーン上で公開できないという事実にあるからです。したがって、データの可用性のための詐欺防止スキームは、重要な問題に直面します: 誰かが公開せずに「データ X は利用可能である」と主張し、チャレンジを受けるのを待ち、その後で初めてデータ X を公開し、チャレンジャーを他のユーザーに見せることができます。ネットワークが正しくありません。


これは、漁師のジレンマで拡張されます。


核となるアイデアは、V1 が邪悪な発行者で V2 が正直な挑戦者である 2 つの「世界」と、V1 が正直な発行者で V2 が邪悪な挑戦者である 2 つの「世界」は、ダウンロードしようとしていない人には区別できないということです。その時点での特定のデータ。そしてもちろん、スケーラブルな分散型ブロックチェーンでは、個々のノードはデータのごく一部をダウンロードすることしか期待できないため、意見の相違があったという単なる事実を除いて、何が起こったのかを知ることができるのはごく一部のノードだけです。


誰が正しくて誰が間違っていたのかを区別することが不可能であるという事実は、データの可用性のために有効な詐欺防止スキームを持つことを不可能にします。

よくある質問: 一部のデータが利用できない場合はどうなりますか? ZK-SNARK を使用すると、すべてが有効であることを確認できます。それだけで十分ではありませんか?

残念ながら、ブロックチェーンが正しく動作していることを保証するには、正当性だけでは十分ではありません。これは、ブロックチェーンが有効であるが、すべてのデータが利用できない場合、ユーザーは将来のブロックが有効であるという証明を生成するために必要なデータを更新する方法がないためです。有効だが利用できないブロックを生成した攻撃者は、その後姿を消し、チェーンを効果的に停止させることができます。ユーザーが身代金を支払うまで、誰かが特定のユーザーのアカウント データを差し控えることもできるため、この問題は純粋に生存の問題ではありません。


この問題が根本的なものであるという強力な情報理論的議論がいくつかあり、それを回避できる巧妙なトリック (たとえば、暗号化アキュムレータを含む) はありません。詳細はこちらの論文をご覧ください。

では、実際にダウンロードしようとせずに、1 MB のデータが利用可能であることを確認するにはどうすればよいでしょうか?それは不可能ですね!

その鍵となるのは、データ可用性サンプリングと呼ばれるテクノロジーです。データ可用性のサンプリングは次のように機能します。


  1. Erasure Codingと呼ばれるツールを使用して、N 個のチャンクを含むデータを 2N 個のチャンクを含むデータに拡張し、これらのチャンクのいずれか N 個でデータ全体を復元できるようにします。
  2. 可用性を確認するには、データ全体をダウンロードしようとする代わりに、ユーザーはブロック内の一定数の位置 (たとえば 30 の位置) をランダムに選択し、ブロック内のチャンクを正常に見つけた場合にのみブロックを受け入れます。彼らの選択した位置の。


消去コードは、「100% の可用性を確認する」(データのすべての部分が利用可能である) 問題を「50% の可用性を確認する」(断片の少なくとも半分が利用可能である) 問題に変換します。ランダム サンプリングは、50% の可用性の問題を解決します。利用可能なデータが 50% 未満の場合、少なくとも 1 つのチェックがほぼ確実に失敗し、データの少なくとも 50% が利用可能である場合、一部のノードがブロックを利用可能として認識できない場合があります。ブロックの残りの 50% を取り戻すために消去コード再構築手順を実行するのは 1 つの正直なノードのみです。したがって、1 MB ブロックの可用性を確認するために 1 MB をダウンロードする必要はなく、数キロバイトをダウンロードするだけで済みます。これにより、すべてのブロックでデータの可用性チェックを実行できます。このチェックをピアツーピア サブネットで効率的に実装する方法については、この投稿を参照してください。


ZK-SNARK を使用して、データの一部のイレイジャー コーディングが正しく行われたことを確認できます。次に、Merkle ブランチを使用して個々のチャンクを確認できます。または、多項式コミットメント(例:ケイト (別名 KZG) コミットメント) を使用することもできます。これは基本的にイレイジャー コーディングを行い、個々の要素の証明正確性の検証をすべて 1 つの単純なコンポーネントで行います。これが Ethereum シャーディングで使用されているものです。

要約: すべてが再び正しいことをどのように保証しますか?

100 個のブロックがあり、委員会に頼らずにすべてのブロックの正確性を効率的に検証したいとします。次のことを行う必要があります。


  • 各クライアントは、各ブロックでデータ可用性サンプリングを実行し、各ブロックのデータが使用可能であることを確認しますが、ブロック全体のサイズがメガバイト以上であっても、ブロックごとに数キロバイトしかダウンロードしません。クライアントは、可用性の課題のすべてのデータが正しく応答された場合にのみ、ブロックを受け入れます。

  • データの可用性を検証したので、正確性を検証しやすくなります。次の 2 つの手法があります。

    • 詐欺の証明を使用できます: 賭けられたデポジットを持つ少数の参加者は、各ブロックの正確性を承認することができます。チャレンジャー(またはフィッシャーマン) と呼ばれる他のノードは、ブロックをランダムにチェックして完全に処理しようとします。すでにデータの可用性を確認しているため、データをダウンロードして特定のブロックを完全に処理することは常に可能です。無効なブロックが見つかった場合は、全員が検証するチャレンジを投稿します。ブロックが不良であることが判明した場合、そのブロックとそれに依存する将来のすべてのブロックを再計算する必要があります。
    • ZK-SNARKを使用できます。各ブロックには、正確性を証明する ZK-SNARK が付属します。


  • 上記のいずれの場合でも、ブロックの大きさに関係なく、各クライアントはブロックごとに少量の検証作業を行うだけで済みます。不正防止の場合、チェーン上でブロックを完全に検証する必要がある場合がありますが、1 つのチャレンジをトリガーするだけでも非常にコストがかかるため、これは非常にまれです。


それだけです。イーサリアムのシャーディングの場合、当面の計画は、シャードされたブロックをデータのみにすることです。つまり、シャードは純粋に「データ可用性エンジン」であり、レイヤー 2 ロールアップの仕事は、その安全なデータ スペースに加えて、詐欺防止または ZK-SNARK のいずれかを使用して、高スループットの安全なトランザクション処理機能を実装することです。ただし、このような組み込みシステムを作成して、「ネイティブ」な高スループット実行を追加することは完全に可能です。

シャードシステムの主要な特性とトレードオフとは?

シャーディングの主な目標は、従来の (シャーディングされていない) ブロックチェーンの最も重要なセキュリティ プロパティの複製に可能な限り近づくことですが、各ノードが各トランザクションを個人的に検証する必要はありません。


シャーディングはかなり近いものです。従来のブロックチェーンでは:


  • 無効なブロックは、検証ノードが無効であることを認識して無視するため、通過できません
  • 使用できないブロックは、ノードの検証でダウンロードに失敗して無視されるため、通過できません


高度なセキュリティ機能を備えたシャード ブロックチェーン:


  • 次のいずれかの理由で、無効なブロックを通過できません

    • 詐欺の証明はそれらをすばやくキャッチし、ブロックの誤りをネットワーク全体に通知し、作成者に重い罰則を科します。
    • ZK-SNARK は正しさを証明し、無効なブロックに対して有効な ZK-SNARK を作成することはできません。
  • 次の理由により、使用できないブロックを通過できません

    • 利用可能なブロックのデータが 50% 未満の場合、クライアントごとに少なくとも 1 つのデータ可用性サンプル チェックがほぼ確実に失敗し、クライアントはブロックを拒否します。
    • ブロックのデータの少なくとも 50% が利用可能である場合、実際にはブロック全体が利用可能です。これは、残りのブロックを再構築するのに 1 つの正直なノードしか必要としないためです。


シャーディングのない従来の高 TPS チェーンには、これらの保証を提供する方法がありません。マルチチェーン エコシステムには、攻撃者が攻撃のために 1 つのチェーンを選択して簡単に乗っ取るという問題を回避する方法がありません (チェーンはセキュリティを共有できますが、これが不十分に行われると、事実上の伝統的な高 TPS チェーンに変わります)。これにはすべての欠点があり、うまく実行されたとしても、上記のシャーディング手法のより複雑な実装になります)。


サイドチェーンは実装に大きく依存しますが、通常、従来の高 TPS チェーンの弱点 (マイナー/バリデーターを共有する場合)、またはマルチチェーン エコシステムの弱点 (マイナー/バリデーターを共有しない場合) のいずれかに対して脆弱です。 )。シャード チェーンは、これらの問題を回避します。


ただし、シャード システムのアーマーにはいくつかの隙間があります。特に:


  • 委員会のみに依存するシャードチェーンは、適応型の敵対者に対して脆弱であり、説明責任が弱い.つまり、攻撃者が選択した任意のノード セットをリアルタイムでハッキング (または単にシャットダウン) できる場合、攻撃者は少数のノードを攻撃するだけで 1 つの委員会を破ることができます。さらに、敵対者 (適応型の敵対者であれ、総ステークの 50% を所有する単なる攻撃者であれ) が 1 つの委員会を破った場合、それらのノード (その委員会のノード) のいくつかのみがその委員会に参加していることを公に確認できます。攻撃するため、ペナルティを受けることができる賭け金はごくわずかです。これは、データ可用性サンプリングと不正証明または ZK-SNARK のいずれかがランダム サンプリング手法の重要な補完となるもう 1 つの主な理由です。
  • データ可用性サンプリングは、応答がブロックの少なくとも 50% を構成するためにほぼ常に重複する十分なデータ可用性サンプリング要求をまとめて行うのに十分な数のオンライン クライアントがある場合にのみ安全です。実際には、これは数百のクライアントがオンラインになっている必要があることを意味します (この数は、単一ノードの容量に対するシステムの容量の比率が高くなるほど増加します)。これは少数の N の信頼モデルです。一般的には非常に信頼できますが、非シャード チェーンのノードが可用性のために持つ 0-of-N の信頼ほど堅牢ではありません。
  • シャードされたチェーンが詐欺の証拠に依存している場合、それはタイミングの仮定に依存しています。ネットワークが遅すぎる場合、ノードは、ブロックが間違っていることを示す詐欺防止が行われる前に、ファイナライズされたブロックを受け入れる可能性があります。幸いなことに、無効性が発見されたらすべての無効なブロックを元に戻すという厳密なルールに従う場合、このしきい値はユーザー設定のパラメーターです。個々のユーザーは、ファイナリティまで待機する時間を選択し、十分に長くしたくない場合は苦しみます。しかし、より慎重なユーザーは安全です。それでも、これはユーザー エクスペリエンスの弱体化です。 ZK-SNARK を使用して有効性を検証すると、これが解決されます。
  • 受け渡す必要がある生データの量がはるかに多く、極端なネットワーク条件下で障害が発生するリスクが高くなります。少量のデータは、大量のデータよりも簡単に送信できます (また、強力な政府がチェーンを検閲しようとする場合、安全に隠すのも簡単です)。ブロック エクスプローラーは、チェーン全体を保持する場合、より多くのデータを格納する必要があります。
  • シャードされたブロックチェーンは、シャードされたピアツーピア ネットワークに依存しており、個々の p2p「サブネット」はノードが少ないため、攻撃されやすくなっていますデータの可用性のサンプリングに使用されるサブネット モデルは、サブネット間にある程度の冗長性があるため、これを軽減しますが、それでもリスクは存在します。


これらは妥当な懸念ですが、私たちの見解では、集中化されたレイヤー 2 サービスを介する代わりに、より多くのアプリケーションをオンチェーンで実行できるようにすることで可能になる、ユーザーレベルの集中化の減少がそれらをはるかに上回っています。とはいえ、これらの懸念、特に最後の 2 つは、実際には、シャード チェーンのスループットを特定のポイントを超えて増加させる上での実際の制約となっています。二次シャーディングの二次性には限界があります。


ちなみに、スループットが高くなりすぎた場合のシャードブロックチェーンの安全性リスクの増大も、超二次シャーディングに拡張する取り組みがほとんど放棄された主な理由です。 2次シャーディングを2次のままにしておくことが、本当に幸せな媒体であるように見えます。

生産を一元化し、検証を分割してみませんか?

頻繁に提案されるシャーディングの代替案の 1 つは、中央集権型の高 TPS チェーンのように構造化されたチェーンを持つことです。ただし、有効性と可用性の検証を可能にするためにデータ可用性サンプリングとシャーディングを使用する点が異なります。


これは、現在存在する集中型の高 TPS チェーンを改善しますが、それでもシャード システムよりもかなり弱いです。これにはいくつかの理由があります。


  1. 高 TPS チェーンのブロック プロデューサーによる検閲を検出することははるかに困難です。検閲の検出には、(i)すべてのトランザクションを確認し、不可解に入力に失敗する、明らかに入力に値するトランザクションがないことを確認できること、または (ii)ブロック プロデューサーに 1-of-N の信頼モデルがあり、集中型の高 TPS チェーンでは、(i) 不可能であり、(ii) ノード数が少ないと 1-of-N の信頼モデルでさえ壊れる可能性が高くなるため、より困難です。チェーンのブロック時間が DAS には速すぎる場合 (ほとんどの集中化された高 TPS チェーンがそうであるように)、ノードのブロックが拒否されていないことを証明することは非常に困難です。
  2. 大多数のブロック プロデューサーとエコシステム メンバーが人気のないプロトコルの変更を強制しようとすると、ユーザーのクライアントは確実にそれを検出しますが、コミュニティが反抗して分岐するのははるかに困難です。古いルールを維持するチェーンを維持するための高価な高スループット ノード。
  3. 集中化されたインフラストラクチャは、外部アクターによる検閲に対してより脆弱です。ブロック生成ノードのスループットが高いため、ノードを非常に検出しやすくなり、シャットダウンが容易になります。また、個々のユーザーのラップトップを追跡するよりも、専用の高性能計算を検閲する方が政治的および物流的に簡単です。
  4. 高性能計算を集中化されたクラウド サービスに移行するよう求める圧力が強まり、チェーン全体が 1 ~ 3 社のクラウド サービス内で実行されるリスクが高まり、多くのブロック プロデューサーが同時に失敗するためにチェーンがダウンするリスクが高まります。 .独自のハードウェアでバリデーターを実行する文化を持つシャード チェーンは、これに対する脆弱性がはるかに低くなります。


適切にシャーディングされたシステムは、ベース レイヤーとして優れています。シャード化された基本レイヤーがあれば、ロールアップとして構築することにより、その上にレイヤー化された中央生産システムをいつでも作成できます (たとえば、 defiの同期コンポーザビリティを備えた高スループット ドメインが必要なため)。しかし、集中型のブロック生成に依存する基本レイヤーがある場合、その上にさらに分散型のレイヤー 2 を構築することはできません。


こちらにも公開されています。