スケーラビリティとは?
ブロックチェーンは、第三者を介さずに取引を記録する公開台帳として知られています。ブロックチェーンに保存された取引記録は、ノードによって検証されます。しかし、ブロックチェーン技術にはスケーラビリティの問題があり、一部のブロックチェーンでは取引の検証に時間がかかるという問題があります。
ブロックチェーンのTPS(1秒あたりの取引量)は、一般にVisaのような中央集権型の機関より低いとされています。例えば、ビットコイン(BTC)は4.6TPSしか処理できませんが、Visaはより高速(17,000TPS)でトランザクションを検証することができます。ビットコインのTPSの低さは、ブロックチェーンが大量の取引を処理できない結果となり、取引の遅さにつながります。
この問題は、ビットコインのブロックチェーンのブロックサイズの上限が1MBであることによってさらに悪化しています。一般的に、ブロックサイズが小さいと各ブロックで処理される取引数が制限されます。さらに、ビットコインの場合、ブロックチェーンが取引を検証しようとするたびに、チェーンのすべての取引履歴をダウンロードしなければなりません。したがって、ブロックチェーンのスケーリングは、ブロックチェーンのサイズが大きくなり、より多くのメモリ領域を占有するようになると、加速度的に時間がかかるようになるのです。
残念ながら、ビットコインをはじめとするブロックチェーンは、ネットワークにノードを追加するだけではスケールアップすることができません。 各ブロックチェーンは通常、独自の性能限界を持っています。そのため、ブロックチェーンのニーズに応じていくつかのスケーラビリティ・ソリューションを講じることで、ネットワーク性能を向上させています。下図において、スケーラビリティ・ソリューションは、読み取り性能、書き込み性能、ストレージに分けられます。また、ブロックチェーンのレイヤーの違いによっても、異なるスケーラビリティ・ソリューションが提供されています(下図参照)。説明を簡潔にするため、ここではデータ層のスケーラビリティ・ソリューションのみを取り上げ、オンチェーンおよびオフチェーンのソリューションを含めて説明します。
ブロックチェーンのスケーラビリティソリューションの概要(出典:Elsevier)
スケーラビリティの問題を引き起こす要因とは?
多くの開発者がブロックチェーンのスケーリングに注目している一方、トリレンマにも遭遇しています。トリレンマとは、各ブロックチェーンにおいてセキュリティ、分散化、スケーラビリティを完全に維持することが困難となる状態を指します。例えば、プライベートブロックチェーンの場合、スケーラビリティとセキュリティは実現できますが、トレードオフの関係にある分散化は達成できません。一方、有向無サイクルグラフベース(DAGs)のブロックチェーンは、スケーラビリティと分散化は実現できますが、ネットワークの安全性は低くなります。他の例としては、セキュリティと分散化は実現できる一方、スケーラビリティがトレードオフとなるパブリックブロックチェーンなどがあります。
スケーラビリティ問題に関する議論の内訳(出典:MDPI)
ブロックチェーンのスケーラビリティについては、特にスループットに関して多くの議論がなされていることが調査で明らかになっています(上図)。さらに、スケーラビリティに影響を与えるこれらの要因は、相互に依存し合っていることも分かっています。例えば、コンセンサス性能やブロックサイズは、スループットやレイテンシーに影響を与える可能性があります。上記の要因の詳細は以下の通りです。
- スループット:スループットとは、1秒間にプロトコルで処理される総トランザクション量(TPS)のことです。スループットは、ブロックチェーンのスケーラビリティを比較する際に、一般的に参照される指標でもあります。中央集権的な機関であるVisaは、ビットコインのような分散型ブロックチェーンと比較してTPSが極めて高いため、大量のトランザクションを効率的に処理できることが可能です。
- レイテンシ:レイテンシはトランザクションの最終性とも呼ばれ、トランザクションの検証に到達するまでに必要な時間を意味します。通常、レイテンシーが低ければ、トランザクション検証プロセスはより効率的になります。
- ブロックサイズ:ブロックサイズとは、ブロックストレージを意味します。例えば、ビットコインのブロックサイズは、トランザクションを保存するために1MBとなっています。ブロックサイズが大きいと、より多くのトランザクションが保存され、スループットが向上します。しかし、より多くのトランザクションを処理するためには、高い計算エネルギーが必要となります。また、ブロックチェーンは、容量オーバーのブロックを拒否することができます。
- ノード:ブロックチェーン内のノードは、フルノードと部分ノードに分けられます。通常、取引数が多い場合には、より多くのノードが必要となります。したがって、ノード数はスループットとレイテンシーに影響を与える役割を果たし、ネットワークのスケーラビリティを反映します。
- ストレージ:ストレージはブロックチェーンの総容量です。ストレージの増大は、ノードとトランザクションに大きく関連します。フルノードは部分ノードよりも多くのストレージを必要とします。部分ノードはストレージをあまり必要としませんが、ブロックチェーンの作業負荷を増加させ、スループットに影響を与える可能性があります。
- 計算エネルギー:計算エネルギーは、マイニングに使用されるエネルギーです。消費エネルギーは、コンセンサスモデルによって異なります。例えば、プルーフ・オブ・ワーク(PoW)コンセンサスモデルで稼働するブロックチェーンは、プルーフ・オブ・ステーク(PoS)コンセンサスモデルで稼働するブロックチェーンより多くのエネルギーを消費します。
- コスト:コストとは、取引検証にかかる総コストを指します。マイナーはより高い手数料を得ることができる取引を検証することを選択できます。そのため、より低い手数料を得られる取引の検証にかかる時間は長くなる場合が発生します。
データレイヤーに基づくスケーラビリティ・ソリューション
スケーラビリティ・ソリューションは、ブロック生成時間、取引コスト、メモリ(ストレージ)の問題を解決するために設計されました。これらの課題に基づいて、オンチェーンスケーラビリティとオフチェーンスケーラビリティのソリューションのサブグループが作成されています。また、ブロックチェーンのスケーラビリティは、ネットワーク層(レイヤー0)、オンチェーン(レイヤー1)、オフチェーン(レイヤー2)などのブロックチェーンレイヤーに対しても実装が可能となっています。特に、レイヤー1やレイヤー2でのソリューションが最も一般的となっています。
オンチェーンスケーラビリティは、既存のブロックチェーン要素を変更するものです。例えば、Bitcoin Unlimitedは、オンチェーンスケーラビリティのソリューションとしてブロックサイズを増加させています。しかし、ブロックサイズの増加は、マイナーがブロックを解体する可能性があるため、セキュリティの低下につながります。また、ブロックが大きくなり中央集権的になるため、マイナーは短期間でブロックを解体することが可能となります。オンチェーンソリューションのサブグループには、ブロックデータの縮小(ソフトフォーク)、ブロックサイズの拡大(ハードフォーク)、シャーディング(水平スケーラビリティ)、DAGがあります。以下、サブグループのうち後者2つについて説明します。
- DAGベーススケーラビリティ:Directed Acyclic Graphs(DAG)は、過去の取引記録と取引を検証するための手法です。DAGは取引検証のためにマイナーやユーザーステークを利用しないため、ネットワーク手数料を削減することが可能となります。加えて 、DAGノードには10,000TPSの高速処理や、二重支出を排除する機能もあります。 DAGベースのプロジェクトの例としては、IOTA(MIOTA)があります。さらに、DAGベースのネットワークは、その規模が大きくなった場合にも、トランザクションの検証速度に支障をきたさないことが知られています。そのため、DAGは低料金で分散化とスケーラビリティを実現することができます。ただし、DAGには悪意ある攻撃に対するセキュリティが弱いという弱点があります。
- シャーディング:シャーディングは、トランザクションを複数のシャードに分割し、複数のノードで処理できるようにすることで、処理時間の短縮を図る手法です。しかし、そのためにはブロックチェーンは悪意のあるバリデータからシャードを守るためのセキュリティを提供する必要があります。さらに、シャーディングは元のシャード内にあるトランザクションに対してのみ効率的に機能することができます。シャーディングを使用するブロックチェーンの例としては、イーサリアム(ETH)やRapidChainなどがあります。
オフチェーンスケーラビリティは、メインネットの外でトランザクションを検証し、最終的な状態のみがメインネット(ステートチャンネルとも呼ばれる)に伝えられます。例えば、ビットコインのライトニングネットワークは、ユーザーが取引にオフチェーンチャネルを使用した後にのみ手数料を請求します。その結果、ブロックチェーンの取引手数料は削減されます。また、オフチェーンソリューションの下には、他のサブグループもあります。そのいくつかを紹介します。
- サイドチェーンスケーラビリティ:サイドチェーンスケーラビリティは、親チェーンとサイドチェーンの間で双方向の資産移転を可能とします。サイドチェーンはSPV(Simplified Payment Verification)を用いて取引の検証を行います。そのため、親チェーンからサイドチェーンへの資産移転は、アウトプットに依存することになります。取引情報を含むアウトプットは、親チェーンまたはサイドチェーンからのSPV証明によってのみロックを解除することができます。また、SPVプルーフはサイドチェーンのバリデーターを親チェーンに伝達します。例として、Loom Network(LOOM)では、ブロックチェーンにサイドチェーンが使用されています。
- 子チェーンスケーラビリティ:子チェーンは、親チェーンのノードにリンクしています。各子チェーンは、そのコンセンサスプロトコルで取引を処理し、親チェーンは子チェーンから伝達された取引の確定を記録します。また、親チェーンには子チェーンを保護する機能もあります。子チェーンを利用したプロジェクトの例として、Ethereum Plasmaがあります。
- インターチェインスケーラビリティ:インターチェーンとは、ローカルエリアネットワーク(LAN)を再現し、すべてのネットワークと互換性のある共通のプロトコルを介して、複数のブロックチェーンをリンクさせる方式です。インターチェーンはサブチェーンとノードを含むことになります。そのコンセンサス方式には、様々なものがあります。例えば、Cosmos(ATOM)ではコンセンサスにPractical Byzantine Fault Tolerance(PBFT)、インターチェーンにはPoSを使用しています。
インターチェインの構造(出典:Elsevier)
スケーラビリティの展望は?
スケーラビリティ・ソリューションの開発は、主に分散化、スケーラビリティ、セキュリティのバランスを取る方向で進んでいくでしょう。オンチェーンのスケーラビリティに関しては、チェーンのコードベースに対する変更が意図されています。しかし、ハードフォークやノードのアップグレードにつながる可能性があり、その実行は困難を極めます。したがって、Segwitやソフトフォークがより現実的な解決策となると考えられます。取引検証のための署名データがブロックチェーンの容量の大部分を占めるからです。とはいえ、この方法はセキュリティとのトレードオフになります。もう一つの解決策は、シャーディングを用いることで、ブロックチェーンを複数のシャードに分割してスケーラビリティを強化するものです。シャーディングはネットワークを複数の部分(シャード)に分割するため、ネットワークに大量のトランザクションを処理する能力を付与できる可能性があります。シャードが同時にトランザクションを処理することで、レイテンシーが問題になりにくくなります。オフチェーンソリューションの場合、そのプロジェクトはライトニングネットワークで100万以上のTPSを実現し、Plasmaでは無限大のTPSを達成できる可能性があります。スケーラビリティ・ソリューションの導入により、多くのプロジェクトが直面しているスケーラビリティの問題が解決され、ユーザーは遅いトランザクションや高いネットワーク料金に悩まされることがなくなり、普及が加速することが期待されます。
まとめ
ブロックチェーンは、ノード数やブロックサイズに上限があるなど、基盤技術の特性からスケーラビリティの問題に直面しています。一部のブロックチェーンではTPSが低く、大量のトランザクションを処理できないため、取引速度の低下やネットワーク料金の上昇を招いています。その結果、他のブロックチェーンでは、それぞれで独自のスケーラビリティソリューションを採用するに至りました。しかし、スケーラビリティに影響を与える要素は相互依存の関係にあり、何らかのトレードオフが発生するため、スケーラビリティの実現は困難となっています。データレイヤー上に構築されたスケーラビリティソリューションの実用例としては、DAG、シャーディング、サイドチェーンなどのオンチェーンおよびオフチェーンのスケーラビリティソリューションが挙げられます。これらのスケーラビリティ・ソリューションにはそれぞれ長所と短所があり、それらはブロックチェーンのトリレンマを中心に体系化されています。全体として、今後のブロックチェーンのスケーラビリティソリューションの開発は、シャーディングとオフチェーン決済チャネルの方向に向かっています。