2018.04.10 (Tue) technology

「bloXroute」スケーラブルなブロックチェーン配信ネットワーク

Written by 安土 茂亨

ブロックサイズを拡大する際のネックの1つとされるのがネットワークだ。データ量が増えるにつれて、データ転送により高いネットワーク帯域が求められことになり、マイニングの集中化や、リレーネットワークの集中化に伴う検閲などが危惧される。

パブリックでより高速なリレーネットワークを構築することでこういった問題を解消できるのではないかと、これまでBitcoinでもFalconやUDPベースのFIBREといった高速リレーネットワークが提案されてきた。

このようなリレーネットワークについて、先日開催されたSatoshi's Visoin ConferenceのEmin Gun Sirerのセッションの一部で、オンチェーンスケーリングをサポートするためのネットワークプロトコル層のソリューションとして「bloXroute」というスケーラブルなブロックチェーン配信ネットワークが紹介された。ホワイトペーパーも最近公開されたばかりなので、その特徴について紹介したい。

bloXrouteの仕組み

現在のBitcoinのようにトラストレスなP2Pブロックチェーンでは、ブロックの伝播に時間がかかると秒間何千ものオンチェーントランザクションといったスケールを許容できない。一方、Rippleなどは参加ノードの一部のサブセットを信頼することでトランザクションを上手くスケールしようとしている。Rippleのような集中化のアプローチは効率的であるが、限られたノードを信頼することになり、暗号通貨の最も重要な側面の1つであるトランザクションの制御の分散化を破壊してしまう。

bloXrouteはこのスケーラビリティと信頼モデルのトレードオフに着目した。中立で監査可能なネットワーク設計を介して集中化ネットワークへの信頼を最小限にしつつ、スケール可能なネットワークを構成しようとしている。概念的な話ばかりだと分かりづらいので具体的にみていこう。

bloXrouteのネットワーク構成

よくコンテンツ(動画や画像など)を高速に配信するのにCDN(コンテンツデリバリーネットワーク)を使用することがある。bloXrouteのコンセプトは、ブロックチェーンでもこれに似たネットワーク「Blockchain Distribution Network(BDN)」を構築し、そのネットワークを利用してブロックやトランザクションを高速に配信しようというものだ。

bloXrouteは、以下のような2つのタイプのネットワークで構成される。

  • bloXroute
    高キャパシティ、低レイテンシーのグローバルなBDNネットワークで、複数のブロックチェーンのブロックやトランザクションを高速に伝播できるよう設計されている。
  • ピアネットワーク
    各ブロックチェーンの既存のP2Pネットワークで、bloXrouteの動作を監査するのに使用される。

ユーザーがbloXrouteを導入したい場合は、既存のブロックチェーンのノードと一緒にbloXrouteのゲートウェイを起動するだけだ。このゲートウェイがブロックチェーンのノードとBDNを仲介する。

bloXrouteは既存のピアネットワークに代わってブロックを伝播するが、いわゆるリレーネットワークとは違い、そのブロックの内容(トランザクション数やサイズ、関連するアドレス、マイニングしたマイナーおよびブロックを生成したノード)に関する情報は持っておらず、その内容の検閲なども行われない。ブロックチェーンのプロトコルにも依存しないため、bloXrouteは複数の暗号通貨・ブロックチェーンに対して同時に高速な配信サービスを提供できる。

また、特定のノードにだけ優先してブロックを伝播したり、特定のノードがbloXrouteに参加することを妨げることもなく(正確にはできないということではなく、そういうことが行われると監査により明らかになる)、全てのブロックを全てのゲートウェイに公平に伝播するとされている。

中立性の保証

bloXrouteのような集中化したBDNにとって問題となるのが、特定のノードを優先したり、特定のノードを拒否したり、特定のブロックを拒否・遅延させるといった検閲が行われるケースだ。bloXrouteは、こういった問題が起こらない仕組みを作るのではなく、以下のような仕組みで中立性を証明するアプローチをとっている。

ブロックの暗号化

bloXrouteがブロックの内容によって特定のブロックの伝播を拒否するようなことがないよう、ブロックは予め暗号化された上で、bloXrouteに伝播される。暗号化されているため、bloXrouteが内容によって伝播するブロックを選別するようなことはできないようになっている。ブロックを復号するための鍵は、ブロックが伝播された後に公開され、ピアネットワーク上ですぐに、直接伝播される。

間接的なリレー

ブロックのマイニングに成功したマイナーは、そのブロックを直接bloXrouteに伝播せず、ピアネットワーク上のノードに最初に伝播し、そのノードがbloXrouteに受信したブロックを伝播する。このような間接的な方法でbloXrouteにブロックを伝播することで、ブロックを生成した起点(マイナー)をbloXrouteから隠し、特定のマイナーによってマイニングされたブロックを除外するといったことをできなくしている。

テストブロック

間接的なリレーによりどのノードがどのブロックを作成したのかは認識できないが、bloXrouteが一部のノードのサブセットから受け取ったブロックを拒否したり、配信を遅延させたりすることも考えられる。こういった動作を検出・防止するために、各ノードはbloXrouteのサービスを継続的に監視する必要がある。

ノードは、無効なブロックデータを暗号化したテストブロックを作成し、そのテストブロックを直接bloXrouteに送信する。ノードは自分が接続中のノードに対してbloXrouteから受信したブロックのリレーを要求できるので、自分がbloXrouteに送信してから接続中のノードを介してテストブロックを受信するまでの時間を計測することで、ブロックの拒否や配信の遅延を検知することができる。ブロックが正規のブロックなのか、テストブロックなのかは暗号鍵が公開されるまで区別できないため、bloXrouteがテストブロックのときだけ振る舞いを変更するといったこともできない。

ピアの部分的な開示

ピアネットワーク内にbloXrouteと結託しているノードがいる場合、テストブロックが配信された際に、結託しているノードと協力して、その計測をしているノードにだけ迅速にテストブロックをリレーしネットワーク全体にはリレーしないといった攻撃も考えられる。このため、ピアネットワークのノードは自身が知っているノード情報を全て明らかにすることなく、その内の半数を秘匿する。こうすることで計測対象となるノードが分からないようにする。

各暗号通貨へのbloXrouteの導入

ホワイトペーパーでは、100 TPS(transaction per second)を超えない限り、bloXrouteのネットワークを無料で使用できると記載されている。Bitcoinの現在のスループットはbloXrouteのホワイトペーパーでは3 TPSとされているため、現在のキャパシティでは無料で使用できることになる。

bloXrouteでは、まずファーストステップとしてBDNを導入し高速なブロックの配信ができるようにする。続くセカンドステップとしてbloXrouteによりもたらされるキャパシティの増加を考慮し、各ブロックチェーンのブロックサイズおよびブロックの生成間隔を変更することで、各ブロックチェーンのスループットの向上を実現する。各暗号通貨、ブロックチェーンで変更するのはブロックサイズと生成間隔のみで、他のプロトコルを変更する必要はない。Bitcoinの場合、現在3 TPSのスループットを33倍まで拡大することができる。また、100 TPSを超える分は、マイニング手数料の10%をbloXrouteの手数料とすることで、さらなるキャパシティの増加も可能としている。

このようにbloXrouteはトラストポイントとなるBDNについて、ピアネットワークのノードに直接、積極的にネットワークを監査させることでその中立性を証明し、高速なブロックチェーンの配信ネットワークを十分に利用する、これまでのリレーネットワークとは異なるコンセプトのプロダクトになっている。現在はbloXroute Labsが開発中で、まだソースコードなどは公開されていないが、今後のリリースに注目したい。


無料メールマガジン

BTCNの最新ニュースを毎日お昼ごろお届けします!


まだデータがありません。