要点

  • シャーディングはブロックチェーンを「シャード」と呼ばれる小さな区画に分割し、1つずつではなく並行してトランザクションを処理できるようにします。

  • 各シャードは独立したデータベースとして機能し、それぞれが自分の担当する一部のトランザクションを処理するため、個々のノードの負荷が減ります。

  • シャーディングは、トランザクションの処理能力を高め、ノード運用者のハードウェア要件を下げ、ネットワーク全体の効率を改善する可能性があります。

  • トレードオフとして、追加される複雑さ、シングル・シャード攻撃のリスク、複数のシャードにまたがるトランザクションに関する課題があります。

  • イーサリアムは2024年3月のカンクンアップグレードを通じて、Proto-Danksharding(EIP-4844)と呼ばれるシャーディングの中間的な形を導入し、レイヤー2ネットワークの手数料を引き下げました。フル・ダンクシャーディングは引き続きロードマップ上にあります。

Binance Academy courses banner

はじめに

ブロックチェーン技術は、取引を記録するための分散化され透明性のある方法を提供しますが、よく知られた制約があります。それはスケーラビリティ(拡張性)です。ネットワークが成長し、より多くのユーザーがトランザクションを送信するほど、処理が遅くなり、利用コストが高くなることがあります。これはしばしば「ブロックチェーンの三角問題(トリレンマ)」と呼ばれ、同時にスケーラビリティ、セキュリティ、分散化を達成することの難しさを指します。

この問題のスケーラビリティ側に対処しようとするアプローチの1つがシャーディングです。元々はデータベース管理の技術でしたが、いくつかのブロックチェーンプロジェクトによって、分散化を損なうことなくネットワークがより多くのトランザクションを扱えるようにするために応用されてきました。

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

シャーディングとは、ブロックチェーンネットワークを「シャード」と呼ばれる小さな区画に分割するプロセスです。各シャードにはネットワークのデータのうち自分の担当する部分が含まれ、自分自身のトランザクションを独立して処理します。すべてのノードがネットワーク全体のすべてのトランザクションを保存・検証する必要があるのではなく、各ノードは1つのシャードだけを担当します。

これは、デフォルトでは多くのブロックチェーンの仕組みから大きく変わります。通常のブロックチェーンでは、すべてのノードがネットワーク全体にまたがるすべてのトランザクションを処理し、保存しなければなりません。この方式は安全ではあるものの、すべてのノードが同期し続ける必要があるため、ネットワークの処理速度がどこまで伸びるかは制限されます。

シャーディングはどのように機能しますか?

シャーディングを理解するには、まずブロックチェーン上でデータが通常どのように処理されるのかを見て、そのうえでシャーディングによって何がどう変わるのかを確認するとわかりやすくなります。

逐次処理と並列処理

典型的なブロックチェーンでは、すべてのノードがトランザクションを1つずつ順番に処理します。つまり、ネットワーク全体の速度は、各ノードが扱える量によって制限されます。ブロックチェーンが成長するほど、これはボトルネックになっていきます。

シャーディングは並列処理を導入します。同じトランザクションに対してすべてのノードが取り組むのではなく、ノードの異なるグループが、それぞれ別のシャードを同時に処理します。これにより、ネットワークは同時により多くのトランザクションを処理できます。

水平分割(Horizontal partitioning)

シャーディングでは、水平分割という技術を使用し、データを列ではなく「行」に分けます。各シャードは、自分が担当するトランザクションについてのトランザクションデータの完全なサブセットを保持します。各シャードがネットワークの自分の範囲についての完全な記録を持つため、データの完全性が保たれます。

Horizontal partitioning illustration

水平分割は分散化を支えるため、ブロックチェーンのシステムでは好まれます。ノードは1つのシャードのデータだけを保持・検証すればよくなり、ネットワーク参加に必要なストレージ容量や計算能力が減ります。

垂直分割(Vertical partitioning)

垂直分割では、データを行ではなく列に分けます。垂直分割の各パーティションには、各エンティティのためのデータの一部、またはデータセット全体のうち、特定の属性に関する部分だけが含まれます。

Vertical partitioning illustration

シャーディングのメリットは?

シャーディングは、ブロックチェーンネットワークにとっていくつかの潜在的な利点をもたらします:

  • スループットの向上:複数のシャードでトランザクションを並行に処理することで、シャーディングされたネットワークは、単一チェーン方式よりも1秒あたりで大幅に多くのトランザクションを処理できる可能性があります。

  • ハードウェア要件の低下:各ノードは1つのシャードのデータのみを保存するため、ストレージと処理の負荷が軽減されます。結果としてノードの運用がより簡単で安価になり、ネットワークの分散化を高められます。

  • より優れたスケーラビリティ:シャーディングされたネットワークは理論上、需要の増加に応じてより多くのシャードを追加でき、性能の低下を比例して招くことなく拡張できます。

これらの利点は、程度の差こそあれ理論上のものです。実際のネットワークでどれほど改善が見込めるかは、シャーディングがどのように実装されるか、そしてどのようなトレードオフを受け入れるかに左右されます。

シャーディングの限界は?

シャーディングは、非シャーディングのブロックチェーンには存在しない新たな課題を持ち込みます:

  • シングル・シャード攻撃:攻撃者がネットワーク全体を攻撃するよりも、1つのシャードを乗っ取るために必要なリソースははるかに少なくて済みます。そのため、個々のシャードは、51%攻撃の一種に対してより脆弱になります。

  • クロスシャードの複雑さ:2つの異なるシャードにまたがるデータを含むトランザクションは管理が難しくなります。取引の最中にあるシャードが別のシャードの状態を正しく追跡できない場合、二重支払いのようなエラーが発生する可能性があります。

  • データ可用性:特定のシャードを担当するノードがオフラインになると、そのシャードのデータが一時的に利用できなくなり、ネットワークの動作が中断されるおそれがあります。

  • 同期のオーバーヘッド:シャードを連携させ続けるには、ネットワーク設計にさらなる複雑さが加わります。シャード管理のミスは、不整合やパフォーマンス問題につながる可能性があります。

こうしたトレードオフが、シャーディングが技術的に実装が難しく、多くのネットワークが段階的なアプローチを採用する理由を説明しています。

イーサリアムではシャーディングはどのように使われていますか?

「イーサリアム2.0」のアップグレード計画の一部としてシャーディングが最初に議論されてから、イーサリアムのスケーリングロードマップは大きく進化してきました。実行シャーディングを直接実装するのではなく、イーサリアム財団はロールアップ中心の戦略へと舵を切りました。そこでは、レイヤー2のロールアップがオフチェーンでトランザクション実行を行い、そのデータをイーサリアムのメインネットに書き込みます。

この戦略の一環として、イーサリアムは2024年3月のカンクンアップグレードでProto-Danksharding(EIP-4844)を導入しました。EIP-4844は、「blob-carrying transaction(ブロブを運ぶトランザクション)」という新しい種類のトランザクションを導入しました。blobにより、レイヤー2ロールアップは、blobデータが一時的に保存される(約18日間)うえ、イーサリアム仮想マシン(EVM)で処理されないため、以前よりはるかに低コストでイーサリアムに大量のデータを投稿できます。

フル・ダンクシャーディングは、イーサリアムのロードマップにおける次のフェーズです。blobシステムを拡張し、データ可用性サンプリング(ノードがデータを丸ごとダウンロードせずとも、利用可能であることを検証できる技術)を可能にします。これにより、イーサリアムは1ブロックあたりのより多くのblobを扱えるようになり、レイヤー2利用者のコストを大幅に下げられる見込みです。執筆時点では、フル・ダンクシャーディングはまだ実装されていません。

よくある質問(FAQ)

ブロックチェーンにおけるシャーディングとは何ですか?

シャーディングは、ブロックチェーンを「シャード」と呼ばれる小さな独立した区画に分割します。各シャードは自分自身のトランザクションを処理し、自分自身のデータを保存します。これによりネットワークの異なる部分が並行して動作でき、ネットワークが扱えるトランザクション総数を増やせます。

イーサリアムは現在シャーディングされていますか?

イーサリアムは、カンクンアップグレード(2024年3月)で導入されたProto-Danksharding(EIP-4844)という、中間的な形のシャーディングを実装しています。これにより、レイヤー2ネットワークは高価なcalldataではなく、低コストのblobにトランザクションデータを投稿できます。多くのシャードにわたってデータ可用性サンプリングを可能にするフル・ダンクシャーディングは、現在も開発中です。

シャーディングの主なリスクは何ですか?

主なリスクには、攻撃者が全ネットワークを攻撃するよりも少ないリソースで1つのシャードを狙えるシングル・シャード攻撃、そして注意深く扱わないと二重支払いのようなケース(エッジケース)を引き起こしうるシャードをまたぐトランザクションの複雑さがあります。また、特定のシャードを管理するノードがオフラインになるとデータ可用性の問題が発生することもあります。

シャーディングはレイヤー2ソリューションの利用とどう違いますか?

シャーディングは、ベースとなるブロックチェーンがデータを保存し処理する方法を変更するレイヤー1のスケーリング手法です。ブロックチェーンのスケーラビリティはレイヤー2ソリューションによっても対応できます。レイヤー2ではトランザクションをオフチェーンで処理し、その要約をメインチェーンに投稿します。イーサリアムの現在のロードマップでは、両者は協働します。シャーディング(blobを通じて)は、レイヤー2データをイーサリアムに投稿するコストを下げ、一方でロールアップがトランザクション実行をオフチェーンで担います。

最後に

シャーディングは、ブロックチェーンのスケーラビリティを改善する有望な技術ですが、複雑さとセキュリティにおける現実的なトレードオフが伴います。この概念は理論上の提案から、実用的な段階的実装へと進化してきました。特に、イーサリアムのEIP-4844によって顕著に進展しています。研究が続き、より多くのネットワークがシャーディング設計を試すにつれて、この技術はさらに発展していく可能性があります。どのような特定の実装が成功するかは、時間の経過とともにスループット、セキュリティ、分散化のバランスをどれだけうまく取れるかにかかっています。

さらなる読み物

  • ブロックチェーンのレイヤー1とレイヤー2:スケーリングソリューションの比較

  • イーサリアムとは何か?仕組みはどうなっているのか?

  • オプティミスティック・ロールアップ vs ゼロ知識(ZK)ロールアップ:違いは?

  • イーサリアムのカンクンアップグレードとは何ですか?

  • ブロックチェーンのスケーラビリティ:サイドチェーンと決済チャネル

免責事項:本コンテンツは「現状のまま」の形で一般的な情報および教育目的のために提供されています。いかなる種類の表明または保証もなく、金融・法律・その他の専門的助言を意図するものではありません。また、特定の製品やサービスの購入を推奨するものでもありません。適切な専門家から助言を得てください。第三者の寄稿によって作成された場合、その見解は当該第三者の寄稿者に帰属し、Binance Academyの見解を必ずしも反映するものではありません。デジタルアセットの価格は変動し得ます。投資した金額の価値が下がる場合も上がる場合もあり、投資額を回収できない可能性があります。投資判断はすべて自己責任で行うものとし、Binance Academyはいかなる損失についても責任を負いません。詳細は、利用規約、リスクに関する警告、Binance Academyの利用規約をご確認ください。