仮想通貨

シャーディングとは?その仕組みやメリット、イーサリアムの今後を解説

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


シャーディング(Sharding)とは、イーサリアムブロックチェーン内の取引処理を複数のノード群で同時検証することで、イーサリアムのスケーラビリティ問題を解決する技術です。

この技術はイーサリアムのソリューション技術として現在開発されており、イーサリアムの創設者であるヴィタリックブテリン氏は自身のTwitterにて「シャーディングが来ている」と発言しました。

では、まずは現在イーサリアムが直面している問題について見ていきます。

イーサリアムのスケーラビリティ問題


イーサリアムはユーティリティー機能を持つブロックチェーンプラットフォームとして、主にICOやDappsなどで現在多くの需要があります。
しかし、その需要に伴いイーサリアムブロックチェーン内での取引が増えた事によって、その取引処理が追いつかず滞ってしまうという問題が発生しています。

これを「スケーラビリティ問題」と呼んでいますが、この理由としてはイーサリアムのユーザーアドレスやノード数の増加が考えられ、下記図のようにそのアドレス数は右肩上がりに増え続けています。


引用:Etherscan

2018年5月現在、その数は3,500万を超えており、昨年2017年の7月頃からその数は爆発的に増えています。
なお、アドレスと同時にノードの数も増えつづけており、ブロックチェーン内でトランザクションの処理や検証作業を行うノードの数は3万を超えています。

このノードの数が多いということはそれだけ非中央集権化されているという事となりますが、同時にトランザクションの処理や検証作業の遅延に繋がってしまいます。
これはトランザクションが全てのノードによって検証される必要がある為であり、その処理スペックはノードによって異なっておりバラバラだからです。

このように、イーサリアムではこれらの数が増加する事で必然的にトランザクションが増えてしまい、それを処理しきれないという大きな問題点があるのです。

シャーディングの仕組みと特徴


上述したスケーラビリティ問題を解決する為にこのシャーディングの開発が進んでいるのですが、そもそもシャーディングと呼ばれる概念はイーサリアム独自の技術ではなく、データを分割して複数のサーバに分散させる機能として確立していました。

では、イーサリアムで導入されるその仕組みや特徴を順番に見ていきましょう。

取引処理の分割

まず、イーサリアムでは上述した通り、取引における検証作業を単一のまとまったノード群が全て行わなければなりません。
それはつまり、トランザクションの数が増えればそれに応じて全てのネットワークを構成するノードの負担が増加するという事になります。

ですが、シャーディングではこのようなトランザクション処理を複数のグループに分割する事で検証作業を役割分担します。


そして、このグルーピングされた複数のノード群の事を「シャード(Shard)」と呼んでいます。

検証作業の並列化

以上のように複数のグループに分かれたシャードに、従来は単一のノード群が行なっていた検証作業をランダムで割り当てます。

従来のモデルの場合、例えば1000のノードで構成される単一のノード群が100のトランザクションの検証をするとしたケースだと、検証しなけれならない作業回数は1ノード群あたり100回、そしてそれぞれのノードが全て検証するとすれば「1000ノード×100データ」で10万回の作業が必要となります。

しかし、これをシャーディングによって分割作業させる事でそれぞれのシャードでの検証作業回数を減らす事ができます。

例えば、1000のノードを10分割して「100ノードで1つ」のシャードに分けたとしましょう。
これだとトランザクションの処理もそれぞれ分担されるので、各シャードの検証作業は、「100×10」となります。
そこで各シャードの検証作業数は1シャード辺り10回、それぞれのノードの合計作業数は「100ノード×10データ」で1000回まで削減できます。

このように、分割作業をする事で1グループ辺りの検証作業回数を減らす事が出来るのです。

なお、このような作業をヴィタリック氏はイーサリアムを「島」に例えて説明しています。

“Imagine that Ethereum has been split into thousands of islands. Each island can do its own thing. Each of the islands has its own unique features and everyone belonging on that island, i.e. the accounts, can interact with each other and they can freely indulge in all its features. If they want to contact with other islands, they will have to use some sort of protocol.”

「イーサリアムが何千もの島に分かれていると想像して下さい。それぞれの島は独自の機能を持っており、その島に所属する誰もが互いにやり取りをする事ができ、全ての機能を熱中できる自由を持っている。もし彼らが他の島と連絡を取るとすれば、何らかのプロトコルを使わなければならないだろう。」
引用:bitrates

 

シャーディング(Sharding)によるメリット

このようなシャーディングを実装することで以下のようなメリットがあります。

検証作業の削減による検証スピードの向上

上述した通り、シャーディングは検証作業を分割して同時進行するので、個々のノードの作業回数を劇的に減らす事ができ、それによって今まで遅延状態だった検証速度の向上に繋げる事ができます。

スマートコントラクトの処理能力の最適化

検証速度の向上によってスマートコントラクトの処理能力が最適化され、ネットワーク全体の処理効率も良くなります。

このように検証作業や処理能力を最適化する事で、イーサリアムの問題点であったスケーラビリティの問題を解決し、より一段とスケールアップが見込めるようになります。

シャーディング(Sharding)のデメリットと解決策

一方でシャーディングには問題点もあり、このシャーディングによる分割作業では各シャードが独立した状態となり、それぞれ異なったハッシュパワーを持つようになります。
なので、それぞれハッシュパワーの強力なシャードや弱いシャードが生まれてしまいます。

現在イーサリアムはPoW(プルーフオブワーク)アルゴリズムである為に、PoWの場合だとハッシュパワーの強いシャードが弱いシャードに対して51%攻撃を仕掛ける事が可能となってしまうのです

よって、シャーディングは高度なセキュリティを維持する為にPoSアルゴリズへ変更する事を前提として考案されているのです。

PoS(プルーフオブステーク)とは、PoWのように専用マシンを使って複雑な計算を解く方法ではなく、通貨の保有量と保有期間の大きさによってマイニングの難易度が決まるアルゴリズムです。

仮想通貨の合意形成方法であるPoS(プルーフオブステーク)とは?仮想通貨を健全に運営する為の合意形成PoSとは 仮想通貨を安全に動かして行く為にはコンセンサス・アルゴリズム(合意形成)というもの...

イーサリアムは今後PoWからPoSへの移行が予定されていますが、PoSであれば上述した51%攻撃のリスクを防ぐことができ、高いセキュリティ性を維持できるようになるのです。

なお、アルゴリズムの変更の進捗は以降「Casper」によってひとまずPoWとPoSのハイブリッド型のアルゴリズムになるとされており、その後は完全なるPoSの移行が予定されています。
シャーディングの実装にあたってはこのCasperの進捗も追う必要があり、PoSへの移行はイーサリアムにとって非常に重要となります。

シャーディング(Sharding)のロードマップと今後


以上がシャーディングについてでしたが、そのシャーディングを実際に導入する為のロードマップが2018年3月に公表されており、それは以下の3フェーズに分かれています。

  • ルビー
  • サファイア
  • ダイアモンド

まず、ルビーは近日中に実装する予定とされており、ここでシャーディングの簡略版が作成されます。
続いて2018年後半に実装予定のサファイアでは、イーサリアムのテストネット上での実行を目指しており、最後の2019年実装予定のダイアモンドではイーサリアムのメインネットでの実装を目指します。

まだ道のりは長く実装時期もいつになるかは不透明ですが、イーサリアムの需要は今でも増えており、そのユーザーアドレスの数は驚くほどに増加しています。
今後の潜在的な需要を受け入れる為には、シャーディングのような根幹的技術が何よりも重要になってくるでしょう。

ABOUT ME
Kenta@フリーライター
Kenta@フリーライター
新卒で入社した大手金融機関を11ヶ月で退職し、仮想通貨・ブロックチェーンに特化したフリーライターとして活動中。現在は場所を選ばず住所不定の”Decentralized”な生活を満喫している。