ブロックチェーンのスケーラビリティ – サイドチェーンと決済チャネル
はじめに
スケーラビリティとは広義には、需要の増加に対応して成長するシステムの能力を指す。コンピューティングでは、ハードウェアをアップグレードすることでマシンの性能を高め、特定のタスクをより高速に実行できるようにすることがある。ブロックチェーンでスケーラビリティと言えば、より多くのトランザクションを処理できるようにその能力を高めることを指す。
ビットコインのようなプロトコルには多くの強みがあるが、スケーラビリティはその一つではない。もしビットコインが中央所有のデータベースで実行されていれば、管理者がスピードとスループットを向上させるのは比較的簡単だろう。しかし、ビットコインの価値提案(すなわち検閲耐性)は、多くの参加者がブロックチェーンのコピーを同期することを必要とする。
ブロックチェーンのスケーラビリティ問題
ビットコインのノードを動かすのは比較的安価で、シンプルなデバイスでも可能だ。しかし、何千ものノードが互いに最新の状態を保つ必要があるため、その容量には一定の制限がある。
データベースが扱いにくいサイズに成長しないように、オンチェーンで処理できるトランザクション数に上限が設けられている。データベースがあまりに早く大きくなりすぎると、ノードは対応しきれなくなる。さらに、ブロックが大きすぎると、ネットワークを迅速に中継することができなくなる。
その結果、ある種のボトルネックに陥ってしまうのだ。ブロックチェーンは、一定間隔で発車する列車の運行と見なすことができる。各車両の座席には限りがあり、切符を手に入れるには、旅行者は場所を保証するために入札しなければならない。誰もが同時に列車に乗ろうとすれば、料金は高くなる。同様に、保留中の取引で詰まったネットワークでは、利用者は自分の取引がタイムリーに含まれるのを確認するために高い手数料を支払う必要がある。
ひとつの解決策は、車両を大きくすることだろう。そうすれば座席数が増え、処理能力が向上し、チケット代も安くなる。しかし、かつてのように座席が満席にならないという保証はない。ブロックやブロックガスの上限が無限に拡張できないのと同じように、客車も永久に広げることはできない。後者の場合、ノードがネットワークに留まり続けるには、同期を維持するためにより高価なハードウェアが必要になる。
イーサリアムの生みの親であるヴィタリック・ブテリンは、ブロックチェーンが直面する課題を説明するために「スケーラビリティのトリレンマ(Scalability Trilemma)」という造語を作った。彼は、プロトコルはスケーラビリティ、セキュリティ、分散化の間でトレードオフをしなければならないと理論化している。これらの性質は互いにやや相反するものであり、2つの性質に集中しすぎると3つ目の性質が貧弱になる。
このため、多くの人はスケーラビリティはオフチェーンで達成されるべきものであり、セキュリティと分散化はブロックチェーン自体で最大化されるべきものと考えている。
オフ・チェーン・スケーリング・ソリューションとは?
オフチェーンスケーリングとは、ブロックチェーンを肥大化させることなくトランザクションを実行できるようにするアプローチを指す。チェーンにプラグインするプロトコルは、メインチェーンにトランザクションを表示することなく、ユーザーが資金を送受信することを可能にする。ここでは、サイドチェーンとペイメント・チャネルという、この分野で最も注目すべき2つの進歩を紹介する。
サイドチェーン入門
サイドチェーンとは何か?
サイドチェーンは独立したブロックチェーンです。しかし、メインチェーンに何らかの形で固定されているため、独立したプラットフォームではありません。メインチェーンとサイドチェーンは相互運用可能であり、資産は一方から他方へ自由に流れることができる。
資金を確実に移行させる方法はいくつかある。場合によっては、資産をメインチェーンから特別なアドレスに預けて移動させる。その代わり、資産はそのアドレスに固定され、サイドチェーン上ではそれに見合った金額が発行される。中央集権的ではあるが)より簡単な方法は、カストディアンに資金を送り、カストディアンが預金をサイドチェーン上の資金と交換する方法だ。
サイドチェーンの仕組み
友人のアリスが5枚のビットコインを持っているとする。彼女はそれをビットコインのサイドチェーン上の5つの等価なユニットと交換したい。問題のサイドチェーンは双方向ペグを採用しており、ユーザーは自分の資産をメインチェーンからサイドチェーンへ、またその逆も可能だ。
サイドチェーンは別のブロックチェーンであることを覚えておいてほしい。つまり、ブロック、ノード、検証メカニズムが異なる。サイドコインを得るために、アリスは5ビットコインを別のアドレスに送る。そのアドレスは、ビットコインを受け取ったら、彼女のサイドチェーンアドレスに5枚のサイドコインをクレジットする誰かの所有かもしれない。あるいは、ソフトウェアが支払いを検出した後、サイドコインが自動的に入金されるような、ある種の信頼最小化セットアップがあるかもしれない。
アリスは今、コインをサイドコインに変換しましたが、ビットコインを取り戻すためにいつでもプロセスを逆行させることができます。サイドチェーンに入ったアリスは、この別のブロックチェーンで自由に取引ができる。メインチェーンと同じように、サイドコインを送ったり、他の人から受け取ることができる。
例えば、Binanceのパーカーを買うために、ボブに1サイドコインを支払うことができる。ビットコインに戻りたいときは、残りの4枚のサイドコインを特別なアドレスに送ることができる。トランザクションが確認された後、4枚のビットコインがアンロックされ、メインチェーン上の彼女が管理するアドレスに届けられる。
なぜサイドチェーンが使われるのか?
何の意味があるのかと思うかもしれない。なぜアリスはビットコインのブロックチェーンを使わないのか?
その答えは、サイドチェーンはビットコインにはできないことができるからだ。ブロックチェーンは慎重に設計されたトレードオフのシステムだ。ビットコインは最も安全で非中央集権的な暗号通貨だが、処理能力という点では最高ではない。ビットコインのトランザクションは従来の方法よりも高速だが、それでも他のブロックチェーン・システムと比較すると比較的遅い。ブロックは10分ごとに採掘され、ネットワークが混雑すると手数料が大きく膨らむこともある。
確かに、日々の少額の支払いにはこのレベルのセキュリティは必要ないだろう。アリスがコーヒーの代金を支払う場合、彼女はトランザクションが確認されるまで立って待つことはないだろう。彼女は行列に並ぶことになるし、飲み物が手渡される頃には冷めているだろう。
サイドチェーンは同じルールに縛られない。実際、機能するためにプルーフ・オブ・ワークを使う必要さえない。どんなコンセンサス・メカニズムを使ってもいいし、単一のバリデーターを信じてもいいし、パラメーターの数を微調整してもいい。メインチェーンに存在しないアップグレードを追加したり、より大きなブロックを生成したり、迅速な決済を実施したりすることもできる。
興味深いことに、サイドチェーンは基礎となるチェーンに影響を与えることなく、致命的なバグを抱えることさえできる。このため、サイドチェーンは実験用のプラットフォームとして利用することができ、そうでなければネットワークの大多数からのコンセンサスを必要とするような機能を展開することができる。
ユーザーがトレードオフに満足できるのであれば、サイドチェーンは効果的なスケーリングへの不可欠なステップとなるだろう。メインチェーンのノードがサイドチェーンからの全ての取引を保存する必要はない。アリスは1回のビットコイン取引でサイドチェーンに入り、何百ものサイドコイン取引を行い、サイドチェーンを抜けることができる。ビットコインのブロックチェーンに関する限り、アリスが行ったのは2回だけだ。
イーサリアムのPlasmaも似ているが、大きな違いがある。それについてもっと読む: イーサリアム・プラズマとは?
ペイメントチャネル入門
ペイメントチャネルとは?
ペイメントチャネルは、スケーラビリティの面ではサイドチェーンと同じ目的を果たしますが、根本的には大きく異なります。サイドチェーンと同様に、ブロックチェーンの肥大化を防ぐためにメインチェーンからトランザクションを押し出します。しかし、サイドチェーンとは異なり、機能するために別のブロックチェーンを必要としない。
ペイメント・チャネルはスマート・コントラクトを使用し、ユーザーがブロックチェーンにトランザクションを公開することなく取引できるようにする。これは、2つの参加者間でソフトウェアによって強制される契約を使用することで実現する。
ペイメント・チャネルの仕組み
人気のライトニング・ネットワークのようなモデルでは、まず2つの当事者が共同で所有するアドレスにコインを入金する。これはマルチシグネチャアドレスであり、資金を使用するために2つの署名が必要なアドレスである。つまり、アリスとボブがこのようなアドレスを作成した場合、2人の同意がなければ資金を移動できない。
例えば、2人がそれぞれ10BTCを20BTCのアドレスに入金したとしよう。アリスとボブがそれぞれ10BTCを持っているというバランスシートを作成するのは簡単だ。アリスがボブにコインをあげたい場合、アリスは9BTC、ボブは11BTCを持っていると更新することができる。残高を更新し続けるので、ブロックチェーンに公開する必要はない。
しかしその時が来たら、アリスが5BTC、ボブが15BTCを持っているとしよう。そして、これらの残高を当事者が所有するアドレスに送信するトランザクションを作成し、署名し、それをブロードキャストすることができる。
アリスとボブは貸借対照表に10件、100件、1000件の取引を記録することができる。1つは最初の資金調達のための取引、もう1つは資金調達が終わったときに残高を再割り当てするための取引だ。この2つを除けば、他の取引はすべてオフチェーンで行われるため、無料でほぼ瞬時に行われる。マイナーの手数料を支払う必要もなければ、ブロックの確認を待つ必要もない。
もちろん、上述の例では両者が協力する必要があり、見知らぬ者同士にとっては理想的な状況ではない。しかし、不正を行おうとした場合は特別なメカニズムを使って罰することができるため、当事者同士は信頼関係なしに安全にやり取りすることができる。
支払いルーティング
大量の取引が予想される2つの当事者にとって、支払い経路が便利であることは明らかだ。しかし、さらに良いことがある。つまり、アリスが直接つながっていない相手に支払うことができる。ボブがキャロルとチャネルを開いている場合、十分なキャパシティがあれば、アリスは彼女に支払うことができる。彼女はチャネルのボブの側に資金をプッシュし、ボブはそれをキャロルの側にプッシュする。キャロルがもう一人の参加者、ダンとつながっていれば、同じことができる。
このようなネットワークは、全員が複数のピアに接続する分散型トポロジーに発展する。目的地へのルートは複数存在することが多く、ユーザーは最も効果的なものを選択できるようになる。
最後に
ここまで、基盤となるブロックチェーンに負担をかけずに取引を行うことを可能にする2つのスケーラビリティ・アプローチについて述べてきた。サイドチェーンもペイメントチャネル技術もまだ成熟していないが、ベースレイヤーのトランザクションの欠点を回避したいユーザーによって活用される機会が増えている。
時間が経過し、より多くのユーザーがネットワークに参加するにつれ、分散化が維持されることが重要になる。これは、新しいノードが容易に参加できるようにブロックチェーンの成長に制限を設けることによってのみ達成可能である。オフチェーン・スケーラビリティ・ソリューションの支持者は、やがてメインチェーンは高額取引の決済やサイドチェーンのペッグイン/アウト、チャネルのオープン/クローズにのみ使われるようになると考えている。