シャーディングとは!?スケーラビリティ問題の解決策になるのか?仕組み・メリット・デメリット 基本解説!

シャーディングとは!?スケーラビリティ問題の解決策になるのか?仕組み・メリット・デメリット 基本解説!

仮想通貨に興味を持ちだし、色々調べていくと必ずといっていいほど目にする問題があります。

それは「スケーラビリティの問題」です。

現在、ユーザー数やネットワークのノード数の増加に伴い、BitcoinやEthereumにおいてブロックチェーンのスケーラビリティ問題が深刻視されています。

このスケーラビリティ問題に対処するためにBitcoinやEthereumはさまざまな解決策が提案されています。

その中でも大きな影響を与えると考えられているのが、今後Ethereumでも導入予定である「シャーディング(Sharding)」という技術です。

そこで、この記事ではEthereumのスケーラビリティの問題やシャーディングの仕組みや特徴・メリットやデメリットについてご紹介していきます。

Ethereumのスケーラビリティ問題

Ethereumはユーティリティー機能を持ち合わせたブロックチェーンプラットフォームとして、主にICOや分散型アプリ(Dapps)などで非常にたくさんの需要があります。

しかし、Ethereumのユーザーアドレス数やノード数の増加その需要が多い故にEthereumブロックチェーン内での取引が必然的増えたことにより、その取引処理が追いつかず処理しきれない事から取引速度の遅延問題が生じてしまいます。

そして、今も尚ユーザーアドレス数やノード数は増加傾向にあります。

このことを「スケーラビリティ問題」と呼びます。

Ethereum開発者のVitalik氏は「そもそも現状、全てのノードが全部のトランザクションを処理している。これはEthereumの処理能力が1つのノードの処理能力と同じになってしまっているということだ。」と述べています。

そのEthereumのスケーラビリティ問題に対する解決策の一つとして、今回紹介するシャーディングという技術が開発されています。

シャーディング(Sharding)の仕組み・特徴

シャーディングとは、一般にはデータを複数のサーバーで分散管理する技術を指す。Ethereumの開発段階におけるシャーディングの導入は、トランザクションの承認を行う単一の集団を複数グループに分散させ、各々のグループでトランザクションの承認を分担して行うようにすることを意味する。

簡単に説明するとブロックチェーンのトランザクション処理を分割し取引検証作業効率を向上させる技術。

従来の承認作業よりスムーズな承認作業が実現されスケーラビリティの問題の解決策として期待される技術である。

仕組み|取引処理の分割・検証作業並列化

Ethereumでは、取引における検証作業を1つのまとまったノード群が全て行わなければなりません。

それはつまり、トランザクションの数が増えればそれに応じて全てのネットワークを構成するノードの負担が増加するという事になります。そのことにより、トランザクションの処理速度が低下してしまっています。

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

例えば、イーサリアムの総ノード数が20000ノードで100個のトランザクションがあるとします。

従来であれば、すべてのノードが100回のトランザクションの検証作業を行う必要があります。

一方、シャーディングでシャードが5つに分割されたとします。

そうすると総ノード数20000が4000ノードずつに分割され、分割されたノードは20回(100÷5)の検証作業で済みます。

シャーディングの流れ

  1. 複数のグループに分かれたシャードに、従来は1つのノード群が行なっていた検証作業をランダムで割り当てます。
  2. それぞれのシャードが並列的にトランザクションの検証作業します。
  3. 処理結果をシャード間で共有しコンセンサスをとります
  4. シャード内のノードは定期的にランダムで入れ替わります。

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

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

1.検証作業の分担による検証速度の向上

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

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

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

このように検証作業や処理能力を最適化する事で、Ethereumの問題点であったスケーラビリティの問題を解決する事が期待されています。

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

シャーディングも一見、完璧な技術のように思えますが、デメリットもあります。

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

※ハッシュパワーとはマイニングを行う上で必要な処理能力を表す数字の事

その結果、現在のPoWアルゴリズムの場合だとハッシュパワーの強いシャードが弱いシャードに対して簡単に51%攻撃を仕掛ける事ができてしまうのです。

そこで、シャーディングはセキュリティ性を維持させる為にPoSアルゴリズムへ変更する事を前提に設計されいます。

シャーディング(Sharding)の将来性

シャーディングは仮想通貨の大きな問題の1つスケーラビリティの問題を解決・改善する事への期待の高い技術です。

今後Ethereumでも導入予定がされていますが、現在、アルトコインのZilliqa(ジリカ/ZIL)がシャーディングを実装した最初の仮想通貨としても話題になっています。そのトランザクション処理能力はテスト段階でも脅威的な数値を叩き出しており、やはり、シャーディングは期待値が高いと言えます。

今後シャーディング導入によりEthereumなどの仮想通貨がスケーラビリティの問題を克服し、分散型アプリケーションとしての需要を満たすと仮想通貨市場全体の価値も上昇する可能性があり、これからどのように技術開発が発展していくのか注目が集まります。