本連載では、ブロックチェーンのスケーラビリティ問題を解消するための技術として、2018年3月に発表されたばかりのbloXrouteと呼ばれる分散ブロックチェーン配信ネットワーク技術について解説します。
まず、ブロックチェーンのスケーラビリティ問題の再確認と、ブロックチェーンなどのP2P転送モデルにおけるスケーラビリティ課題の解説を行います。
続いて、bloXrouteの技術的特徴の解説、および、他のスケーラビリティソリューションとの比較を通じた考察などを加えていきます。
対象となる読者
・ブロックチェーンのスケーラビリティ問題に興味がある方
・セカンドレイヤー、オフチェーン以外のスケーラビリティ対策が知りたい方
前提知識
・ブロックチェーンの基本的な仕組み
・ブロックサイズや生成時間の問題についての知識
・P2Pネットワークの基礎知識
ブロックチェーンのスケーラビリティ問題
bloXrouteの解説に入る前に、ブロックチェーンが抱えるスケーラビリティ問題について振り返っておきましょう。
ブロックサイズとブロック生成間隔の制約
ビットコインのブロックチェーンは、秒間およそ3~7トランザクションを処理するのが性能的な限界と言われています。
この根拠は、ブロックチェーンのブロックサイズとブロック生成間隔の仕様です。
初期のビットコインブロックチェーンでは、ブロック生成間隔が約10分で、1ブロックあたりの上限サイズが1MBでした。したがって、1秒あたりに処理できるデータサイズは1MB/600s=1747bytes程度です。
仮に、1トランザクションの平均サイズを500bytesと見積もれば、秒間3トランザクション程度の処理能力となります。
この処理能力を向上させるためには、単純に考えればブロック生成間隔を短くしたり、ブロックサイズを大きくすればいいと思うかもしれません。
しかし実際にはネットワーク等の物理的制約により、ブロック生成間隔とブロックサイズを自由に設定することはできません。
チューニングした際のブロックチェーンの性能限界値
bloXrouteのホワイトペーパーで参照されている先行調査のペーパーでは、ブロック生成間隔やブロックサイズをさまざまにチューニングした場合の実証実験を行い、その限界値を検証しています。
この先行調査によると、10分のブロック生成間隔に対して、90%以上のノードが最新のブロックに追随できるブロックサイズの上限は4MB程度です。
また、ブロック生成間隔の最小限界値は約12秒で、そのときのブロックサイズは80KB程度です。
実際、12秒のブロック生成間隔を採用しているEthereumでは、ネットワーク全体に最新のブロックの情報が行き渡る前に別のブロックが生成されてしまい、多くのブロックが孤立してしまいます。
そのため、孤立したブロックの採掘にも報酬を与える、限定型Ghostプロトコルを採用するなど、独自の対処を行っています。
(ちなみに、この孤立したブロックはビットコインではorphanブロック、イーサリアムではuncleブロックと呼ばれます。)
ブロックチェーンのスケーラビリティ解決策
ブロック生成間隔やブロックサイズのチューニングに限界があるため、多くのスケーラビリティソリューションでは、トランザクションのサイズを小さくしたり、複数のトランザクションを2ndレイヤーやサイドチェーンで集約することで、メインチェーンに書き込むトランザクション量を減らす、などの方法を採用しています。
これに対して、bloXrouteなどのネットワークレイヤーのソリューションは、ブロックを伝搬させるためのプロトコルを改良し、より大きなブロックをより短い間隔で伝搬させることでパフォーマンスを向上させようとするオンチェーンのソリューションです。
bloXrouteなどのネットワークレイヤーソリューションの基本的なアイデアは、ブロックの検証やマイニングを行うノードのネットワークと、ブロックを伝搬させるネットワークを分離させることです。
P2P転送モデルのスケーラビリティ課題
通常のブロックチェーンのネットワークは、ブロックをマイニングするノード同士が通信をするP2P型ネットワークです。
あるノード1で新しいブロックが生成されると、ノード1に隣接するノード2にブロックが伝搬されます。
ノード2は、自分が受け取ったブロックの正しさを検証し、問題なければ次のノード3に伝搬します。
この処理を繰り返すことで、いずれネットワーク全体のノードに、ブロックの情報が伝搬される仕組みです。
図1に、P2P転送モデルによるブロックの伝播の様子を示します。
図1において、ノード0からノード1にブロックを転送する時間を「B」として、ノード1がブロックを検証し、ノード2にブロックを転送開始するまでのオーバーヘッド時間を「H」とします。このとき、ノード0からノードNまでブロックを転送するまでに要する時間は、N(B+H)となります。
このように、P2P型ネットワークの転送モデルでは、転送するノードの数Nの増加に応じて線形に転送時間が伸びてしまいます。
ネットワークレイヤーソリューション
bloXrouteなどのネットワークレイヤーソリューションでは、ブロックを転送するために特化したネットワークを、通常のブロックチェーンネットワークとは別に提供することでブロック転送の遅延問題を解消しようとします。
ネットワークレイヤーによるブロック伝播の高速化
図2に、bloXrouteのネットワークレイヤーがブロックを転送する場合の様子を示します。
ブロックチェーンのあるノードで新しいブロックが生成されたとき、ネットワークのノードはそのブロックを受信し、すべてのブロックを受け取る前に隣のノードに転送を開始します。
ネットワークレイヤーはブロックを高速に転送することに特化し、ブロックの検証はブロックチェーン側のノードで行わせるためです。
このような、データ全体を受信する前に転送を開始する方式は「カットスルー・ルーティング」と呼ばれます。
ネットワークレイヤーのノードがブロックを受信開始して、次のノードにブロックを送信開始するまでのオーバーヘッドを「H’」とすると、ノード1からノードNまでブロックを転送するまでの時間は「B+NH’」となります。
この場合も、経由するノードの増加にしたがって線形に転送時間は増加しますが、そのオーバーヘッドH’は、ブロックの転送時間Bやブロックの検証にかかるオーバーヘッドHに比べて極めて小さいため、高速にブロックを転送できます。
このネットワークレイヤーの存在により、ブロックチェーンネットワークのどこかで生成された新しいブロックが、すばやくネットワーク全体に転送されるため、より大きなブロックをより短いブロック間隔で転送することが可能となります。
特に、このネットワークレイヤーの転送時間はブロックの転送時間Bの影響を比較的受けにくいため、ギガバイトクラスのビッグブロックの実現も視野に入るでしょう。
bloXroute以前のネットワークレイヤーソリューション
bloXroute以前にも、ブロックチェーンのネットワークレイヤーソリューションは存在しました。
UDPベースの高速ブロック転送を目指すBitcoin FastRelay Network (BFRN) や、その後身のFast Internet Bitcoin Relay Engine (FIBRE)、bloXrouteと同様にカットスルー・ルーティングを採用したFalconなどです。
Falconには、bloXroute Labosのメンバーも参加していました。
これらの既存のネットワークレイヤーソリューションは、中央集権的なシステム構成のために信頼性を欠いていたり、ボランティアによる運用が中心のため安定性に欠いていたりといった課題がありました。
bloXrouteは、これらの課題を解決するため、非中央集権かつトラストレスなブロックチェーン転送ネットワークの構築を目指しています。
bloXroute以前の非中央集権的ネットワークの課題
bloXrouteは、非中央集権的なブロックチェーン転送ネットワークを構築することにより、スケーラブルでトラストレスなネットワークレイヤーの実現と、それによる任意のブロックチェーンのパフォーマンス向上を目指すプロジェクトです。
bloXrouteの目指す非中央集権的な転送ネットワークを実現するためには、大きく分けて2つの課題があります。
不正行為の防止
まず一点目は、悪意を持ったノードによる不正行為をどのように防ぐか、という課題です。
例えば、bloXrouteのノードが、転送を要求されたブロックやトランザクションの内容を検閲して特定のブロックの転送を拒否したり、遅延させたりする可能性があります。
また、逆に一部のノードに対してのみ優先的にブロックを転送する、といった不正も考えられるでしょう。
持続可能性の担保
二点目は、不特定多数のノードにより支えられる非中央集権的なシステムに対して、どのように持続可能性を担保させるか、という課題です。
ボランティアによるシステムの運用では、多くの参加者が賛同してシステムを拡大させていく保証がないため、継続的に安定したサービスを提供することが難しいでしょう。
そのため、大規模な非中央集権的システムを安定して運用するには、システムの運用に参加する人々に対するインセンティブの設計が不可欠です。
bloXrouteのホワイトペーパーでは、これらの課題に対して、「ピアネットワークによる監査」と「BLOXROUTE TOKENによるインセンティブ設計」による解決を提案しています。
非中央集権的ネットワークの課題に対する解決策
ピアネットワークによる監査
まず、悪意を持ったノードに対する不正行為の防止について詳しくみていきましょう。
bloXrouteでは、ブロック転送を担うネットワークレイヤー(BDN: Blockchain Distributed Network)に対して、通常のブロックチェーンのノードで構成されたネットワークを「ピアネットワーク」と呼びます。
ビットコインやイーサリアムなどのブロックチェーンのマイナーがbloXrouteを利用するために必要なことは、マイニングのプロセスとは別に、bloXrouteのGatewayプロセスを立ち上げるだけです。
このGatewayを通じて、ブロックチェーンのマイナーは、自分が生成したブロックをBDNに転送要求したり、逆に誰かが生成したブロックを受信したりできます。このGatewayがインストールされたノード同士が接続して、ピアネットワークを構成します。
bloXrouteでは、BDNで不正なくブロックの転送が行なわれているかをこのピアネットワーク同士で情報を交換しあい、転送されたブロックの監査を行うことで保証します。
具体的な手法について、詳しくみていきましょう。
ブロックの暗号化
まず、BDNにブロックの転送を要求する際、ピアネットワークのノードはそのブロックを暗号化した状態で送信します。
暗号化されたブロックを復号するためのキーは、ピアネットワークを通じて転送されるため、BDNのサーバがブロックの中身を検閲して特定のブロックやトランザクションだけを拒否することはできません。
間接的リレー
また、特定のピアノードからのブロックを拒否することができないように、ピアノードは自分が生成したブロックをそのままBDNに送るのではなく、任意の別のピアノードにブロックを転送し、そのピアノードからBDNに転送要求を行います。
テストブロックによる監査
さらにピアノードは、定期的にテストブロックと呼ばれる監査のためのダミーデータをBDNに送付し、そのダミーデータが遅延なく正しく転送されているかをチェックします。
このテストブロックによる監査プロセスで不正が行われないよう、ピアノードは、自分がピアネットワーク上で接続しているノードの情報をBDNに対して部分的に秘匿します。これにより、ピアネットワーク上のノードがBDN上のノードと結託して不正を働くことも困難にすることが可能です。
これらの工夫により、bloXrouteは、非中央集権的でトラストレスなブロックチェーン転送ネットワークの実現を目指しています。
BLOXROUTE TOKENによるインセンティブ設計
二つ目の課題である持続可能性の担保についてですが、bloXrouteでは、BLOXROUTE TOKEN(BLXR)と呼ばれるERC20準拠のトークンを用いたインセンティブ設計により、ネットワークを維持するモチベーションを担保しようとしています。
このBLXRトークンの目的は、任意の暗号通貨のパフォーマンス向上がBLXRトークンの価値向上に結びつくような設計を行い、参加者全員が暗号通貨エコシステムの発展やbloXrouteの成功に対してインセンティブを持つエコノミーを実現することです。
bloXrouteへの報酬
bloXrouteをある暗号通貨のブロックチェーンに導入することで、そのブロックチェーンのプロトコルに変更を加えることなく、オンチェーンでパフォーマンスを向上させることが可能です。
例えばbloXrouteの導入によりブロックサイズの拡張やブロック生成間隔の削減を行うことができれば、マイナーにとっても手数料の増収が見込めるでしょう。
そうして増収された手数料のうち、一部をbloXrouteに対して支払うことができる機能を実装したとします。
このとき、任意の暗号通貨で支払われたbloXrouteへの報酬を貯めるファンドとして、BLXR-Reserveを準備します。このBLXR-Reserveに蓄えられた資産が、BLXRの時価総額となり、BLXRトークン保持者はいつでもBLXR-Reserveを通じてBLXRを売却することが可能です。
つまり、bloXrouteのシステムを発展させ、多くの暗号通貨のパフォーマンスの向上させることで、bloXrouteへ支払われる報酬が増加し、BLXRの価値も増えていく仕組みです。
bloXrouteとオフチェーンソリューションとの比較
続いて、オフチェーンのスケーラビリティソリューションとbloXrouteの特徴について、両者を比較しながら考察してきます。
ここで、オフチェーン技術の特徴について簡単に振り返っておきましょう。
オフチェーンソリューションの特徴
ブロックチェーンのスケーラビリティを向上させるソリューションとして実現性が高まっている技術が、Lightning Networkなどのオフチェーンソリューションです。
オフチェーンソリューションの多くは、ブロックチェーンの外でトランザクションを管理するペイメントチャネルを設置し、小さなトランザクションをまとめてブロックチェーンにコミットすることで、ブロックチェーンへの書き込み負荷を軽減するものです。
ペイメントチャネルを用いたオフチェーンソリューションは、確かに個々のトランザクションのパフォーマンスを劇的に改善する可能性を秘めています。
しかし、同時に下記のような課題も存在しています。
コインをデポジットする必要がある
まず、あらかじめペイメントチャネルを開設するために、いくらかのコインをデポジットしておく必要があります。
そのため、まだ支払いに使用していないにもかかわらず自由に使えないコインができてしまいます。
オフチェーンソリューションが一般的となり、多くの相手とペイメントチャネルを開設する必要が増えれば、さらにデポジットされるコインが増え、コインの流動性を損なってしまう可能性があります。
不正検出の仕組みを用意する必要がある
また、ブロックチェーン上で検証されないオフチェーンのトランザクションで、不正が行われないような仕組みが不可欠であり、それらの実装や運用に大きなコストが発生します。
トランザクションのデータ構造はビットコインやイーサリアムなどのブロックチェーンの種類によって異なるので、それぞれの仕様に合わせたペイメントチャネルの実装が必要となります。
さらに、現在のLightning Networkなどの不正防止策は、自分のトランザクションに関するペイメントチャネルが不正に閉じられていないかを常に監視し、一定時間以内に発見することが求められるため、監視のための運用コストも高くなります。
マイニングに対するインセンティブが減少する
オフチェーンの技術によってブロックチェーンへの書き込みが減少すると、ブロックの承認作業で報酬を得ているマイナーにとっては、単純に収益機会が減ることになりますので、ブロックチェーンを支えるインセンティブの減少につながる可能性があります。
この懸念により、オフチェーン技術の導入にブレーキがかかってしまう可能性も否定できません。
bloXrouteにより解決される課題
これに対してbloXrouteは、ブロック転送の高速化によるオンチェーンのソリューションのため、デポジットによるコインのロックが発生することはありません。
また、トランザクションの不正検知の仕組みを新たに実装する必要もありません。
bloXrouteを通じて転送されるブロックは暗号化されて送られるため、bloXrouteはブロックの中身については関知しないため、bloXrouteはトランザクションのデータ構造に依らずあらゆる種類のブロックチェーンで利用することができます。
下記の図に示すとおり、オフチェーンのソリューションはブロックチェーンの種類ごとに実装が必要でした。
それに対してbloXrouteの場合、複数のブロックチェーンでbloXrouteを利用する際にも単一のbloXroute BDNを共有して利用することが出来るため、ブロックチェーンごとに新しくBDNを構築する必要はありません。
ブロックチェーンを支えるマイナーにとっても、bloXrouteによってブロックサイズの増加やブロック生成間隔の短縮が実現されれば、マイニング報酬の増収につながります。
bloXrouteに残された課題
一方、不正の監視については、bloXrouteでも他のオフチェーン系ソリューションと同様に課題が残っています。
bloXrouteでは定期的にテストブロックを送信することでBDNノードの不正を監査しますが、ピアネットワークのノードが増加すればするほどテストブロックの送信数も膨大になります。
そのため、本来必要なブロックの転送以上にテストブロックの転送が肥大化しネットワークの帯域が圧迫されてしまう可能性があります。
bloXrouteとオンチェーン系ソリューションとの比較
オンチェーンのスケーラビリティソリューションとして代表的な技術は、ネットワークやアカウントを複数のシャードに分割して並列処理を実現するシャーディングです。
その他のソリューションとして、階層的なチェーンでMapReduceのような並列処理アルゴリズムを実行するPlasmaや、マイクロブロックのストリームとしてブロックチェーンを表現するBitcoin-NGなども挙げられます。
これらのオンチェーン系ソリューションは、既存のブロックチェーンのデータ構造やコンセンサスアルゴリズムを大幅に変更する必要があり、多くの場合は提案や最小限の実装にとどまっているのが現状です。
これに対して、bloXrouteは既存のブロックチェーンに変更を加える必要がないため、比較的実現性が高く導入コストも低いと考えられます。
またbloXrouteに参加するノードが多くなれば、転送可能なブロックの帯域も増加するため、スケーラブルなシステムとしても成立しています。
とはいえ、bloXrouteも2018年3月に提案されたばかりの新しい技術であり、まだ具体的な実装や運用実績がある訳ではありません。
BLXRトークンを用いたインセンティブの設計も、想定通りの挙動が実現されるのか、今後の実証実験が必要となるでしょう。
ネットワークレイヤーソリューションとの比較
オンチェーンでのスケーラビリティソリューションとして、第1回でも紹介したFIBREやFalconなどのbloXroute以外のネットワークレイヤーソリューションも存在します。
これらのソリューションも、ブロックの高速な転送によってブロックチェーンのパフォーマンスを向上させるものですが、ネットワークレイヤーにおける不正検知の仕組みが不足しています。
そのため、ネットワークに対する信頼性をシステムの外部で保証する必要があり、不特定多数のノードを追加して無制限にスケールさせることが難しいと考えられます。
一方bloXrouteでは、ネットワークレイヤーのノードを監査する仕組みを導入し、BLXRトークンによるインセンティブ設計を行うことで、不特定多数のノードの参加によるスケーラビリティを実現しようとしています。
bloXrouteのメリット
最後に、bloXrouteのメリットについてまとめておきましょう。
既存のブロックチェーンに変更を加えずに済む
bloXrouteは、ブロックチェーンとは独立したネットワークレイヤーのソリューションのため、基礎のブロックチェーンに変更を加えることなく、任意のブロックチェーンのパフォーマンス向上に貢献できる可能性を秘めたソリューションです。
他のスケーリングソリューションと競合せず、併用が可能な場合も
bloXrouteは、本記事で取り上げたオフチェーンソリューションや、他のオンチェーンソリューションとも競合せず、併用して運用することも可能であり、それらとの相乗効果によるさらなるパフォーマンス向上も期待できます。
参加する暗号通貨の増加で、パフォーマンスが向上する
bloXrouteは、トランザクションの承認速度の改善やブロックのフォークのリスク軽減といった利用者にとってのメリットだけでなく、マイナーにとっても報酬の増収といったメリットをもたらします。
さらに、あるブロックチェーンでbloXrouteが導入され、bloXroute BDNのノード数が増加すれば、他のbloXrouteを利用するブロックチェーンのパフォーマンス向上にも貢献し、多くの暗号通貨が相互に支え合って発展していくことが可能なインセンティブ設計となっています。
bloXrouteの今後のマイルストーンなどはまだ具体的に公開されていませんが、ブロックチェーンのスケーラビリティ問題を解消する有力なプロダクトとなり得るかもしれません。
参考文献:
bloXroute: A Scalable Trustless Blockchain Distribution Network WHITEPAPER https://bloxroute.com/wp-content/uploads/2018/03/bloXroute-whitepaper.pdf
On Scaling Decentralized Blockchains http://fc16.ifca.ai/bitcoin/papers/CDE+16.pdf
Medium – bloXroute Labs https://medium.com/@bloxroutelabs
Emin Gün Sirer – Scaling Bitcoin x100000: The Next Few Orders of Magnitude https://www.youtube.com/watch?v=jn_Z72H0SwY
「bloXroute」スケーラブルなブロックチェーン配信ネットワーク https://btcnews.jp/5re868s815841/