スケーラビリティ問題を解決する4つの策とは?

スケーラビリティ問題を解決する4つの策とは?

この記事のポイント!

  • ブロックサイズと生成速度は変更が難しい
  • Segwitやメインチェーン外取引(サイドチェーン)で解決の可能性

こんにちは、hayata(@hayata_cryptoです。

今回は、仮想通貨のスケーラビリティ問題について、どのような改善方法があるのかを分かりやすく解説します。

そもそも、仮想通貨におけるスケーラビリティ問題とは、ブロックチェーンの仕様によって一定以上の送金が短時間に行われると、その送金がスムーズに行われなくなることだと簡単に理解しておいてください。

スケーラビリティ問題の4つの改善策

ここからは、仮想通貨のスケーラビリティ問題4つの改善策について解説します。

4つの改善策

  • ブロックサイズを大きくする
  • 取引データを小さくする
  • ブロック生成時間を短縮する
  • ブロックチェーン外で取引をする

これら4つの改善策があると考えられます。順に説明します。

1、ブロックサイズを大きくする

まず、ブロックサイズを大きくすればスケーラビリティ問題は改善します

現在、BTCは1MBという容量のブロックを生成し、そこに取引を書き込んでいます。なので、単純にその容量を例えば2MBにしてしまえば単純計算で2倍の数の送金が可能になります。

実際にブロックサイズを大きくした例としては、ビットコインキャッシュ(BCC、BCH)が挙げられます。BCHは、ブロックサイズを8MBにしたことでより多くの取引が送金詰まりなく可能となりました。

以下、イメージです。(実際のブロックには、取引データのみが載っている訳ではないが、説明の簡略化のため記載していません。)

可視化すると、ブロックサイズの違いが明確に分かりますね。

 

「じゃあ、ビットコインもブロックサイズ大きくすればいいじゃん!!!」と思いますよね。しかし、そう簡単な話ではありません。ビットコインがブロックサイズを変更しないのは、それなりの理由があります。

理由として一番重要なものは、マイニングの集中化問題です。

ブロックサイズが大きくなると、新しく発見されたブロックが他のマイナーに伝わるまでの時間がより長くなります。そうすると、マイニングに成功したマイナーがより有利となり、大規模なマイナ―がより多くマイニングに成功するようになるので、小規模なマイナーがブロックを発見しずらくなりマイニングを辞めてしまうでしょう。

それによって、マイナーの集中化が進みます。集中化が進むと、ブロックチェーンの売りである分散型という構造が崩れます。最悪の場合、ある一つのマイナーが51%以上の割合でマイニングするまでに集中化がすすめば、ブロックチェーン自体の書き換えが可能となります。思うがままです。

とはいえ、ビットコインとビットコインキャッシュはどちらも個人でマイニングするにはハードルが高いです(笑)

また、それ以外にも、ブロックサイズの変更にはハードフォークという不可逆的なアップデートが必要となることや、サトシナカモトの論文では1MBがセキュリティ的にも良いと書いてあるので、利便性の向上よりもセキュリティ面を重視していることからビットコインのブロックサイズ増加は起きていません。

次へ、進みます。

2、取引データを小さくすること

他にも、取引データを小さくすることによって一つのブロックにより多くの取引データを載せられるようになるので、スケーラビリティ問題は改善します。

取引データを取引データを小さくすることをSegwitと言います。

イメージはこのような感じです。取引データの中の一部をWitnessという別領域に格納することによってより多くの取引を一つのブロックに載せることを可能にしました。

もちろん、ブロックサイズは変更されていないものとして考えています。

また、ビットコインはSegwitに対応していますが、ビットコインキャッシュはSegwit対応していません。BCCはブロックサイズが8MBもあるので、Segwitしなくても比較的大きな容量を使うことが出来ています。

また、ブロックサイズの増加とSegwitをどちらも採用されている通貨もあり、Segwit2x(ブロックサイズ2MB でSegwit対応)や、ビットコインダイアモンド(BCD)は8MBでSegwitに対応しています。

3、ブロックの生成時間を短縮する

ビットコインのブロック生成時間を短縮することでも、スケーラビリティ問題は改善します。

現状、ブロックは10分に1つ生成されるように調整されており、合意さえ得られれば技術的には生成時間短縮は可能です。(合意は得づらいと思います。)

しかし、短縮することでデメリットが生じます

ブロック生成時間の短縮により、送金はより素早く完了しますが、フォークが頻繁に起こることにより二重支払いの問題が起こり易くなることなど脆弱性が高まります。

フォークを簡単に解説します。以下の図を参考にしてください。例えばAさんとBさんがほぼ同時にマイニングに成功したとして、次にCさんがAさんのブロックの次のブロックをマイニングしたとします。

その時に、Bさんのブロックはフォークしたブロックとされて、AさんやCさんが発見したブロックの後ろに今後のブロックが生成されていくことになります。これは、より長く繋がっているブロックが正しいものとして認められるためです。

フォーク自体は自然に起きることなのですが、ブロックの生成時間を短縮するという方法は、結果的にフォークによる脆弱性が高まる為にされていません。

hayata
BTCは利便性よりもセキュリティを重視しているという点で、ブロックサイズとブロックの生成時間の変更をしないことは方向性が一貫していますね。

4、ブロックチェーン外で取引する

ブロックチェーン(メインチェーン)の外で取引データのやり取りをすれば、スケーラビリティ問題は改善します

具体的に言うと、チェーン外で行われた取引の一部だけをメインチェーンに記録することでブロックチェーンに記載するデータ量を減らすことで改善させることが出来ます。

そのような仕組みとして、ライトニングネットワークやサイドチェーンが考えられます。

そして、もう一つはサイドチェーンという技術です。

サイドチェーンは、ビットコインのメインチェーンとは別のもう一つの補助的なチェーンと覚えておいてください。

有名なアルトコインで言うと、LISKはサイドチェーンの技術を採用しています。

また、サイドチェーンにより、BTCにもイーサリアムやLISKのようにスマートコントラクト(ブロックチェーンに契約を記載できるようにすること)が使えるようになります。

ただ、スケーラビリティ問題改善の為に重要なのは、メインチェーンからサイドチェーンとその逆の送金が可能になることです。これにより、BTC送金がよりスムーズになり、スケーラビリティ問題が改善すると考えられています。

サイドチェーンも話し始めると記事一つ書けてしまうので今回はここまでとします。

終わりに

最後に、本文をまとめます。

スケーラビリティ問題の改善には、4つの改善策が考えられています。

しかし、ブロックサイズとブロック生成時間の変更はセキュリティ面を考えてされて来ませんでした。今後も、されないであろうと思います。

一方で、取引データの削減(Segwit)やメインのブロックチェーン外で取引をすることについて開発が進んでいると考えられます。

hayata
少しづつですが日々技術の発展は進んでいます。様々な技術によって、セキュリティ面を重視しつつ広く普及していけるようになればいいですね!
hayata
読んでいただきありがとうございました。twitterフォローして頂けると嬉しいです!

ニュース/解説記事

Enable Notifications OK No thanks