ブロックチェーンのシャーディングとは?仕組みと課題を解説
主要な洞察
シャーディングは、ブロックチェーンを複数の小さなセグメント(シャード)に分割し、トランザクション処理を並列化してネットワーク全体の処理能力を高めるデータベースのスケーリング手法です。この仕組みによりスケーラビリティや効率性は大きく向上しますが、シャード間の通信の複雑化や、個々のシャードが攻撃に対して脆弱になるなどのセキュリティリスクも伴います。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つの課題があります:シャード間の通信とセキュリティです。
- Communication. ネットワークを独立したセクターに分けると、それぞれが事実上別のブロックチェーンとなります。1つのシャード内のユーザーやDAppが、他のシャードとやり取りするには専用の通信プロトコルが必要です。
- Security. シャーディングされたネットワークでは、未分割のネットワーク全体を攻撃するよりも、1つのシャードを制圧する方がはるかに容易です。たとえばBitcoinネットワーク全体の51%攻撃には莫大なハードウェアと電力コストがかかりますが、単一シャードの乗っ取りははるかに安価かつ現実的です。
シャーディングは万能な解決策ではなく、複雑さやセキュリティリスクも伴います。分割されたブロックチェーン内の1つのシャードが攻撃されると、全体のネットワークに悪影響を及ぼす可能性があります。
また、異なるノードグループが異なるセグメントを管理するため、各シャードは実質的に独立したネットワークとして動作します。これらのセグメント間で円滑に通信するための特別な仕組みが必要です。
実装が不十分だと、二重支払い(ダブルスペンド)などの問題が発生し、ネットワークのセキュリティに大きな影響を与えることもあります。既存のブロックチェーンにシャーディングを導入するには、ネットワークの分割やデータの再割り当てが必要なため、技術的なハードルも高いです。
Ethereumはこの課題に対し、ランダムサンプリングを用いた解決策を提案しています。シャードプロトコルをランダムに割り当ててブロック認証を行う仕組みで、PoS(プルーフ・オブ・ステーク)への移行によって実現可能となりました。
シャーディングを導入しているネットワーク
最初にシャーディングを導入したのはZilliqaです。スケーラビリティ問題をシャーディングで解決することを目指すブロックチェーンプラットフォームで、テストネット段階では1秒あたり2,828件のトランザクション処理を達成しました。
NEARブロックチェーンは「シャーディング対応のPoSブロックチェーン」を掲げており、低スペックなデバイスでもノード運用が可能なシャーディング技術を採用しています。
Ethereumもシャーディング技術の導入を計画しています。他にもCardano、QuarkChain、Plianなどがシャーディングを採用しています。
まとめ
理論上、シャーディング技術はその課題を克服できれば「ブロックチェーン・トリレンマ」解決の鍵となります。分散性やセキュリティを損なうことなく、ブロックチェーンのスケーラビリティを大きく向上させる可能性があります。