前回、モナコインをご紹介した際にスケーラビリティ問題について少し触れました。
今回はそのスケーラビリティ問題についてお話します。
ビットコインのスケーラビリティ問題とは、ビットコインのブロックサイズがボトルネックになって、1ブロックに書き込めるトランザクションの数が限られ、データ処理速度が遅くなるので、送金に時間がかかってしまうという問題です。
※スケーラビリティ問題を知る上での予備知識
<ブロックチェーンの仕組み>
ブロックチェーンとは分散型取引台帳の一つで、いくつかの取引をまとめたものをブロックといいます。
それらをつなげることからブロックチェーンと呼ばれています。
ブロックチェーンはネットワーク上に存在し、中央管理者がいません。
そのため、誰でも過去の取引全てを確認ができます。
ビットコインは、実際に存在するわけではなく、今までの取引が全部このブロックチェーンに記載され、さらにそれがマイニングによって正しいということが保証されているので、自分がどれほどのお金を持っているか確認できるという仕組みです。
<スケーラビリティ問題とは?>
スケーラビリティ問題とはそもそもなにかというとブロックサイズが決まっていることにより生じる問題です。
一つのブロックに対して書き込めるトランザクションの数が決まっているため、取引の処理が遅延してしまうという問題です。
特にビットコインについてスケーラビリティ問題はかなり大きな問題になっています。
ビットコインでは、ブロックサイズが1MBに制限されているため、データの処理速度が他の決済システムに比べてとても遅く、将来的にビットコインがもっと流行って日常決済で使われるとなったときにこれは大きな問題になります。
これをしっかり解決していかないと決済における仮想通貨の利便性が失われてしまうため、仮想通貨の今後の普及や、価格にも大きく影響します。
ビットコイン界隈ではこれに関する話題が値動きにも大きく関係してきます。
これを解決するだけで、大きな価値がつきます。
<技術的な解決方法は?>
〇ソフトフォーク
ソフトフォークとは、イメージとしては、条件を厳しくするもので、今までのものに追加して新たな規則を加えるものです。
そのため、通貨としては今まで使っていたものをそのまま使えます。
チェーンが永久的に分裂するのではなく、新たな検証規則に基づいて承認されたブロックを、前の古い検証規則に基づいて承認されたものにつなげることで、新しい検証規則で承認されてできたブロックと、古い検証規則で承認されたブロックが一時的にできます。
ですが、この分裂は一時的なものです。
なぜなら、新しい検証規則を採用する人が大多数なら、新しい検証規則で承認されたブロックチェーンをつなげようとして、古い検証規則によって承認されたものは、間違っているブロックチェーンだとみなされるからです。
そのため一度ソフトフォークを行うと、昔の検証規則で承認されたブロックチェーンに戻すことはできません。
それをするためにはハードフォークしなければいけません。
〇ハードフォーク
ハードフォークとはソフトフォークとは違い、昔の検証規則を完全に無視して、新たな検証規則を適用するフォークのことで、昔のブロックチェーンとの互換性がありません。
そのため、ブロックチェーンは分裂し、ハードフォークを行うと、「アップデート前の通貨」と「アップデート後の通貨」が生まれ、それらは全く別の通貨になります。
ハードフォークでは昔の検証規則によって承認されるブロックチェーンはそのまま存在するので、新たな検証規則で承認されるブロックチェーンに不具合が生じたときに昔の検証規則を使ったブロックチェーンに戻ることができます。
ただ、単純に新たな通貨が生まれるということはマイナーがどちらの通貨をマイニングするか、によってハッシュレートが変わってくるので、一部のマイナーによって価格操作される可能性があるというのがリスクです。
〇Segwit
Segwitとは、Segregated Witnessの略で簡単にいうとブロックあたりのトランザクションの大きさを小さくすると言う解決策です。
具体的には、今はトランザクションごとに行っている電子署名を他の場所に保管することで、ブロック内に空きを作ることでブロックサイズを小さくします。
Segwitのデメリットとして、一回導入したら以前の状態には戻れないというのがあり、導入してその後になにか不具合が生じても解決できません。
また、マイナー側のデメリットとしては、計算速度を上げる機械のASIC Boostが使えなくなるかもしれないので、大手マイナーはSegwit導入には反対していました。
ですが、それはマイニングが非中央集権的になるということなので、ユーザーにとっては、メリットとも言えるでしょう。
現状のビットコインでは、このSegwitは既に導入されています。
しかし、スケーラビリティ問題を恒久的に解決するには至っていません。
〇ブロックサイズの上昇
ブロックサイズを大きくすればいいと思うのは、誰もが思う発想かと思います。
しかし、ブロックサイズを上げるというのはハードフォークで、デメリットもあります。
そもそもブロックチェーンはみんなで取引台帳を監視するというのがビットコインの特性でした。
しかしブロックサイズを大きくすると、ブロックチェーンのデータが大きくなりすぎて、普通のパソコンでは保存するだけの容量がなく、大容量端末が必要になります。
そのため、一部のユーザーによって、ブロックチェーンが管理され、ブロックチェーンの「みんなで監視する」という特性がなくなってしまいます。
スケーラビリティを解決する上での一番の問題点はマイナー側の意見と開発者側・ユーザー側の意見が違うということです。
大手マイナーはSegwitが導入されると計算速度を上げる機械のASIC Boostが使えなくなるかもしれないという懸念があり、Segwit導入には反対し、ブロックサイズをあげるという解決策を推奨していました。
それに対し、マリアビリティの問題もあり、開発者・ユーザーはSegwit導入を支持していました。
そのため、コミュニティ内での世論はまっぷたつに割れてしまい、スケーラビリティ問題の解決があまり進まずにいるのが現状です。
「スケーラビリティ問題」がどれほど解決しなければいけない問題なのかはおわかりいただけたと思います。
この解決策は様々出ていますが、どれもデメリットがあり、永久的に解決するものではないと議論されています。
もしこの問題を解決できる通貨が生まれたとしたら、ビットコインに変わる存在になるのではないでしょうか。
また、ビットコインは利用者数、知名度ともにナンバー1の通貨で、開発も常に進み活発化しています。
そのためスケーラビリティ問題を解決するようなソフトフォークが実施される日がくる可能性もあります。
これからの開発状況に期待もしながら、ビットコインからも目が離せませんね。
今後もさらに注目していきましょう。