インターネットのプロトコルと比べて、ビットコインには新しい技術を導入することが難しいことが課題としてあげられています。ビットコインに導入が進められている双方向の送信が可能なサイドチェーンは、この問題を解決します。
つまり、ビットコインブロックチェーンの機能拡張がより簡単になるということです。当記事では、ビットコインのサイドチェーンで得られるメリット、また現在考えられているTwo-way Pegサイドチェーンの導入方法に関してお伝えしていきます。
また、ここではサイドチェーンと対比して、ビットコインのブロックチェーンを「メインチェーン」として表現していきます。
サイドチェーンとは
(source: blockstream)
サイドチェーンとは2014年に公表された、ビットコインのメインチェーンとなるブロックチェーンの側鎖となる概念です。サイドチェーンを導入すると、メインチェーンとサイドチェーンの間でビットコインなどのデジタルアセットをやり取りできることになります。
上図で「Two-way Peg」と書かれているのは、メインチェーンとサイドチェーンの間で双方向でやり取りできるということです。従来では、メインチェーン→サイドチェーンという一方向(One-way peg)でしかデータは送れませんでしたが、現在開発が進められているサイドチェインでは、サイドチェーン→メインチェーンという方向での送信も可能になります。
上図のように、サイドチェーンはメインチェーンの機能を拡張することが可能です。例えば、イーサリアムの機能に代表されるスマートコントラクトをビットコインのサイドチェーン上で実装することができるようになります。
サイドチェーンのメリット
サイドチェーン(Two-way Peg)を導入することがビットコインネットワークが得られる恩恵をまとめていきましょう。
双方向でやり取りできる(Two-way Peg)
メインチェーンからサイドチェーンへ、そしてサイドチェーンからメインチェーンへと双方向でデジタルアセットのやり取りができます。
現状のビットコインでもCounterpartyのようにProof of Burnでメインチェーンからサイドチェインにビットコインを送ることは可能です。Proof of Burnとは、誰も入手不可能な特別なアドレスに送金することで消失(Burn)させ、サイドチェーン側にビットコインを持ってくる方法です。
しかし、この方法では、サイドチェイン側からビットコインに資産を戻すことができません。なので、後述するような方法で双方向でのやり取りが可能なサイドチェーンの開発が進められています。
スマートコントラクトなどの新機能を導入できる
サイドチェーンの実装により、イーサリアムのようなスマートコントラクトの機能をビットコインに追加することが可能です。他にも、送金手数料の軽減やブロック承認時間の短縮などの改善を行うことも可能です。
詳しくは後述しますが、Rootstockは、サイドチェーンによってスケーラビリティ問題と承認時間の改善、およびスマートコントラクトをビットコインブロックチェーン上で実装することを目指しています。
アップデートのためにフォークの必要がない
冒頭でビットコインブロックチェーンで技術拡張を行うことは困難であるとお伝えしました。現状、新しい機能を追加したり改善したりする場合は、ソフトフォークあるいはハードフォークが実施されています。
しかし、このフォークは下記の記事で詳しくお伝えしているようにコミュニティの分裂など大きなリスクがあります。
サイドチェーンが実装されれば、ビットコインのコア技術をしっかりと利用しつつ、新しい技術を素早く低リスクで導入することが可能になります。
参考:【完全版】ブロックチェーンでのソフトフォークとハードフォークの違い
サイドチェーンを実装する5つの方法
サイドチェーンを実現させるには、異なるブロックチェーン上でビットコインなどのデジタルアセットを双方向でやり取りする必要があります。このTwo-way Pegを実現するために以下の5つの方法があげられます。
特定の監査人が橋渡しをする(Single Custodian)
この方法は最もシンプルで簡単ですが、かなり中央集権化されている方法と言えます。ブロックチェーン間でデジタルアセットをやり取りするときに、もう一方のブロックチェーンでそのアセットが有効化されるまでどこか特定の監査人がそのアセットを保持しておくという方法です。
この方法で10BTCがメインチェーンとサイドチェーン間で監査人Aを介してやり取りされる状況を考えましょう。この場合、メインチェーンから監査人Aに10BTCが送られ、サイドチェーンでその10BTCがデータとして有効化されるまで、監査人Aが10BTCを預かっていることになります。
この場合、監査人Aを絶対的に信頼しなくてはいけなく、Trustlessなビットコインネットワークの特徴を活かしていないことになります。
マルチシグで複数の監査人が橋渡し(Federation)
(source: Strong Federations paper)
この方法は上記のSingle Custodianを応用した方法になります。ブロックチェーン間のやり取りをひとつの特定の監査人が媒介するのではなく、マルチシグのアドレスを使うことで複数の監査人が介することが可能になります。
つまり、ブロックチェーン間の送信のときに特定の監査人に全てのデジタルアセットが預けられるというリスクを低減することができます。なぜなら、マルチシグネチャを使っているので、ひとつのある監査人が預かったBTCを盗もうとしても他の監査人が認めないことで盗難は防ぐことができるからです。
Blockstreamが進めているLiquidというサイドチェーンもこの方法を採用しています。Liquidはサイドチェーン上に共同のビットコインプールを用意することで、異なるサービス上でビットコインのやり取りを瞬時に行うことができるのです。特にLiquidではBlockstreamが開発したより優れたセキュリティを強みとする「strong federations」を導入しています。
Blockstreamは他にも、Elementsというオープンソースのサイドチェーンを開発しています。Elementsでは、スマートコントラクトやSegwitなどさまざまな新しい機能の追加を目指しています。
このように、メインチェーンとサイドチェーンに機関が介入するメリットとしては、ソフトフォークなどでビットコインのプロトコルに変更を加える必要がないということがあげられます。また、後述する方法(Drivechain)と比べてサイドチェーン→メインチェーンの送信が高速であるというメリットもあげられます。(一方で、メインチェーン→サイドチェーンの送信時間はDrivechainと比べて少し遅めになると考えられています。)
デメリットとしては、監査人が存在するということがビットコインネットワークがP2Pでなくなってしまうということです。さらに、複数でも監査人を信頼しなければならないというリスクがあります。
SPV sidechain
(source: ethereum blog)
SPV sidechainはオリジナルのsidechainのホワイトペーパーで書かれたtwo-way pegの方法です。この方法は、SPV証明という方法でブロックチェーン間のビットコインの移動が実現します。10BTCのメインチェーンからサイドチェーンへの移動を考えていきましょう。
まず、送り手が10BTCを上図のような「lockbox script」に送るトランザクションを作成します。そのときトランザクションには小さな特殊データを含めておきます。そのトランザクションを含むブロックがビットコインのブロックチェーンに追加されると、サイドチェーンへ移動するためのシグナルとなり、10BTCがサイドチェーンに送られるのです。
このようにSPV sidechainは、トランザクション中にシグナルのためのデータ領域を作る必要があるのでソフトフォークにより実装されます。
SPV sidechainは上述したようにブロックチェーン間で仲介する機関が存在しないのでP2Pを保つことが可能です。しかし、マイナーが不正なシグナルデータを入れることができてしまうという懸念があります。
Drivechain
Drivechainは上記のSPV proofを応用した方法で、SPV-sidechainと方法は似ています。Drivechainはマイナーがブロックチェーン間の監査人となる方法で、マイナーの投票により資産の移動が行われます。つまり、Drivechainではマイナーが最も安全で信頼のできる監査人であると考えているのです。
サイドチェーンからメインチェーンへの資産の移動は、全体の51%以上のマイナーが許可した場合のみ行うことができます。また、メインチェーンとそれぞれのサイドチェーンの管理は同一のマイナーが行っているので、どのサイドチェーンもメインチェーンと同じアルゴリズムで実装されます。これはDrivechainの大きなメリットであり、ネットワーク全体の仕様をシンプルに保つことができるのです。
Drivechainでは同一のマイナーがメインチェーンとサイドチェーンの管理を行うので、マイナーはマージマイニングを行う必要があります。マージマイニングとは、マイナーがメインチェーンとサイドチェーンで同時にマイニング作業をすることです。
マージマイニング自体は新しい技術ではなくすでにNamecoinで実装されていますが、そのままDrivechainに導入するのはいくつかの懸念点があるのでBMM(Blind Merge Minig)などの新しい技術が開発されている状況です。
Drivechainのデメリットとしては、多くのサイドチェーンが導入されればされるほどマイナー側のコストが高くなる点があげられます。また、Drivechainの自体の実装には、SPV sidechain同様にソフトフォークでの実装が必要となります。
Drivechainについては以下の記事でさらに詳しくお伝えしているのでご覧ください。
参考:ビットコインのサイドチェーンを実現する大本命「Drivechain」とは
複数の方法のハイブリッド
上述した4つの方法を組み合わせてサイドチェーンを実現させることも考えられます。例えば、ビットコイン上にスマートコントラクトの機能拡張を目指しているRSK(Rootstock)では、driverchainとマルチシグアドレスの利用による複数の監査人を組み合わせることを考えています。
つまり、マイナーと複数の監査人にブロックチェーン間のやり取りを管理する権限を与えるのです。ただ、drivechainは上述のようにソフトフォークによる実装が必要になるので、現時点では複数の監査人による方法のみを用いています。
アトミックスワップとの違い
アトミックスワップは、第三者を介さずにビットコインと他のアルトコインの交換を可能にする技術です。つまり、アトミックスワップもサイドチェーンと同様に複数のブロックチェーン間でデータをやり取りする技術であると言えます。
参考:【図解】アトミックスワップのすべて。その仕組みとメリットと問題点
このふたつの技術(概念)は似ているようで目指している方向性が全く違います。これらの違いを見ていきましょう。
- アトミックスワップはすでに存在しているアルトコインのブロックチェーンへトランザクションを作れる技術です。サイドチェーンはビットコインの機能を拡張するために新しくブロックチェーンが作られます。
- 現状のアトミックスワップはペイメント(仮想通貨のやり取り)のみです。サイドチェーンでは、サイドチェーンにスマートコントラクトの機能をつけるなどしてビットコインの機能を拡張することが可能です。
つまり、アトミックスワップはさまざまな仮想通貨間でシームレスに両替(交換)できることを目指しており、仮想通貨の経済圏をひとつにまとめようとしています。
一方、サイドチェーンはビットコインの手助けをする形で、ビットコインの機能拡張およびスケーラビリティ問題の解決を目指していると言えます。
メインチェーンとサイドチェーンのやり取りでアトミックスワップの技術を使えないのか?
メインチェーンとサイドチェーン間の仮想通貨(トークン)の交換であれば、サイドチェーンがアトミックスワップの仕様に適している前提で理論上、アトミックスワップでも行うことは可能です。実際に、Drivechainではプロセスの一部でアトミックスワップを用いることによってサイドチェーンからメインチェーンへの引き戻し時間を早めようとしています。
しかし、アトミックスワップだけを用いるとサイドチェーンの管理(マイニングなど)はどうするのか、という問題が残ってしまいます。サイドチェーンはビットコインの側鎖なので、マイニングするインセンティブがありません。Drivechainではその「管理問題」も含めて解決しようとしています。
つまり、アトミックスワップの技術をサイドチェーンのTwo-way Pegのプロセスの中で応用することは行われようとしています。