ブロックチェーンのシャーディングとは?仕組みと課題を解説

Author logo
Patrick Dike-Ndulue
Post image

主要な洞察

シャーディングは、ブロックチェーンを複数の小さなセグメント(シャード)に分割し、並列でトランザクション処理を行うことでネットワーク全体の処理能力を高めるスケーリング技術です。この手法は拡張性と効率性を大きく向上させますが、シャード間の通信の複雑化や、各シャードが攻撃に対して脆弱になるなどの課題も伴います。Zilliqa、NEAR、Ethereumなどのネットワークがシャーディングを導入・検討しており、これらの課題が解決されれば、分散性やセキュリティを損なわずにスケーラビリティを実現できる「ブロックチェーン・トリレンマ」の解決策となる可能性があります。

データベース開発における大きな課題の一つがスケーリングです。データ量や処理件数が増加すると、システムのパフォーマンスも向上させる必要があります。

シャーディングは、データベースを複数の独立したセグメントに分割し、それぞれを別々のサーバーで管理するスケーリング技術です。

この技術をブロックチェーンに応用すると、ネットワークを複数のセクター(シャード)に分割することになります。各シャードには固有のスマートコントラクトやアカウント残高が含まれ、特定のネットワークノードがそれぞれのシャードを担当します。 

These nodes are responsible for verifying transactions only in their assigned shard rather than for all transactions on the blockchain.

シャーディングが解決する課題とは?

プロジェクトが人気になるほど、利用者が増え、トランザクション数やDAppの起動、ネットワーク上の処理も増加します。その結果、トランザクション処理速度が低下し、手数料も高騰して、プロジェクトの拡大や発展の妨げとなります。ネットワークをシャードに分割することで、ブロックチェーンの処理能力を向上させ、こうした問題を解決できるのです。

帳簿の特定セグメントを担当するノードグループがいることで、ネットワーク全体のノードは、すべてのトランザクションごとに全ブロックチェーンを維持する必要がなくなります。これにより、オペレーションは直列ではなく並列で検証され、ネットワークのスループットが向上し、スケーリング問題が解消されます。

さらに、シャーディングを採用したノードは、負荷が分散されるため、計算能力を増やさずに効率的に動作できます。

シャーディングの仕組み

ブロックチェーンは、何千台ものコンピューターが協力して稼働し、その計算能力によって分散型台帳でのトランザクション処理やスマートコントラクトの実行、DAppの展開などが可能になります。ネットワークが逐次実行型の場合、各ノードはすべてのトランザクションを処理しなければならず、検証に多くの時間がかかります。たとえばEthereumでは、1秒あたり最大10件の処理にとどまります。

ノードを追加しても、ブロックチェーン全体の性能が向上するわけではありません。検証チェーンが長くなるだけです。

シャーディングの原理は、直列処理モデルをやめて並列処理モデルに切り替えることにあります。各シャードは特定の計算のみを担当し、多数のトランザクションを同時に処理します。いわば「ブロックチェーンの中のブロックチェーン」であり、すべての情報を圧縮した形でメインチェーンに伝達します。

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

シャーディングには大きく2つの課題があります。それはシャード間の通信とセキュリティです。 

  1. Communication. ネットワークを独立したセクターに分割すると、それぞれが実質的に別のブロックチェーンとなります。1つのシャード内のユーザーやDAppが、他のシャードとやり取りするには、専用の通信プロトコルが必要となります。
     
  2. Security. シャーディングされたネットワークでは、全体を攻撃するよりも、1つのシャードを乗っ取る方がはるかに簡単です。必要なハッシュレートが大幅に低くなるためです。例えば、Bitcoinネットワークで51%攻撃を行うには、数十億ドル規模のハードウェアと、毎日数億ドルの電力が必要ですが、1つのシャードを制圧するのは、はるかに安価かつ容易です。

シャーディングは万能な解決策ではなく、複雑さやセキュリティ面での懸念も伴います。分割されたブロックチェーン内の単一シャードを狙うことで、攻撃者は比較的少ない計算力で悪意あるトランザクションを発生させ、ネットワーク全体に影響を及ぼすリスクがあります。

また、異なるノードグループが異なるブロックチェーンセグメントを管理するため、各シャードは実質的に独立したネットワークとして動作します。これらのセグメント間で円滑に通信するためには、特別な仕組みが必要です。

実装が不十分だと、二重支払い(二重払い)などネットワークのセキュリティに重大な影響を及ぼす問題が発生する可能性もあります。さらに、既存のブロックチェーンネットワークでシャーディングを導入するのは、ネットワークの分割やデータの再割り当てが必要となるため、非常に難易度が高いです。

Ethereumはこの課題に対し、ランダムサンプリングを活用した解決策を提供しています。シャードプロトコルをランダムに各セクションへ割り当て、ブロック認証を行う仕組みです。これはネットワークがプルーフ・オブ・ステーク(PoS)方式へ移行したことで実現しました。

シャーディングを導入しているネットワーク

最初にシャーディングを導入したのはZilliqaです。スケーラビリティ問題をシャーディングで解決することを目指すブロックチェーンプラットフォームで、テストネット段階では1秒あたり2,828件のトランザクションを達成しました。

NEARブロックチェーンエコシステムは、自らをシャーディング対応のPoSブロックチェーンと位置付けており、低スペック端末でもノードが稼働できるとしています。

Ethereumもシャーディング技術の導入を計画中です。他にもCardano、QuarkChain、Plianなどがシャーディング対応ネットワークとして挙げられます。

まとめ

理論上、シャーディング技術はその課題が解決されれば、ブロックチェーン・トリレンマの最終的な解決策となり得ます。実現すれば、分散性やセキュリティを損なうことなく、ブロックチェーンのスケーリングが可能となります。
 

Author logo
著者 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
レビュー担当者 Rukkayah Jigam

Writer & editor covering digital assets and product updates.