シャーディングとは?イーサリアムのスケーラビリティ問題を解決する技術を解説します!

​「シャーディングとは?」

「イーサリアムにもスケーラビリティ問題があるの?」

そう思っている方も多いのではないでしょうか?

この記事では、シャーディングの仕組みやイーサリアムのスケーラビリティ問題について詳しく説明します!


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

そもそもイーサリアム(Ethereum)とは

​イーサリアム(Ethereum)とは、スマートコントラクト分散型アプリケーション(Dapps)を構築し実行する分散型プラットフォームの名称です。

スマートコントラクトはイーサリアムの最大の特徴です。ブロックチェーン上に「プログラミングによって書かれた契約」を載せることができ、とても将来性があります。

このイーサリアム内で使用される通貨の名前も同じく「イーサリアム」と呼ばれ、現在時価総額第2位の仮想通貨です。

 

目次イーサリアム(Ethereum)とはイーサリアムのチャート分析。相場からみる最新価格推移イーサリアムの問題と将来性。コインオタクが分析したイーサリアムの今後の展望 イーサリアムの仕組みは?ビットコインと何が違うの?イーサリアムのここが凄い!イーサリアムのメリットイーサリアムにはこんなデメリットも・・・?!【イーサリアムの入手方法】オススメの取引所4選【イーサリアムの保管方法】ウォレット3選イーサリアムのQ&Aイーサリアムまとめ イーサリアム(Ethereum)とは イーサリアムとは、スマートコントラクトや分散型アプリケーション(Dapps)を構築し実行する分散型プラットフォームの名称です。このイーサリアムのネットワーク内で使用される通貨の名前も同様に「イーサリアム」と呼びその通貨単位が「イーサ(Ether)」です。イーサリアムは現在時価総額2位の仮想通貨です。 めちゃざっくりとした説明をすると、ビットコインにスマートコントラクトという機能をつけたのがイーサリアムというような感じです。イーサリアムではブロックチェーン上にお金のやり取りに加えて契約の情報も書き込むことが出来ます。 スマートコントラクトについて知りたい方はコインオタクの記事をご覧ください! スマートコントラクトとは?ブロックチェーン技術の新たな可能性を東大生が考察!時価総額第二位の仮想通貨イーサリアムの最大の特徴であるスマートコントラクトですが、なにがすごいのかわかっていない人も多いかと思います。そのスマートコントラクトを、具体的にできることから将来性まで考察しました。続きを読む イーサリアムのチャート分析。相場からみる最新価格推移 コインオタクではイーサリアムの投資・トレードに重要な情報がこちらのページでみれるようになっています!イーサリアムのチャートや相場情報、価格予想をリアルタイムで表示し、チャートのテクニカル指数をコインオタクが独自に開発したAIがリアルタイムで分析して売り買いの分析を表示しています。 (2017年7月20日現在) イーサリアムの価格推移です。2017年3月以降の価格の爆上がりは、仮想通貨の認知度が上がってきて投資家やトレーダーが参入してきたことと、ICOがめちゃ加熱していたことがあげられます。

 

スケーラビリティ問題

​最初に、ブロックチェーンのスケーラビリティ問題についておさらいしておきましょう。

簡単に言うと、「ユーザー数やノード数が増えることにより、送金遅延、手数料増加、処理速度の低下などの問題が生じてしまうこと」です。

ユーザー数が増加すると、単純にトランザクション数も増加します。すると、ブロックチェーンがそれらを処理しきれなくなり送金遅延等の問題が生じます。

また、イーサリアムは分散型アプリケーションプラットフォーム(Dapps)です。実際に、ノード数は20000を超えていて、ビットコインのノード数よりも圧倒的に多いので、それだけ分散化されていると言えます。ノード数が多過ぎると、トランザクションの処理の遅延に繋がってしまいます。

ビットコインのスケーラビリティ問題は、ビットコイン分裂騒動などでよく取り上げられているかと思いますが、イーサリアムも将来的にほぼ確実にスケーラビリティ問題に直面します。

また、イーサリアムはお金のやり取りに加えて、スマートコントラクトにより契約内容まで書き込んでいるので、その分データ容量が大きくなり、スケーラビリティ問題が生じやすくなっています。

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

「ビットコインのノードって何だろう?」、「ノードがないと取引できないの?」と、ノードについてお悩みではありませんか?ビットコインやブロックチェーンの技術を説明をする際に当然のように使われる「ノード」という単語、その意味を知っておくと仮想通貨の技術の理解がグッと深まります。そこで今回は、「ノードとは何のことなのか」というところから、特に初心者の方が理解できるように簡単に説明します!これを読んで、ビットコインやブロックチェーンの知識について、一歩先の理解をしましょう!目次ビットコインのノードとは​ビットコインのノードの種類と特徴​​結局、何のノードを建てるのがオススメなのか​​ビットコインのフルノードの数と分布​その他の仮想通貨のノード​まとめビットコインのノードとは​​​「ノード」は、辞書的には「結び目」という意味を持ちます。コンピュータネットワークの中でノードというと、これはネットワークにおける分岐点や中継点のことを言います。つまり一般的には、あるネットワークに接続されているコンピュータ機器を指します。ここからさらに、ビットコインにおける”ノード”が何を意味し、どういった働きを持っているのか説明します!​​ビットコインのノードとは先ほど述べたように、一般的なノードはあるネットワークに接続されているコンピュータ機器のことです。なので、「ビットコインのノード」とは「ビットコインのネットワークに接続している全てのコンピュータ機器」のことを言います。(パソコンは当然のこと、スマートフォンやASICなどの端末も含まれます)ビットコインの取引記録は全てブロックチェーンに保存されており、ノード間で保存・共有されています。ビットコインの保有や送受信を行いたい場合は、ノードとしてそのブロックチェーンを参照する必要があります。ビットコインのノードの役割​ビットコインのノードが持つことのできる役割は、大きく、ウォレット・マイニング・フルブロックチェーンデータベース・ネットワークルーティングの4つに分けられます。ビットコインのノードの役割ウォレットマイニングフルブロックチェーンデータベースネットワークルーティング 

 

​ 目次1.スケーラビリティ問題とは​​2.技術的な解決方法​3.解決する上での問題点4.スケーラビリティ問題に関するニュース​スケーラビリティ問題のまとめ 1.スケーラビリティ問題とは​​ ​ ​ ​ビットコインのスケーラビリティ問題とは、ビットコインのブロックサイズがボトルネックになって、1ブロックに書き込めるトランザクションの数が限られ、データ処理速度が遅くなるので、送金に時間がかかってしまうという問題です。 スケーラビリティ問題を知る上での予備知識​ ブロックチェーンの仕組み ブロックチェーンとは分散型取引台帳の一つで、いくつかの取引をまとめたものをブロックといいます。それらをつなげることで、台帳にするのでブロックチェーンと呼ばれます。ブロックチェーンはネットワーク上に存在し、中央管理者がいません。そのため、誰でも過去の取引全てを確認ができますが改ざんはできません。なぜ改ざんできないかとマイニングという膨大な計算量を必要とする技術(後述)によってブロックチェーンに書かれた取引は絶対正しいということが証明できるからです。 ビットコインは、実際に存在するわけではなく、今までの取引が全部ブロックチェーンにかいてあって、さらにそれがマイニングによって正しいことが保証されているので、自分がどれほどのお金を持っているか確認できるという仕組みです。 詳しく仕組みを知りたい方は、こちらの記事を見て下さい! ビットコインの仕組みとは?ブロックチェーンやマイニング、最新技術を全て解説!ビットコインの仕組みってどうなってるの…?今さら人には聞けないそんな疑問にお答えします!この記事を読めば、ブロックチェーンやマイニングなどのビットコインの基本技術から、導入されたばかりの最新技術まで理解できること間違いなしです!続きを読む マイニングの仕組み

 

シャーディングとは

​シャーディングはイーサリアムのスケーラビリティ問題の解決策の一つだと紹介しましたが、もっとシャーディングを掘り下げていきましょう。

​本来はデータベースシステムの用語

シャーディングとはもともとデータベースシステムの用語で、データーベースの負荷分散の方法を指します。

データを数台のデータベースに分割することで負荷を分散します。

このとき、各データベースをシャードと呼びます。

全てのシャードが一体的に論理データベースを形成し、これはシャード・データベースと呼ばれます。

​イーサリアムのシャーディングとは

​先ほど述べたように、イーサリアムはスケーラビリティ問題に直面しつつあります。

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

その問題を解決する有力な手段の一つがシャーディングです。

ここでは、シャーディングを順序立てて簡単に説明します。

  1. ​ブロックチェーン上にあるノードをシャード(shard)という複数のノードからなるグループにランダムに分割します。
  2. 各シャードは割り当てられたトランザクションのみを処理します。
  3. その結果をシャード間で共有し、コンセンサスを取ります。
  4. シャード内のノードは定期的に、そしてランダムに入れ替えられます。

という感じです。

シャーディングにより、1ノードが処理しなければならないトランザクション数が減ったので、処理時間が大幅に短縮されます。

シャーディングの仕組み

​​上では、シャーディングをざっくり説明しましたが、ここではその仕組みにまで踏み込んで詳しく説明していきます。

シャーディングの手順をもう一度整理しておきます。

シャーディングの手順

  • 1.ブロックチェーン上にあるノードをシャード(shard)という複数のノードからなるグループにランダムに分割します。
  • 2.各シャードは割り当てられたトランザクションのみを処理します。
  • 3.その結果をシャード間で共有し、コンセンサスを取ります。
  • 4.シャード内のノードは定期的に、そしてランダムに入れ替えられます。

 

シャード(Shard) の形成 

シャーディングの手順1と手順2に当たる部分です。

先ほど、イーサリアムは分散型アプリケーションプラットフォーム(Dapps)で、そのノード数は20000を超えていると説明しました。

上の図を見てください。

ここではイーサリアムの総ノード数を20000ノードとします。

例えば、100個のトランザクションが作成されたとき、シャーディングが実装されていない場合、それぞれのノードが100回の検証作業を行う必要があります。


では、シャーディングが実装されるとどうなるのでしょうか?

上の図のように、シャーディングによって、全20000ノードが5000ノードずつの4つのシャードへと分割されました。

すると各シャードには、25個(=100÷4)のトランザクションが割り当てられるので、それぞれのノードは25回の検証作業で済みます!

レシート(Receipt)のやりとり

​シャーディングの手順3に当たる部分です。

​全てのノードを複数のノードのグループ(シャード)に分割し、トランザクションを割り当てることで、各ノードの負荷を減らす仕組みは上で説明した通りです。

ですが、シャーディングはこれで終わりではありません。

どのシャードがどのトランザクションを処理しているのかお互いにコミュニケーションをとる必要があります。

レシート」は取引に基づいて作られ、他のシャードからも見ることができます。

レシートを取引データとしてやり取りすることでコミュニケーションを行っていく仕組みです。

PoSが必要

​イーサリアムは現在PoW(プルーフオブワーク)というコンセンサスアルゴリズムを採用していますが、今後はPoS(プルーフオブステーク)へと移行していきます。

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

各シャードは独立しているので、ハッシュパワーがそれぞれ異なっています。

このような状態では、検証作業をする中でハッシュパワーの歪みが出てくる恐れがあります。

そのような状態で、コンセンサスアルゴリズムが計算力によってブロック承認できるかが決まるPoWのままでは、51%攻撃が簡単にできてしまいます。

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


目次プルーフオブワークとは​​プルーフオブワークとマイニングの仕組み​プルーフオブワークとプルーフオブステークの違い​承認システムは他にもある!​ プルーフオブワークまとめ プルーフオブワークとは​ ​ ​プルーフオブワーク(Proof of Work)とは、ビットコインなどの仮想通貨で採用されている、膨大な計算量を必要とする作業を成功させた人が取引の承認者となり、新たなブロックをブロックチェーンに繋ぐ権利を得られる仕組みのことです。その計算作業をマイニングと言い、マイニングの成功者には報酬が与えられます。 ​ 膨大な計算力が必要な作業って?マイニングって?と思った方、これからその説明をしていくので安心してください! ​プルーフオブワークとマイニングの仕組み​ ​ ​ハッシュ関数が重要! ​プルーフオブワークの説明に入る前に、まずはハッシュ関数というものを説明しなければなりません。このハッシュ関数というのは、値を代入して計算するのは簡単なのに、この値が出るにはどういう値を代入すればいいかが分からないという特殊な関数です。この特徴を活かしてプルーフオブワークという仕組みは成り立っています。 マイニングとはどんな作業? ​プルーフオブワークにおいて、取引を承認し新しいブロックをブロックチェーンに繋げる作業のことをマイニングといいます。このマイニングを最初に成功させた人は報酬がもらえるという仕組みになっています。では、どうやって新しいブロックを繋げる人を決めるのでしょうか。 マイニングという作業において実際にやっていることは、ハッシュ関数に代入するとその頭に決められた個数の0が並ぶ数字が出てくるような値(ナンス)を探すという作業です。つまり、マイニングの成功とはナンス探しの成功を指します。 さて、ここでさっきのハッシュ関数の性質を思い出してください。ハッシュ関数は代入して計算をするのは簡単だけど、その逆を求めるのは困難です。すなわち、「値を代入したときに頭に0が何個並ぶか」はすぐ分かるのに、「頭に0がこの個数並ぶ数が出てくるには何の値を代入すればいいか」は分からないわけです。

 

2018年、コインオタクが最もおすすめする仮想通貨はこちら!!目次Proof of Stake(プルーフオブステーク)とはProof of Stakeの仕組みProof of StakeとProof of Workの違いイーサリアム(Ethereum)はProof of Stakeへ移行Proof of Stakeのデメリットその他の承認システムProof of Stakeについての気になるQ&AProof of Stakeまとめ Proof of Stake(プルーフオブステーク)とは Proof of Stakeとは、多くのアルトコインで採用されている、保有している仮想通貨の量が多いほど取引の承認権、すなわち、新しいブロックをブロックチェーンに繋ぐ権利を得やすい仕組みのことです。ビットコインで用いられるProof of Work(プルーフオブワーク)の改善策として考案されました。 Proof of Stakeを採用する仮想通貨の種類は多い! Proof of Stakeは非常に多くのアルトコインで採用されています。主な通貨としては、Peercoin(ピアコイン)、Nxt(ネクスト)、BlackCoin(ブラックコイン)などがあります。純粋なProof of Stake以外にもDPoS(Delegated Proof of Stake)やPoI(Proof of Importance)などの改変された仕組みを採用するものもあります。 このProof of Stakeはどのような仕組みになっているのでしょうか。 Proof of Stakeの仕組み Proof of Stakeには2種類ある! Proof of Stakeには実は大きく分けて2種類あります。一方はProof of WorkにCoin Age(コイン年数)という概念を導入したもの、そしてもう一方は純粋にコインの保有量だけが関係するものです。 それぞれの仕組みについて見ていきましょう。 Coin Age(コイン年数)+Proof of Work Coin Ageは(コインの量)×(コインを保有している期間) で定められる量です。すなわち、たくさんコインを持っているほど、その保有期間が長いほどCoin Ageは大きくなります。そして、Coin

 

目次51%攻撃とは51%攻撃をされたらどんな危険があるの…?51%攻撃の対策は?51%攻撃で意外とできないこと51%攻撃まとめ 51%攻撃とは 51%攻撃とは、悪意ある集団がブロックチェーンにおける取引の承認権を独占して、不正な取引の承認や正当な取引の否認を行ってネットワークを乱すことを指します。プルーフオブワークでは過半数の計算力、プルーフオブステークでは過半数の通貨を保有すると実行可能になります。 プルーフオブワークやプルーフオブステークについてよく知らないという方はこちらの記事を読んでください! プルーフオブワークの仕組みとは?プルーフオブステークとの違いも説明します!プルーフオブワークは仮想通貨の取引の承認システムの一つです。これはいったいどんな仕組みでどういう特徴を持っているのでしょうか?プルーフオブワークに伴うマイニングという作業や、プルーフオブステークとの違いについても説明します!続きを読む Proof of Stakeとは?仕組みやデメリット、イーサリアムの移行予定などProof of Stakeは仮想通貨取引の承認システムの1つです。ビットコインに次いで有名なあのイーサリアムもこのProof of Stakeへ移行することを発表しています。仕組みや長所・短所はもちろん、イーサリアムの移行時期も教えます!続きを読む 51%攻撃をされたらどんな危険があるの…? 取引の承認権が独占されてしまう! 51%攻撃を行うと毎回ブロックの承認ができるので、マイニング報酬を独占できてしまうのは事実ですがそこはあまり問題ではありません。 51%攻撃で問題なのは、取引の承認権が独占されてしまうため、正しい取引の否認や不正な取引の承認ができてしまうことです。 正しい取引が承認されない場合、例えば、ビットコイン決済可能なお店で客がビットコインでの支払いを行った時に、承認されるはずのその取引が51%攻撃のせいで取り消されてしまって、お店側が損害を被ることになります。 不正な取引の承認ができてしまうと二重支払いが可能になってしまいます。 二重支払いとは?

 ​

シャーディングの実装ロードマップ 

​シャーディングのロードマップが2018年3月に発表されました。

それによると、シャーディングは3段階に分けて行われます。

近日中に実装される「ルビー」に続き、2018年後半に「サファイア」、2019年中に「ダイアモンド」を予定しており、最終的にネットワーク全体への実装を目指しています。

ルビー

​実装時期:3月時点での「まもなく」。(2018年7月現在、まだ実装されていません。)

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

サファイア

実装時期:​2018年後半

第二フェーズの「サファイア」では、「ルビー」をイーサリアム上のネットでも使えるように磨き上げます。

ダイアモンド

実装時期:​2019年

以前のリリースの最良の部分を調整します。これはもっとも困難で時間がかかるリリースだとされています。


Q&A

イーサリアムのスケーラビリティ問題の他の解決策はあるの? 

イーサリアムはシャーディングと並行し、「キャスパー」、「プラズマ」という解決策も開発中です。

現在、イーサリアムはコンセンサスアルゴリズムにPoWを用いているが、これをPoSへ移行させるためのプロジェクトが「キャスパー」です。

また、「プラズマ」はイーサリアム開発者のVitalik Buterin氏とライトニング・ネットワークの開発者Joseph Poon氏が発表したプロジェクトで、階層ツリーを基盤にしたサイドチェーン技術で、1秒間あたりの取引件数やデータ量を劇的に向上すると期待されています。

シャーディング実装はETH価格へ影響するの?

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

イーサリアムがスケーラビリティ問題を克服し、分散型アプリケーションプラットフォームとしての需要を満たせるようになれば、その価値は上昇するでしょう!


まとめ

いかがでしたでしょうか?

イーサリアムが更なる進化を遂げる上で、スケーラビリティ問題の解決は必須です。

今後も、イーサリアム関連の技術開発に注目していきましょう!