ブロックチェーンとスケーラビリティ

ころぴこと
10 min readAug 23, 2018

--

Uniqys Kitの開発をしている@koropicotです。

Uniqys Kitでは公式サイトでも説明しているように、サイドチェーンとしてDApps毎にブロックチェーンを作成することでスケーラビリティ問題に対処しています。

この記事では、ブロックチェーンにおけるスケーラビリティについて概論したうえで、Uniqys Kitがなぜこのような選択をしているかを説明します。

スケーラビリティ

スケーラビリティとは、システムの性能を柔軟に拡大できる能力のことをいいます。 たとえば必要な処理能力が増えたときに、システム全体を変更することなくサーバなどのリソースを追加するだけで対応できるのであればスケーラブルなシステムです。 一方で、リソースを追加できなかったり、あるいはリソースを追加しても処理能力を拡大できないシステムは、スケーラブルではありません。

ブロックチェーンとスケーラビリティ

ブロックチェーンには仕組み上、以下のような特徴があります。

  • ネットワークのノードが検証のために全員同じ処理をしている
  • コンセンサスアルゴリズムにとってネットワークがボトルネックとなる

この特徴は、スケーラビリティを高くしようとする上で障害となります。 ノードが同じ処理をしているので、1つのトランザクションの処理が重い場合にノードの数を増やしても全体の性能は増加しません。 また、ナカモトコンセンサスにおいてもBFTのようなコンセンサスにおいても、ネットワーク内でブロックが伝搬したりメッセージをやり取りする上で、ネットワークのレイテンシがボトルネックとなります。 そのため、コンセンサスアルゴリズムを高速にするのにも限界があるのです。

このようにブロックチェーンはその仕組み上スケーラブルではないため、トランザクションが増えすぎると処理速度が追いつかなくなります。 そうなると、トランザクションの手数料が高騰したりトランザクションが処理されるまでに長い時間がかかってしまうなど、ブロックチェーンを利用しにくい状態になってしまうのです。

これがブロックチェーンにおけるスケーラビリティ問題であり、実用性を向上するための課題となっています。

ブロックチェーンもまた銀の弾ではないのである。

スケーラビリティ問題への対策

スケーラビリティ問題に対してはこれまでに、問題を軽減したり解決するための様々な側面での対策が考えられています。 ここで、いくつかの主な対策について説明していきます。

コンセンサスアルゴリズムを速くする

ブロック間隔を短くできれば、処理できるトランザクションを増やせると共に、場合によっては承認までの待ち時間も短くできます。

ナカモトコンセンサスにおいては、単にルールとしてブロック間隔を短く設定するだけでこれを実現できます。 しかし、以下の記事に詳しいように、ネットワークのレイテンシなどによってブロックの伝搬には遅延が発生し、あまりに短いブロック間隔はセキュリティの低下やマイニングの集中化を招きます。 そのため、ブロック間隔を数秒以下にするのは困難です。

また、BFTベースのコンセンサスアルゴリズムを用いることで、一定のブロック間隔を設定する必要はなくなります。 しかし、メッセージのやり取りにかかるレイテンシによって、ブロックのコンセンサスを得るのにある程度の時間がかかるため、これにも限界があります。

そのため、この対策では性能は定数倍にしかならず、根本的なスケーラビリティ問題の解決には至りません。

ブロックに含まれるトランザクションを増やす

ブロック間隔がある程度必要になる以上、ある時間内で含めることができるトランザクションの数には制限が生まれます。 これを緩和する対策が、ブロックのサイズを増やしたり効率的に格納できるようにして、ひとつのブロックに含まれるトランザクションを増やすことです。 こうすることで、ある時間内で処理できるトランザクションが増え、システムとしての性能が向上します。

しかし、ネットワークのスループットの限界があるのでブロックのサイズを無限に増やすことはできません。 そのためこちらも根本的なスケーラビリティ問題の解決とはなりません。

オフチェーン

ブロックチェーンの外でトランザクションを処理することで、ブロックチェーン上で必要な処理を減らしスケーラビリティを得るのが、オフチェーンとよばれる手法です。 オフチェーンでは、複数の処理をブロックチェーンに記録せずに当事者間でやり取りしながら行い、最終的な結果のみをブロックチェーンに記録します。 支払い処理に特化したものはペイメントチャネル、それ以外の状態遷移も可能としたものはステートチャネルとも呼ばれます。 この手法が適用できる場合には、任意個の処理をブロックチェーン上で1つにまとめることになるため、スケーラブルだと言えるでしょう。

ただし、オフチェーンでの処理はブロックチェーンによる保護の範囲外となるため、不正を防止するための仕組みが別途必要となります。 たとえば、やり取りするトークンなどをデポジットした上で当事者がネットワークを常に監視し、不正を検知したらブロックチェーン上で検証してデポジットを回収できるようにするなどの方法が考えられています。

シャーディング

1つのブロックチェーンをスケールするには限界があるので、ブロックチェーンそのものを分割して増やすという対策も考えられます。 このうち同質なブロックチェーンに水平分割する手法がシャーディングです。 各ブロックチェーンは基本的に同じルールに従って動作し、相互に情報をやり取りできるようにすることで、全体として一つのシステムを構成します。 そのためこの方法は、ブロックチェーンを任意に増やすことでシステム全体のスループットを向上できるため、スケーラブルと言えます。

ただし、ブロックチェーンに参加するハッシュパワーやステークが、チェーンが増えるにしたがって分散するため、セキュリティをいかに確保するかが課題となります。 この対策としては、パワーをランダムにそれぞれのチェーンに割り振ることで確率的にセキュリティを確保する方法が考えられています。 また、シャード間でのコミュニケーションをいかに安全に実現するかも、検討する必要がある部分です。

サイドチェーン

シャーディングとは対称的に、機能の異なるブロックチェーンに垂直分割する手法がサイドチェーンです。 中心となるメインチェーンと、複数の異なる機能を提供するサイドチェーンからなり、お互いに情報をやり取りできるようにして全体として一つのシステムを構成します。 サイドチェーンは必要に応じて任意に増やせるため、スケーラビリティが得られると共に、各チェーンで個別の機能に特化することができます。

ただし、シャーディングと同じくパワーが分散するのでセキュリティをいかに確保するかが課題となります。 しかし、シャーディングとは異なり、各チェーンが異なることから単純にランダムに割り振ることは困難です。 そこでオフチェーンと同じように、メインチェーン上でサイドチェーンでの不正を検証できるようにして、セキュリティを確保する方法が考えられています。 またこちらもシャーディングと同じく、サイドチェーン同士やメインチェーンとのコミュニケーションをいかに実現するかに検討の余地があります。

なぜUniqys Kitではサイドチェーンを選択しているのか

Uniqys Kitの設計では各DApps毎にサイドチェーンを作成する方法を選択しています。 また、それぞれのサイドチェーンではBFTベースのコンセンサスアルゴリズムを用いる予定です。 これらは、以下の項目を実現するために選択されました。

  • DAppsを使う上での手数料を安くできること
  • トランザクションの承認までの待ち時間が短いこと
  • 任意の言語が使えるなどDApps作成の自由度が高いこと

まず、手数料を安定して安くするためには、何らかの方法でブロックチェーンをスケーラブルにする必要があります。 スケーラブルでない場合には、処理が逼迫した場合に手数料などによって優先度をつける必要があり、そのような状況で処理を行うためには高い手数料を払わなければなりません。

また、トランザクションの承認までの待ち時間を短くするためには、BFTベースのコンセンサスアルゴリズムが適しています。 コンセンサスアルゴリズムとして一定時間のブロック間隔を設定する必要がなく、確率的なコンセンサスではないため数ブロック待つ必要がないためです。

さらに、DApps固有のブロックチェーンとすることで、DAppsを作成するときの自由度を高くすることができます。 この自由度には、ブロックチェーンそのもののルールを任意の言語を用いて記述することができることや、DoS攻撃とのトレードオフを考慮した上ではありますが、手数料をなくす選択ができることが含まれます。

このような理由から、Uniqys KitはBFTベースのコンセンサスアルゴリズムを用いたサイドチェーンという、現在の設計に至っているのです。

サイドチェーンを始め、その他のブロックチェーンのスケーリングソリューションについて概説しました。

ブロックチェーンにとってスケーラビリティは大きな課題となっていますが、さまざまな対策が活発に議論されています。 将来的には、それらが適材適所に用いられて、より実用的なブロックチェーンおよびDAppsの世界が広がっていくでしょう。

Uniqys Networkについても、現在の選択が常に最善だと考えているわけではありません。 今後もリサーチを続けて改善していく必要があると考えておりますので、お付き合いいただければ幸いです。

さまざまな困難を乗り越えることで、生命は進化していく。彼らも困難に立ち向かい、進化していくのだろう。

--

--