ブロックチェーンスケーラビリティ - サイドチェーンとペイメントチャネル
ブロックチェーンスケーラビリティ - サイドチェーンとペイメントチャネル
ホーム記事

ブロックチェーンスケーラビリティ - サイドチェーンとペイメントチャネル

上級者
Published Feb 20, 2020Updated Apr 29, 2021
8m

イントロダクション

スケーラビリティは広い意味では、増加する所ように対応するための成長能力のことを指します。コンピュータの場合は、マシンのハードウェアをアップグレードすることで性能を向上させ、一定の作業をより早く行えるようにするでしょう。ブロックチェーンにおいてはスケーラビリティはより多くのトランザクションを処理するためにその能力を向上させるソリューションなどのことを意味します。
ビットコインのようなプロトコルには多くの利点がありますが、スケーラビリティはそのうちの1つではありません。もしも、ビットコインが集約化されたデータベースとして実行されていたら、管理人がスピードとスケーラビリティを向上させることは相対的に簡単だったでしょう。しかし、ビットコインの価値である検閲耐性などを実現するには、多くの参加者がブロックチェーンのコピーを同期させることが必要です。


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

ビットコインノードを実行するのは相対的に安価で、シンプルなデバイスでさえ実行できます。しかし、数千ものノードがそれぞれ最新の状態であり続けないといけないため、その能力には一定の限界があります。 
データベースが使い勝手の悪いサイズに成長しないように、オンチェーンで処理できるトランザクションの数に限界が設定されています。もしも、データベースが大きくなりすぎて、早くなりすぎたら、ノードは追いつくことができなくなります。さらに、もしもブロックが大きすぎたら、ネットワーク周辺で迅速に伝播することができなくなります。

その結果として、ここがボトルネックとなっています。ブロックチェーンは一定間隔毎に発車する電車のようなサービスと考えることができます。それぞれの車両の座席数には限界があり、チケットを手に入れるには旅行者は場所を確保するために入札しなければいけません。もしも、全員が同時に電車に乗ろうとした場合、場所を確保するための価格は高騰します。同様に、ネットワークが保留中のトランザクションで混雑した場合ユーザーはタイムリーにトランザクションをブロックチェーンに追加してもらうにはより高い手数料を支払う必要があります。

ソリューションの1つとしては車両をより大きくすることが考えられます。車両をより大きくすると、座席数が増え、スループットが増加し、チケット代が安くなります。しかし、その座席がそれまでと同様に埋まるかどうかの保証はありません。ブロックサイズやブロックガスリミットは車両を拡大と同様に、無限に拡大できるものではあります。ブロックサイズやガスリミットを拡大すると、同期し続けるためにより高性能なハードウェアが必要となるので、ノードがネットワークに残るためのコストが高騰します。

イーサリウムの考案者であるヴィタリック・ブテリンはブロックチェーンが直面している課題を説明するためにスケーラビリティのトリレンマという言葉を作りました。彼はプロトコルはスケーラビリティ、セキュリティ、そして分散性のトレードオフが必須であることを理論化しました。これらのうちの2つに重点を置くと残った1つがおろそかになってしまうため、これら3つは緩やかに対立しています。

このため、多くの人はスケーラビリティはオフチェーンで実現し、ブロックチェーン自体ではセキュリティと分散性を最大化すべきと考えています。


オフチェーンスケーリングソリューションとは?

オフチェーンスケーリングソリューションとは、ブロックチェーンに付加をかけることなく、トランザクションを実行できるようにするアプローチです。チェーンにプラグインされたプロトコルによって、ユーザーはメインチェーン上でトランザクションを表示することなく、資金の送金と受取ができます。ここからはこういったソリューションの中でも最も有名な2つであるサイドチェーンとペイメントチャネルを見ていきます。


サイドチェーンの紹介

サイドチェーンとは?

サイドチェーンは別のブロックチェーンです。しかしながら、独立したプラットフォームではなく、何らかの方法でメインチェーンにペッグされています。そのメインチェーンとサイドチェーン間では資産が自由に行き来することができ、これをインターオペラビリティと呼びます。

資産をチェーン間で確実に移動させるにはいくつかの方法があり、その中にはメインチェーンから移動する時に、その資産を特別なアドレスに入金させるという方法もあります。この場合、実際に移動しているのではなく、その代わりにそのアドレスにロックされ、サイドチェーン上で一致する額が発行されます。より簡単な方法(中央集権的なオプション)としては、資金をカストディアンに送り、そのカストディアンが入金された資産とサイドチェーン上の資産を交換する方法があります。


サイドチェーンの仕組み

アリスは5BTCを持っているとします。彼女はそれをビットコインのサイドチェーン上の同じ単位の資産と交換したいとします。このサイドチェーンはメインチェーンとサイドチェーン間で資産の行き来ができる、両方向ペッグを使用しています。

サイドチェーンは別のブロックチェーンなので、違うブロック、ノード、そして認証方式を持っています。サイドチェーン上のコインを手に入れるため、アリスは彼女の5BTCを別のアドレスに送金します。ビットコインを受け取ったら、サイドチェーンアドレスに5つのサイドコインをクレジットする誰かがそのアドレスを所有しているかもしれません。あるいは、ソフトウェアが支払いを検知した後に自動的にサイドコインが入金されるような、ある種の信頼性の高いミニマイズされた設定になっているかもしれません。



これでアリスは持っていたコインをサイドコインに変換しましたが、今やったプロセスの逆を行うことで、いつでもビットコインを取り戻すことができます。現在、彼女はサイドチェーン上でアセットを持っているので、この違うブロックチェーン上で自由に取引を行うことができます。彼女がメインチェーンで行っているのと同様に、誰かにサイドコインを送ったり、受け取ったりすることができます。

彼女はバイナンスパーカーのために、ボブに1サイドコインで支払いをすることもできます。彼女がビットコインを取り戻したくなったら、残っている4サイドコインを特別なアドレスに送ることができます。トランザクションが承認されたら、4BTCはアンロックされ、メインチェーン上で彼女が管理しているアドレスに入金されます。


サイドチェーンが使用される理由

アリスは普通にビットコインのブロックチェーンを使えばよくて、わざわざサイドチェーンを使う意味がわからないかもしれないので、ここからその説明をしていきます。

理由としては、サイドチェーンでは、ビットコインができないことができるかもしれないからです。ブロックチェーンはトレードオフによって、慎重に設計されたシステムです。ビットコインは最も安全で、分散化された仮想通貨ですが、スループットという観点では他のものよりも劣っています。ビットコインのトランザクションは従来の方法よりは早いですが、他のブロックチェーンシステムと比べると相対的に遅いです。ブロックは10分毎に発行され、ネットワークが混雑していると手数料が急騰することもあります。

確かに、日々の小額の支払いにこのレベルのセキュリティの必要性はおそらくないでしょう。アリスがコーヒーの支払いをする場合、彼女はトランザクションが承認されるのを待つことはしないでしょう。もしも、彼女が承認されるまで待っていたら、飲み物は渡される頃には 冷たくなっているでしょう。

サイドチェーンは同じルールに縛られていません。実際、機能するのにProof of Workを使う必要すらないです。バリデーターが1人や任意のパラメーターを設定することができ、あらゆるコンセンサスメカニズムを使うことができます。メインチェーンには存在しないアップグレードを行うこともでき、ブロックサイズを拡大し、高速決済を実現することもできます。

興味深いことに、サイドチェーンは基盤となるチェーンに影響を与えることなく、致命的なバグを持つ可能性もあります。これによって、サイドチェーンを実験用のプラットフォームとして使ったり、ネットワークの大半の合意が必要な機能を展開するために使ったりすることができます。

ユーザーがこのトレードオフに満足しているとしたら、サイドチェーンは効率的なスケーリングに向けた必須のステップとなるでしょう。メインチェーンノードにはサイドチェーンからの全トランザクションを保管するという要件はありません。アリスはたった1回のビットコイントランザクションでサイドチェーンに入り、何百ものサイドコインでのトランザクションを実行し、それからサイドチェーンから出ることができます。ビットコインブロックチェーン上では、彼女はサイドチェーンへ入る時とそこから出た時の2回しかトランザクションを実行していません。

イーサリウムプラズマも同様ですが、いくつかの大きな違いがあります。詳細はイーサリウムプラズマとは?をご覧ください。


ペイメントチャネルの紹介

ペイメントチャネルとは?

スケーラビリティという観点では、ペイメントチャネルはサイドチェーンと同じ機能を果たしますが、基本的にこの2つは全く違う技術です。サイドチェーンのように、ペイメントチャネルでもブロックチェーンが混雑しないようにトランザクションをメインチェーン以外のところで実行します。しかし、サイドチェーンとは違って、ペイメントチャネルでは機能するための別のブロックチェーンは必要ではないです。

ペイメントチャネルでは、トランザクションをブロックチェーンに公開せずにユーザーが取引を行うために、スマートコントラクトを使用します。これは、2人の当事者間でのソフトウェアによって執行される合意を使うことによって実現しています。


ペイメントチャネルの仕組み

ライトニングネットワークのような有名なモデルでは、2人の当事者は共有しているアドレスにコインを入金します。これはマルチシグネチャーアドレスで、このアドレスから資産を使うためには2つの署名が要求されます。そのため、もしもアリスとボブがそのようなアドレスを作成したら、この2人が合意した時だけ資金を移動させることができます。

ここでは、それぞれが10BTCを入金し、アドレスには20BTCがあるとしましょう。アリスとボブの両方がそれぞれ10BTCを持って始めたことを示すバランスシートを維持するのは簡単です。もしも、アリスがボブにコインを与えたい場合、それをアップデートして、アリスは9BTC、ボブは11BTCを持っているとします。彼らは、この残高を更新し続ける限り、ブロックチェーンに公開する必要はありません。



しかし、ある時、アリスが5BTC、ボブが15BTCになった時、彼らはこれらの残高を共有のアドレスに送り、署名し、それを広めるトランザクションを作成することができます。

アリスとボブはバランスシートに好きなだけトランザクションを記録することができました。しかし、ブロックチェーンに関する限り、彼らは2つのオンチェーン操作しか行っていません。1つは最初のアドレスにそれぞれ資金を送金するトランザクションで、もう1つは取引が終わったら残高を再配分するためのトランザクションです。この2つを除けば、他のすべての取引は無料で、オフチェーンで行われるため、ほぼ即時に行われます。支払うべきマイナー手数料も、待つべきブロック確認もありません。

もちろん、ここで説明した例では両当事者が協力することが必要なので、知らない人との取引に使うには理想的ではありません。しかしながら、不正を行おうとしたら罰が与えられる特別な仕組みを使うことで、当事者たちは相手を信用することなく、安全にやり取りをすることができます。 


ペイメントルーティング

ペイメントチャネルが大量のトランザクションを行うである当事者にとっては便利なのは疑いようがないです。しかし、このソリューションはさらに進化しています。これらのチャネルのネットワークは拡大することが可能なので、アリスは直接つながっていない当事者に支払いをすることができます。もしも、ボブがキャロルとチャネルを開いていたら、十分な残高さえあれば、アリスは彼女に支払いをすることができます。アリスはボブの方に資金を送り、ボブはそれをキャロルに転送します。もしも、キャロルが別の参加者であるダンと繋がっていた場合、同じようにアリスからダンに資金を送ることができます。

このようなネットワークは誰もが複数のピアと接続している、分散型トポロジーに進化します。たいていの場合、宛先までは複数のルートがあり、ユーザーは最も効率的なものを選ぶことができます。


まとめ

基盤となるブロックチェーンに負荷をかけることなく、トランザクションを行うことを可能にする2つのスケーラビリティアプローチについてここで見てきました。サイドチェーンもペイメントチャネルテクノロジーの両方ともまだ成熟していません。しかし、ベースレイヤートランザクションの欠点を回避したいユーザーによってどんどん活用されるようになってきています。

時間が過ぎて、より多くのユーザーがネットワークに参加すると、分散性が維持されることが重要です。これは、新しいノードが簡単に参加できるようにするために、ブロックチェーンの成長に限界を設定することでしか実現できません。オフチェーンスケーラビリティソリューションの支持者は、将来的にはメインチェーンは高価値なトランザクションやサイドチェーンのペッグ関連とチャネルの開設/閉鎖にしか使われなくなると信じています。