どうも!こんにちは!
クリプトマッスルです!
イーサリアムのスケーラビリティ問題を解決するとして注目を集めている「シャーディング(Sharding)」について今日は説明していきます。
コンテンツ
シャーディングとは?
簡単に言うと、
ブロックチェーンの取引処理を分割してスケーラビリティ問題を解決する技術
つまり、シャーディングとは、取引処理を分割し、複数のグループ(複数のノードからなる)で検証を同時進行する事によってイーサリアムのスケーラビリティ問題を解決する為の技術の一つということになります。
順序立てると以下のようになります。
- ブロックチェーン上にあるノードをシャード(shard)という複数のノードからなるグループにランダムに分割。
- 各シャードは割り当てられた取引のみを処理。
- その結果をシャード間で共有し、コンセンサスを取る。
- シャード内のノードは定期的かつランダムに入れ替えられる。
このようになります。
イーサリアムのスケーラビリティ問題とは?
このシャーディングという技術の開発が始まった大きな理由としては先ほどから述べているイーサリアムのスケーラビリティ問題というのがあります。
イーサリアム(Ethereum)とは
イーサリアム(Ethereum)とは、スマートコントラクトや分散型アプリケーション(Dapps)を構築し実行する分散型プラットフォームの名称になります。
また、このイーサリアムのプラットフォーム内で使用される仮想通貨の名前も同じく「イーサリアム」と呼ばれ、現在(2018年8月22日)時価総額第2位の仮想通貨になります。
スケーラビリティ問題
上記でも述べてように、イーサリアムはユーティリティー機能を持ったプラットフォームとして多方面で応用されており、そのユーザー数やノード数は日々増加しています。
しかし、その反面で数が増加する事によりトランザクションの処理が追いつかなくなってしまっており、インターネット通信の速度遅延のように処理速度が遅くなってしまっているのが現状です。
まとめると、
- 取引に遅延が生じてしまう
- 取引ごとの送金手数料が高くなってしまう
これが「スケーラビリティ問題」となります。
現金を使わない決済方法としてクレジットカードやディビッドカードなどがありますが、イーサリアムはこのクレジットカード人口を将来的に上回ることを一つの目標にしています。
ですので、この「スケーラビリティ問題」は非常に厄介なのでシャーディングによって解決しようとしているわけです。
シャーディングの仕組み
このようにイーサリアムのスケーラビリティ問題を解決するために開発が進んでいるシャーディングですが、どういった仕組みなのかを説明します。
現在、イーサリアムは、取引の検証作業を単一のノードが全てを行っていますが、シャーディングを使用することによってその処理をシャード(Shard)と呼ばれる複数のグループに分散して検証作業を割り当てることができるようになります。
例えば上記図のように100のノードがあるとすれば、1つ20のノードずつグループ分けすることができます。
このようにノードをグループ分けする事で検証作業が並列化され、検証を同時に検証を行う事ができるようになります。
この場合100のノードで10の取引の検証をするとすれば、本来ならグループあたりの検証回数が「10回」になるところが、シャーディングによる役割分担によって、1グループに20のノードが存在しているので、各グループあたりの検証回数は「2回」で済む計算となります。
そうすることで、シャーディングによって1ノードあたりの取引の検証回数を減らす事ができ、これによってスマートコントラクトの処理能力も最適化されることになるのです。
メリット
上記で述べたのが同時にシャーディングのメリットにもなります。
- 検証作業の削減による検証スピードの向上
- スマートコントラクトの処理能力の最適化
デメリット
しかし、このシャーディングも一見、完璧な技術のように思えますが、デメリットもあります。
このシャーディングによる分割作業では各シャードが独立した状態となり、それぞれ異なったハッシュパワーを持つようになるため、それぞれハッシュパワーの強力なシャードや弱いシャードが生まれてしまいます。
その結果、現在のPoW(プルーフオブワーク)アルゴリズムの場合だとハッシュパワーの強いシャードが弱いシャードに対して51%攻撃を仕掛ける事が出来てしまうのです。
→仮想通貨のアルゴリズムとは?【概要と種類】
コンセンサスアルゴリズムの種類と違いをわかりやすく解説
51%攻撃の脅威と実現性!!
なので、シャーディングは高度なセキュリティを維持する為にPoS(プルーフオブステーク)アルゴリズムへ変更する事を前提として設計されています。
シャーディングの今後のロードマップ
そのシャーディングですが、実際に導入する発表が今年2018年の3月に発表されており3段階のフェーズに分かれて行われるとのことです。
- ルビー:近日中
- サファイア:2018年後半
- ダイヤモンド:2019年中
ルビー
この第1フェーズでは、シャーディングの簡略版が作成される予定です。
2018年3月時点で「近日中」となっていましたが、2018年8月22日現在でまだ実装されていません。
サファイア
この第2フェーズでは第1フェーズの「ルビー」に磨きをかけて、イーサリアムのテストネット上での実行を目指しています。
ダイヤモンド
この第3フェーズでは第2フェーズの「サファイア」にさらに磨きをかけて、イーサリアムのメインネット上での実装を目指しています。
このフェーズは1番時間がかかるとされています。
マッスルまとめ
ここまでイーサリアムのスケーラビリティ問題を解決する技術の一つと言われている「シャーディング(Sharding)」について仕組みやメリット・デメリットなどを踏まえて説明してきました。
今だに実装時期が具体的にいつになるかは不明確ですが、イーサリアムのユーザーアドレス数は日々増加しており、需要もこれからさらに増えていくでしょう。
そういった観点からもこれからもイーサリアム関連の技術開発から目が離せません。