ブロックチェーンは分散型の台帳であり、ネットワーク上の全ての参加者によってデータが管理されています。
このため、大量の取引やデータの処理が必要な場合、処理遅延などの「スケーラビリティ」問題が発生します。
この記事ではスケーラビリティ問題の具体例と解決手法を解説します。
スケーラビリティ問題とは?
ブロックチェーンは分散型の台帳、すなわちデータベースの一種であり、中央の特定の管理者ではなく、ネットワーク上の全ての参加者がデータを管理することで、透明性、公正さを確保しています。
しかし、この透明性、公正さの確保と引き換えに、大容量のデータや大量の取引を処理できないという問題があります。
これは、ネットワークの多数の参加者が取引を承認し、取引履歴を保持する必要があるため、データ容量やトランザクション数を制限していることに起因しています。
この「大容量のデータや大量の取引を処理できない」という問題をスケーラビリティ(拡張性)問題といいます。
具体的なスケーラビリティの問題を以下にあげていきます。
ブロックサイズとネットワーク遅延
ブロックチェーンは、新しいトランザクションをブロックにまとめ、ネットワーク上で共有することで合意を形成します。
しかし、ブロックサイズが大きくなると、ブロックの生成時間やネットワーク上での伝送時間が増加し、遅延が生じます。これにより、トランザクションの確認時間が長くなり、スケーラビリティに影響を与える可能性があります。
ビットコインのブロックサイズは?
ビットコインネットワークの運用開始時点(2009年~)は、1つのブロックの中に最大36MB分の取引データを記録できました。
その後2010年に、ネットワークの拡大に伴いセキュリティの向上が必要となったため、ブロックの最大サイズを1MBに縮小しています。
そして2017年8月には、まさにスケーラビリティ問題を解決するため、Segwit:セグウィットと呼ばれる仕様変更が行われました。
これは、取引データのおよそ65%を占める署名情報を、メインの「ベース」ブロックから「Witness」という3MBの署名領域へ移行する変更です。
ベースブロックの上限サイズ1MBは変わっていませんが、より多くの取引データが格納できるようになりました。
イーサリアムのブロックサイズは?
イーサリアムネットワークでは、ビットコインと異なりブロックサイズの制限はありません。
ただし、1つのブロックに含めることができるトランザクションの数は、ブロックのガスリミットに依存します。
ブロックのガスリミットは、ブロック内で処理できる計算やトランザクションの複雑さに基づいて設定されます。現在のガスリミットは、ブロックごとにおおよそ15,000,000~20,000,000 gweiです。
イーサリアムの1つのトランザクションは、ガスの使用量に応じて異なるスペースを占めます。一般的なトランザクションでは、おおよそ20,000~60,000 Gweiが使用されます。
以上から、イーサリアムネットワークでは、1ブロックあたり約250~1,000のトランザクションを格納していることとなります。
スループット(トランザクション処理能力)の制限
ブロックチェーンは、ネットワーク上の全ての参加者がトランザクションを検証し、ブロックに記録する必要があります。
しかし、ブロック生成の速度やブロックサイズには制限があり、その結果、ブロックチェーン全体で処理できるトランザクション数に上限が存在します。
これにより、処理能力が制約され、高いトランザクションスループットを実現することが難しくなります。
ビットコインのスループットは?
ビットコインネットワークのスループットは、ブロック生成の速度とブロックサイズによって決まります。
現在のビットコインのブロック生成時間は約10分です。また、ブロックのサイズは1MBで制限されています。
ビットコインのセグウィットを使用していない通常のトランザクションでは、1ブロックあたり約2,000〜2,500のトランザクションを含めることができます。
以上から、ビットコインの現在のスループットは、約10分ごとに2,000〜2,500のトランザクションを処理しているため、約3〜7トランザクション/秒となります。
#取引需要によって変わるため、平均的な値です。
イーサリアムブロックチェーンのスループットは?
イーサリアムネットワークのスループットは、ビットコインと比較して高いです。
イーサリアムでは、ブロック生成時間は約15秒です。
既に述べたとおり、1ブロックあたり約250~1,000のトランザクションを含んでいるため、スループットは約16~66トランザクション/秒となります。
ただし、イーサリアムのスループットも需要やネットワークの混雑によって影響を受けることがあります。高い需要やトランザクションの集中により、ネットワークの混雑や処理の遅延が発生することがあります。
イーサリアムでは、Ethereum 2.0(Eth2)と呼ばれるアップグレードが進行中であり、スケーラビリティの向上を目指しています。Eth2では、Proof of Stake(PoS)とシャーディング(分割)が導入されることにより、スループットの向上とネットワークの拡張性が期待されています。
データの保存と同期の課題
ブロックチェーンは、ネットワーク上の全てのフルノードが同じ台帳のコピーを保持することで合意を形成します。
しかし、ブロックチェーン全体のデータサイズが大きくなると、新たなフルノードがネットワークに参加する際の初期同期に時間がかかる問題が生じます。
また、フルノードは全てのトランザクションの履歴を保存する必要があるため、ストレージの使用量も増加します。
ビットコインブロックチェーンの総容量は?
記事執筆時点(2023年5月)、ビットコインの総ブロック数は約79万、トランザクション総数は約8億4,200万件、ブロックチェーンの総容量は約483GBです。
新しくネットワークに参加するフルノードは、マシンの性能にもよりますが、ブロックチェーン全体の同期に数十時間を要すると考えられます。
イーサリアムブロックチェーンの総容量は?
記事執筆時点(2023年5月)、イーサリアムの総ブロック数は約1,731万、トランザクション総数は約19億7,500万件、ブロックチェーンの総容量は6TB以上となります。
新しくネットワークに参加するフルノードが、フル同期(Full sync)した場合、マシンの性能にもよりますが、数日~数週間要すると考えられます。
取引手数料の高騰
ビットコインネットワークやイーサリアムネットワークでは、通貨の送金などの取引をしたい場合、ユーザー自身が取引手数料を設定します。
この取引手数料とは、暗号資産取引所に支払う仲介手数料とは別で、ブロックチェーンのマイナーに支払われる手数料です。マイナーは、設定された手数料が高い取引を優先して処理します。
このため、大量の取引要求が集中し取引処理に時間がかかる状態で、ユーザーが早く取引を処理して欲しい場合は、取引手数料を高く設定する必要があります。
よって、ネットワークが混雑しスケーラビリティ問題が発生している状態では、取引手数料が高騰することになります。
スケーラビリティ問題への対策
前述の各種問題に対処するため、さまざまなスケーラビリティ解決策が研究されています。
オフチェーン技術
オフチェーン技術は、ブロックチェーンの外部でトランザクションを処理する手法です。
一部のトランザクションをブロックチェーンから外部のチャネルに移し、高速な処理や低コストなトランザクションを実現します。代表的なオフチェーン技術として、ライトニングネットワークやステートチャネルがあります。
シャーディング(分割)
シャーディングは、ブロックチェーンのデータや処理を複数のシャード(分割された部分)に分割する手法です。
各シャードは独立してトランザクションを処理し、相互に連携して合意を形成します。これにより、トランザクションの処理能力やスループットを増加させることができます。
コンセンサスアルゴリズムの改善
ブロックチェーンのスケーラビリティを向上させるために、効率的なコンセンサスアルゴリズムの開発が進められています。
従来のProof of Work(PoW)に代わるProof of Stake(PoS)やProof of Authority(PoA)など、より効率的なコンセンサスメカニズムが提案されています。
サイドチェーンとレイヤー2スケーリング
サイドチェーンは、ブロックチェーンの拡張として機能する独立したチェーンであり、メインチェーンとの連携を行います。これにより、メインチェーン上の負荷を軽減し、スケーラビリティを向上させることができます。
また、レイヤー2スケーリングは、ブロックチェーンの上に新たなレイヤーを追加して、高速なトランザクション処理やスケーラビリティを実現する手法です。
さまざまなスケーリング・ソリューション
スケーラビリティ問題を解決するため、さまざまなスケーリング・ソリューションがリリースされています。
コメント