ブロックチェーンを利用する人が増えることで起こるスケーラビリティ問題とは?
パブリックチェーンの参加者が増えるとその分、パブリックチェーン内のデータ容量も増えてきます。その分、大きな処理を行っていく事が困難になります。 この問題をスケーラビリティ問題と呼び、大きな処理に対応するために様々な取り組みが行われています。今回はそんなスケーラビリティ問題について紹介します。


博士!友達がスケーラビリティ問題について話をしていたんだけど、どんな内容か知っている?

ほほう、その友達はちゃんと考えておるの。パブリックチェーンにもデータの限界があるじゃろ。そのため処理する速度が落ち状況に応じた対処が出来なくなる問題じゃ。

僕たちがたくさん使えば使えば使うほど遅くなるってこと?

そうじゃ。データが入る箱があっても容量に限界はあるからの!

じゃあさどんどん新しい箱を作ればいいんじゃないの?

その箱の作る速度が遅いのが問題になるんじゃ。じゃあ今日はそこらへんの話をするかの。
スケーラビリティ問題とは
スケーラビリティ問題は上記でも説明した通り、パブリックチェーンを利用する人が増えていき、データ容量がどんどんと大きくなってしまい、処理する事が難しくなってしまう事です。
パブリックチェーンの規模の拡大やタスク量が増加する事でこの問題は必ずおきます。パブリックチェーンユーザーが増えていけば、それだけパブリックチェーンが圧迫されることになります。
また、パブリックチェーンのブロックに書き込む事ができるトランザクションにも限界があり、1回のマイニングで処理できるデータ量も決まっているので未処理のトランザクションが溜まっていくことになります。
ユーザーが増えていくほどに未処理のトランザクションが溜まっていき、行った取引が承認されるまでに時間がかかってしまいます。
取引が承認されないとなると送金なども遅れてしまい、仮想通貨の取引に支障をきたすことになります。結果として取引が完了するまでに数日かかることもあります。
例えば、ビットコインの場合だと1つのブロックのデータサイズは1MBと決められており、この1つのブロックに書き込む事ができるトランザクションの数も限られています。
無限にトランザクションを入れていくの厳しいですし、新しくブロックが生成されるスピードも決まっています。
トランザクションができるスピードが加速する中でブロックが生成されるスピードは一定なので、どんどんブロックが足りなくなってしまいます。
マイニングを行うマイナーがこういった取引を処理していくことになりますが、様々な取引がある中で取引手数料が高いものから処理していきます。
そのため、取引手数料が少ないものから順番に溜まっていきます。あまりにも取引手数料が少ないと永遠と取引が成立しないなんてこともあります。
これによって手数料がどんどんと高騰していき、仮想通貨を扱うユーザーの首を締めていくことになります。
さらにノード数の増加についても問題があります。パブリックチェーンの場合誰でも使用してノードを増やす事ができます。ノードが増えていくことに関してはそこまで問題はありませんが、その中に低スペックなノードが入っているという事が問題になってきます。
この低スペックなノードが足を引っ張ってしまい、取引の承認に時間がかかってしまうこともあります。
スケーラビリティ問題はブロックチェーン技術の存続にも関わってくる技術です。ブロックチェーンが使えないとなると、ブロックチェーン技術を活用しているサービス全体が支障をきたし、サービス機能の破綻につながりかねません。
すでに多くの技術者が解決に向けて動き始めています。しかし、めぼしい解決策が出来上がっていないのも事実です。ブロックチェーンの存続にも関わってくるスケーラビリティ問題ですが、重要になってくるの解決策の方向性です。
解決策の方向性(スケールアップとスケールアウト)
スケールアップ
スケーラビリティ問題の解決策として大きく2つの種類に分かれています。1つは「スケールアップ」です。スケールアップとはメモリーやハードデゥスクを増設することによってスペックアップを図り、サーバー自体の処理速度を上げていくという方法です。
システムを増強をさせだいのであれば一般的な方法ですが、なかなかうまく行かない方法でもあります。P2Pネットワークではそれぞれのノードのスペックに依存しているので、それぞれでスケールアップを行っていく必要があります。
しかし、これを強制することはできず、マシンのスペックを上げましょう!となっても全員が首を縦に振るわけではありません。そのため、ネットワーク全体のスケールアップは難しいとされています。
スケールアウト
もう1つの方法が「スケールアウト」という方法があります。スケールアウトとはサーバーの台数を増やす事でタスクを分散して全体のパフォーマンスを向上させるという方法です。
こちらも一般的に使用される方法ですが、ブロックチェーンのシステム上ではノードを一斉に台帳に更新するため、ノードが増えたらからと言ってタスクを分散できているわけではありません。
よって、スケールアウトでのスケーラビリティ問題もあまり期待できません。
結果的にスケールアウトもスケールアップも方法論としては魅力的ですが、結局は分散して様々な人が行っている作業なので、一斉に向上させるというのもは難しいようです。
ブロックチェーンは非中央集権で中央管理者がいないため、利便性を感じるところもありますが、こういったところでデメリットが生まれてきます。
どうやってブロックチェーンに関わる全ての人を統一して問題を解決するのかが重要になってきます。

今の所めぼしい解決策はないんだね。

そうじゃの。2つの方法を紹介したがどちらも根本的な解決ではないの。

今後どうやって解決していくかが問題だけど、まだまだかかりそうだね。

誰かが統率しているわけではないのでパブリックチェーンの有用化が大事じゃの