目次

    全ての目次を見る
  1. ビットコイン(bitcoin)の課題の一つにあるのがスケーラビリティ問題
  2. ビットコイン(bitcoin)のスケーラビリティ問題とは
  3. ビットコイン(bitcoin)のスケーラビリティ問題に対する解決策
  4. ビットコイン(bitcoin)のスケーラリビティ問題のまとめ
Large that is unbelievable  527464715 1258x837

ビットコインの課題として51%攻撃問題(※1)と並べてよく挙げられるのがスケーラビリティ問題です。

スケーラビリティ問題を解決するために、様々な技術や手法が導入された仮想通貨も現れてきたため、そういった通貨の情報と一緒にスケーラビリティ問題というキーワードを目にすることも増えてきました。

この記事にたどり着いた方の中には、

『そもそもスケーラビリティ問題とは?』

『スケーラビリティ問題はどのように解決できると考えられているのか?』

など気になられている方も多くいらっしゃるかと思います。

そこで今回は、『スケーラビリティ問題の概要』や,『提唱されているスケーラビリティ問題の解決策』などの情報をわかりやすく解説していきます。

(※1)51%問題とは、ネットワーク全体(マイナー全体)の計算能力の過半数が特定の個人や組織に支配されることを表します。

詳しく知りたいという方は、以下の記事をご覧ください。

理解のための前提知識

ビットコインでは、決済や送金などの取引データ(トランザクション)をまとめたブロックを、ブロックチェーンと呼ばれる取引台帳で管理しています。

ビットコインのブロックサイズ(ブロック内に格納できる情報量)は1MBと一定で、格納できる取引データにも制限があります。

記事を読み進めていく中で理解に行き詰まる方は、一度以下のブロックチェーンの仕組みに関する記事をお読みいただくと、理解がしやすいかと思います。

ビットコインのスケーラビリティ問題とは、トランザクション(取引データ)の増加ブロック容量が1MBに設定されていることで生じている問題です。

ビットコインでは、トランザクションをまとめたブロックがブロックチェーンに追加されることで、決済や送金が完了したと見なされます。

そして、このブロックチェーンにブロックを追加する作業は、約10分に1個のブロックが追加されるようなシステムが作られています。

ビットコイン決済や送金を利用するユーザーが増えてトランザクションが増加した場合、ビットコインのブロックサイズの上限は1MBと設定されているため、タイムリーにブロックに格納しきれないトランザクションが発生し、なかなか決済や送金が完了しないといった事態が起きうるのです。

スケーラビリティ問題によって生じる一連の事態を整理すると以下のようになります。

スケーラビリティ問題が生じるまでの一連の流れ

  1. ビットコインは大体10分に一度1MB分の取引データしか承認することができない
  2. 取引量が10分間に1MBを大きく超えるようになる
  3. 承認しきれない取引データが溢れ始める
  4. いつまでたっても決済や送金が完了しないという問題が発生

すなわち、ビットコインのスケーラビリティ問題は、ビットコインの取引データの処理能力(処理速度、処理量)に関する問題ともいえます。

実施にビットコインのトランザクション量は2016年から1年間で約3倍になっております。

このスケーラビリティ問題の解決のためには「一定時間に承認できる取引データ量を引き上げる」必要があり、これに対してさまざまな施策が提唱されております。

次の段落では、スケーラビリティ問題への解決策をわかりやすく解説していきます。

スケーラリビティ問題を解決するために提唱されている(提唱された)施策は以下の7つです。

  1. Segwit(セグウィット)
    →署名の移動
  2. 可変ブロック
    →ブロックサイズの拡大
  3. Segwit2X
    →ブロックサイズの拡大
  4. ライトニングネットワーク
    →オフチェーン上(ブロックチェーン外)でトランザクションを処理
  5. サイドチェーン
    →メインチェーンに別のブロックチェーンを接続
  6. シュノア署名(Schnorr Sgnature)
    →特定のトランザクションのデータサイズを縮小
  7. MAST
    →特定のトランザクションのデータサイズを縮小 このうちSegiwitはすでにビットコインで実装されています。

では、それぞれの詳細を解説していきます。

Segwitとは『Segregated Witness』の略語で、『署名の分離』という意味です。

ビットコインのトランザクションのデータの中には、ビットコインを決済や送金に使用した人の署名(サイン)も格納されているのですが、その署名をトランザクションから分離することがSegwitです。

署名を分離することで、ブロックに格納できるトランザクションのデータ量が増加するので、スケーラビリティ問題への解決策として、2017年8月に実装されました。

2018年1月現在も利用者が増加を続け、次第にトランザクションのブロックへの格納に遅延が起きてきています。

可変ブロックとは、ビットコインのブロックサイズをトランザクションに応じて、変更することを可能にする考えのことです。

Segwit実装前、可変ブロックを主張するBitcoin Unlimited派とSegwitを主張するBitcoin Core派が対立しました。

可変ブロックは、ブロックのトランザクションに応じて、ブロックサイズを変更することができるため、スケーラリビティ問題の解決に繋がりますが、Bitcoin Core派は、可変ブロックが本質的な解決策ではないと反対しました。

結果、ビットコインではSegwitが実装され、Bitcoin Unlimited 派の一部がスケーラビリティ問題を解決するために、可変ブロック案を継承したビットコインキャッシュをビットコインから分裂させました。

Segwit2Xとは、Segwitの実装されたビットコインのブロックサイズを1MBから2MBに変更するという施策です。

ブロックの容量が大きくなれば、1ブロックに格納できる取引データが多くなるため、スケーラリビティ問題の解決につなげることができます。

2017年11月にビットコインにSegwit2Xが実装される予定でしたが、ビットコインコミュニティの賛成が得られなかったため、実装は見送られていました。

2017/12/28にビットコインから分裂して誕生した、ビットコインSegwit2X(B2X)は、このSegwit2xを主張していたコミュニティとは別のコミュニティが誕生させたコインです。

ライトニングネットワークとは、ネットワークで直接結びついていない者同士の、安全で即時性のある送金が可能になる技術です。

例えば、AさんとBさんはすでに、ネットワーク上で接続されていて、BさんはCさんとも接続されているが、AさんはCさんと接続していないとします。

ライトニングネットワークでは、ビットコインのブロックチェーンをオンチェーンとすると、オフチェーン(ブロックチェーン外)で一部のトランザクション処理をするため、ブロックで管理するトランザクションを減らすことが可能です。

すなわち、ライトニングネットワークを活用すれば、スケーラビリティ問題を解決が期待できるのです。

このライトニングネットワークを活用すれば、ビットコインでは困難とされていた少額決済が実現するとされているため注目が集まっています。

画像参考元Blockstream 公式

サイドチェーンとは、ビットコインのブロックチェーンをメインチェーンとすると、メインチェーンと相互関係がある、別のブロックチェーン(サイドチェーン)のことを指します。

メインチェーンのブロックの承認時間、すなわち、トランザクション処理速度を変更することはできませんが、サイドチェーンではブロックの承認時間を調整することが可能です。

サイドチェーンを活用したブロックの承認時間の短縮の手順は以下の通りです。

  • ⑴ブロックの承認時間を短縮したサイドチェーン上で、1度ブロックの承認作業を行う
  • ⑵サイドチェーン上の情報をメインチェーン上に反映させる
  • ⑶メインチェーン上でのブロックの承認時間が短縮される

すなわち、サイドチェーンを使用すればトランザクションの処理能力を向上させることが可能なので、ビットコインのスケーラビリティ問題に効果的といわれています。

シュノア署名とは、トランザクションに必要な署名データを1つの署名にまとめることで、トランザクションのデータ量を縮小させる方法です。

ビットコインのトランザクションでは、複数のインプット(使用可能なビットコインのこと)を支払いに使用することがあるのですが、このとき、それぞれのインプットに対して署名が必要で署名のデータ量が多くなってしまいます。

シュノア署名を活用すれば、複数のインプットに対して1つの署名で済むので、トランザクションのデータサイズが減少するします。

トランザクションのデータ量を縮小できるので、スケーラビリティ問題の解決につながるとされています。

MASTとはMerklized Abstract Syntax Treeの略称で、特殊なトランザクションのデータサイズを削減することが可能で、スケーラビリティ問題の解消が期待されています。

特殊なトランザクションとは、例えば「AがBからの1BTCを2ヶ月間受け取らない場合、CとDが受け取とることができる」というような(複雑な)条件が設定されたトランザクションのことです。

従来の方法で、このようなトランザクションを設定する場合、トランザクションのデータ量が多くなってしまうのですが、MASTを活用することで、このデータ量を縮小することが可能で、スケーラビリティ問題に効果があります。

ビットコインのスケーラビリティ問題は以下の2つの理由を原因として起こっていましたね。

  • ビットコインのトランザクションの拡大
  • ビットコインのブロック容量が小さい

そこで、スケーラビリティ問題解決のために以下の7つの方法が提唱されています。

  1. Segwit
  2. 可変ブロック
  3. Segwit2X
  4. ライトニングネットワーク
  5. サイドチェーン
  6. シュノア署名(Schnorr Sgnature)
  7. MAST

ビットコインは決済手段として開発された仮想通貨で、決済スピードに影響を与えるスケーラビリティ問題はビットコインが抱える課題の一つです。

このスケーラビリティ問題が解決されれば、ビットコインが世界共通の決済手段になることが期待できるので、解決が期待されています。