シャーディングとは何ですか?

暗号通貨のスケーリングの議論が続くにつれて、いくつかの潜在的なソリューションが実際にかなり長い間開発されてきました.

具体的には、スケーラビリティを犠牲にして分散化とセキュリティに大きな焦点が当てられているイーサリアムの場合、プルーフオブステークコンセンサスの実装と組み合わせたシャーディングの適用は、ネットワークを拡張できる非常に必要なメカニズムと見なされます。分散化とセキュリティを維持しながら、アプリケーションの実用的なレベル.

シャーディングは複雑なトピックです。特に、ネットワークのグローバル状態が絶えず更新されるイーサリアムなどの分散型ピアツーピアネットワークに適用する場合はそうです。.

では、シャーディングとは正確には何であり、ブロックチェーンネットワークの拡張にどのように役立つのでしょうか。?

シャーディングと分散コンピューティングの背景

シャーディングは実際にはブロックチェーンテクノロジーよりもはるかに古く、ビジネスデータベースの最適化から次のようなさまざまなシステムに実装されています。 GoogleのグローバルSpannerデータベース.

  • 基本的に、シャーディングはデータベース内でデータを水平方向に分割するための特定の方法です。.
  • より一般的には、データベースは「シャード」と呼ばれる小さな断片に分割され、一緒に集約されると元のデータベースを形成します.
  • 分散ブロックチェーンネットワークでは、ネットワークはピアツーピア形式で接続された一連のノードで構成され、中央の権限はありません.
  • 現在のブロックチェーンシステムの場合と同様に、各ノードはネットワークのすべての状態を保存し、すべてのトランザクションを処理します.
  • これは、特にビットコインやイーサリアムなどのプルーフオブワークシステムにおいて、分散化を通じて高レベルのセキュリティを提供しますが、正当なスケーリングの問題につながります.

イーサリアムシャーディング

例としてイーサリアムを使用すると、イーサリアムネットワークの完全なノードは、アカウントの残高、ストレージ、契約コードなど、ブロックチェーンの状態全体を保存します.

残念ながら、ネットワークのサイズが指数関数的に増加すると、コンセンサスは直線的にしか増加しません。この制限は、コンセンサスに達するために必要なノード間で必要な通信によるものです。.

ネットワーク内のノードには特別な特権はなく、ネットワーク内のすべてのノードはすべてのトランザクションを格納および処理します。その結果、イーサリアムのサイズのネットワークでは、ネットワークに負担がかかると、ガスのコストが高くなり、トランザクションの確認時間が長くなるなどの問題が顕著になります。ネットワークは、その部分の合計ではなく、個々のノードと同じくらい高速です.

シャーディングは、興味深いが複雑なソリューションを提供することにより、これらの問題を軽減するのに役立ちます。この概念には、ノードのサブセットをシャードにグループ化することが含まれ、シャードはそのシャードに固有のトランザクションを処理します。これにより、システムは多くのトランザクションを並行して処理できるため、スループットが大幅に向上します。.

それを表現するより簡単な方法は、米国の州への分割を想像することです。.

各州(この場合はシャード)は、より大きな米国(Ethereumネットワーク)の一部ですが、独自の特定のルール、境界、および人口のサブセットがあります。しかし、彼らは国を構成するより大きなネットワークの一部として世界共通の言語と文化を共有しています.

またはさらに良いことに、ヴィタリック・ブテリン自身の言葉で:

 「イーサリアムが何千もの島に分割されたと想像してみてください。各島は独自のことを行うことができます。各島には独自の機能があり、その島に属するすべての人、つまりアカウントは相互にやり取りでき、すべての機能を自由に楽しむことができます。他の島に連絡したい場合は、何らかのプロトコルを使用する必要があります。」

ご覧のとおり、ネットワークをより効率的な部分に断片化するという概念により、ネットワークは、個々のノードの速度によって制限されるのではなく、その部分の合計として機能することができます。.

ブロックチェーンでシャーディングはどのように機能しますか?

イーサリアムの開発者は「ステートシャーディング」と呼ばれるものを実装しているため、ブロックチェーンの分野で最もよく知られていて骨の折れるシャーディングの試みであるため、この例として引き続きイーサリアムを使用します。.

イーサリアムブロックチェーンの現在の状態は「グローバル状態」と呼ばれ、特定のインスタンスでブロックチェーンを見ると誰もが見ることができます.

イーサリアムでシャーディングを実装する際の注意点は、ノードをより小さなサブセットにシャーディングすることにより、これらのサブセットが特定のトランザクションセットを処理し、同時にネットワークの状態を更新できるようにする必要があることです。.

イーサリアムでのシャーディングは、プルーフオブステークがネットワークに実装された後、2段階のロールアウトで実装されることになっています。フェーズ1は、シャード内のデータのコンセンサスで構成されるデータレイヤーになります。フェーズ2は状態レイヤーです。これらはすべて非常に流動的であるため、どのように機能するかについての一般的な内訳は以下のとおりです。.

イーサリアムはネットワークを特定のシャードに分解します。各シャードには、特定のアカウント(スマートコントラクトを含む)をシャードにグループ化することによって決定される特定のトランザクショングループが割り当てられます。各トランザクショングループには、次の要素で構成されるヘッダーと本文があります。.

ヘッダ

  • トランザクショングループのシャードID
  • ランダムサンプリングによるバリデーターの割り当て(シャード内のトランザクションを検証します)
  • 状態ルート(トランザクションが追加される前後のシャードのマークルルートの状態)

  • 特定のシャードの一部であるトランザクショングループに属するすべてのトランザクション.

トランザクションは各シャードに固有であり、そのシャードにネイティブなアカウント間で発生します.

トランザクションが検証されると、ネットワークの状態が変化し、アカウントの残高、ストレージなどが更新されます。トランザクショングループが有効であることを確認するには、トランザクショングループのプレステートルートがグローバルステートのシャードルートと一致している必要があります。それらが一致する場合、トランザクショングループが検証され、特定のシャードID状態ルートを介してグローバル状態が更新されます。.

状態ルートのみを含むのではなく、イーサリアムブロックチェーンの各ブロックに状態ルートとトランザクショングループルートの両方が含まれるようになりました。トランザクショングループルートは、そのトランザクションブロックの特定のシャードからのすべてのトランザクショングループのマークルルートです。.

基本的に、更新および検証されたトランザクショングループを含むすべての異なるシャードのマークルルートがあります。このルートは、更新された状態ルートとともにブロックチェーンに保存されます.

この構造でのマークルツリーの概念の採用は、ブロックチェーンの有効性を確保するために不可欠です。マークルツリー、特にマークルルートがどのように機能するかを理解すると、これらの概念をはるかに簡単に理解するのに役立ちます.

マークルツリーとは

読む:マークルツリーとは ?

シャード内のコンセンサスは、特定のコンセンサスラウンドのためにシャードに適用されるランダムに選択されたノードのプルーフオブステークコンセンサスを通じて到達します。.

これは、シャード内で必要なコンセンサスの最終性を提供するだけでなく、この場合、Proof ofWorkブロックチェーンが影響を受けやすい攻撃に対する特定の防御も提供します。.

PoWシャードネットワークで特定のシャードをオーバーランするために必要なハッシュパワーが大幅に削減され、悪意のあるアクターが計算パワーを介してシャードを乗っ取る能力が実現可能です。.

これにより、悪意のある攻撃者は、シャーディングアーキテクチャのより複雑で重要な機能の1つである通信プロトコルを介して他のシャードを攻撃する可能性があります。シャード内のバリデーターのランダムサンプリング選択は、実際に配置される前に、悪意のあるアクターがどのシャードに配置されているかわからないため、このタイプの攻撃を抑えることができます。.

さらに、ランダムサンプリングを使用して、そのランダム検証セットから実際に検証しているバリデーターを選択します。.

通信プロトコルは、システムで正しく機能するシャーディングアーキテクチャに不可欠です。通信プロトコルは、より大きな米国の一部として州間で一貫している世界共通の言語と考えることができます。.

ただし、このプロトコルの設計は非常に困難であり、必要な場合にのみ使用されるように実行する必要があります。特定のノードがそれ自体のシャード内に格納されていない情報を必要とし、必要な情報を含むシャードを見つける必要がある場合に必要になります。この通信は、クロスシャード通信として知られています.

クロスシャード通信は、トランザクションレシートの概念を適用することで実現されます。トランザクションの領収書は、簡単に確認できるが州のルートの一部ではないマークルルートに保存されます.

別のシャードからトランザクションを受信するシャードは、マークルルートをチェックして、レシートが使用されていないことを確認します。基本的に、レシートは共有メモリに保存され、他のシャードで確認できますが、変更することはできません。したがって、レシートの分散ストレージを通じて、シャードは相互に通信できます。.

シャーディングの前進

イーサリアムでのシャーディングは、CasperPoSのアップグレード後に実装される予定です。最近、そこに イーサリアム2.0に関するいくつかの開発がありました キャスパーとシャーディングの両方の実装が含まれます.

シャーディングは、他のいくつかのプラットフォーム、特にZilliqaにも実装されています。ただし、Zilliqaは現時点では状態シャーディングを実装しておらず、代わりにトランザクションシャーディングと計算シャーディングを利用して高スループットのブロックチェーンを提供することに重点を置いています。.

ジリカZilliqaのガイドを読む

結論

シャーディングは、現在ブロックチェーンプラットフォームの部屋にいる象にいくつかの有望なソリューション、スケーラビリティを提供するのに役立ちます.

ビットコインのライトニングネットワークはテスト段階にあり、これまでに非常に有望な進歩を示していますが、イーサリアムのソリューションは、チューリング完全な世界のコンピューターとして固定されているため、いくつかの固有の課題をもたらします.

シャーディングはプロトコルレベルでのみ直接機能するため、エンドユーザーまたはdapp開発者にとって、学習することは必ずしも適切ではない場合があります。.

とにかく、広大な分散型ネットワークの状態シャーディングを試みるイーサリアムの試みは印象的な取り組みであり、正常に実装されれば、大きな成果となるでしょう。.