【図解】シャーディングとは?イーサリアムの問題を解決する技術のメリット

▼おすすめの取引所ランキング

シャーディング(Sharding)とは?

シャーディングを一言で言うと…

ブロックチェーンの取引処理を分割してスケーラビリティ問題を解決する技術

シャーディング(Sharding)とは、取引処理を分割して複数のグループで検証を同時進行する事でイーサリアムのスケーラビリティ問題を解決する為の技術です。

そもそもシャーディングはデータを複数のサーバに分散させる「分割データベース」という意味の用語であり、イーサリアムの独自の技術というわけではありません。

このシャーディングは既にイーサリアムで用いる為の開発が進んでおり、2018年5月にはイーサリアムの開発者であるVitalik氏がその完成が近づいている事を発表しました。

https://twitter.com/VitalikButerin?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fcoinchoice.net%2Fethereum-sharding-program%2F

では、以下よりそんなシャーディングについて解説していきます。

シャーディング開発の背景とスケーラビリティ問題

このシャーディングの開発が進められていた背景として、イーサリアムのトランザクションの遅延問題がありました。

イーサリアムは多岐にわたるユーティリティー機能を持ったプラットフォームとしてICOやDappsなどに多く応用されており、そのユーザー数やノード数は日々増加しています。

しかし、それらの数が増加する事によってトランザクションの処理が追いつかなくなってしまうといった問題が発生しており、イーサリアムが多くの場面で扱われるようになった反面、まるでインターネット通信の速度遅延のように処理速度が遅くなってしまっているのです。

例えば1秒あたりのトランザクション数はビットコインだと3〜7であり、イーサリアムだと7〜15程度です。

このキャパシティがセキュリティと利便性のトレードオフとなる事はわかりますが、それだとVISAなどの迅速な処理には敵いません。

これを「スケーラビリティ問題」と呼んでおり、今後のイーサリアム発展の為の課題なのです。

シャーディングの仕組みとメリット

さて、シャーディングは上述したスケーラビリティ問題を解決する為に開発されたソリューション技術ですが、それはどのような仕組みなのでしょうか。

現状イーサリアムでは、トランザクションの検証作業を単一のまとまったノードが全て行っていましたが、シャーディングではその処理をシャード(Shard)と呼ばれる複数のグループに分散して検証作業を割り当てます。

このように取引処理をシャードへランダムに分割することで、従来よりも検証作業の回数を減らしてネットワーク全体の処理効率を高める事が出来ます。

これをVitalik氏は「イーサリアムが何千もの島々に分割される」といった例でシャーディングを表現していました。

なお、上述した通り今まではまとまったノード群がトランザクションの全て検証作業をしており、例えば100のノードがあった場合、その100ノードが作成されるトランザクションの全てを検証しなければなりません。

しかし、シャーディングを使うことによってこれを役割分担させる事ができます。

下記図のように、100ノードが存在しているとすれば、それを20ノードで1つのノード郡5つにグルーピングします。

このようにノードを割り当てする事で検証作業が並列化され、各グループで検証を同時に検証を行う事ができます。

仮に100のノードで10のトランザクションの検証をするとすれば、従来ならグループあたりの検証回数が「10回」でしたが、シャーディングによる役割分担によって、1グループに20のノードが存在している各グループあたりの検証回数は「2回」で済む計算となります。

このように、シャーディングによって一ノードあたりの取引の検証が分割されて作業数を削減する事ができ、これによってスマートコントラクトの処理能力が最適化されます。

シャーディングはPoSの導入を前提とされている

イーサリアムは現在PoWを採用していますが、今後は「Casper」によってPoWとPoSのハイブリッドとなり、そして行く行くは100%PoS採用のアルゴリズムへと移行します。

そして、このシャーディングはPoSの導入を前提に設計されています。

上述したシャーディングによる各ノードの分割作業では、それぞれのグループにあるシャードが独立した状態となり、ハッシュパワーがそれぞれ異なっています。

このようにそれぞれが独立した状態であると、検証作業をするにあたってハッシュパワーの歪みが出てくる恐れがあり、ハッシュパワーの強力なシャードが他のシャードに対して簡単に攻撃が出来てしまいます。

よって、これがPoWアルゴリズムの場合だと51%攻撃が簡単に出来てしまう可能性があるでしょう。

このような事からシャーディングはPoSの導入を前提にされており、PoSであればそういった攻撃を防ぐ事ができます。

PoSのアルゴリズムは通貨の保有量と保有期間によってブロックを承認できるかが決まるので、PoWのようにハッシュパワーの強いシャードが悪意を持って攻撃を働かせることができなくなります。

よって、シャーディングではPoSが導入されていなければセキュアにネットワークを維持する事が困難となるのです。

シャーディングの今後のロードマップ

このシャーディングのロードマップは2018年の3月に公開されており、以下のように大きく3フェーズに分かれています。

  • ルビー;近日中
  • サファイア:2018年の後半
  • ダイアモンド:2019年

ルビー

第一フェーズの「ルビー」では簡略版のシャーディングが作成される予定であり、現在作成中となっています。

サファイア

第二フェーズの「サファイア」ではルビーリリース後、イーサリアムのテストネット上で実行できるようにします。

ダイアモンド

第三フェーズの「ダイアモンド」ではメインネット上にあるイーサリアムへのシャーディング実装を2019年目処に目指しています。

実際の開発がスケジュール通りに行くかは定かではないですが、開発進捗はCasperと併せて追っておく必要があるでしょう。

まとめ

シャーディングをまとめると以下3点です。

  • 取引の検証作業を分割する事で1ノードあたりの検証作業を削減する。
  • スマートコントラクの処理能力を最適化してトランザクション処理速度を向上させる。
  • PoSの導入を前提として開発された技術

以上がシャーディングについてでしたが、今後のイーサリアムの発展の為には必要不可欠となる技術となるでしょう。

大手仮想通貨取引所であるCoinbaseの共同設立者Ehrsam氏は、今後イーサリアムが「Dappsのサポートをする為には今より100倍以上のスケーラビリティの改善が必要である」と発言しました。

イーサリアムは圧倒的需要の高い仮想通貨であり、今後も更に需要は高まってくるでしょう。

現在はイーサリアムのスケーラビリティ問題を解決する為に他にも「ライデンネットワーク」や「プラズマ」といったソリューション技術が開発されていますが、後はスケーラビリティ問題だけの状態と言っても過言ではないのでしょうか。


イーサリアム (ethereum) 用語解説