ブロックチェーン インターオペラビリティ概要
ブロックチェーンのインターオペラビリティの概要と主な手法について説明していきます。
インターオペラビリティとは
ブロックチェーンでのインターオペラビリティ(相互運用性)とは、あるブロックチェーンの一つのトランザクションが別の仕様の異なるブロックチェーンに作用をすることが出来たらこの2つのブロックチェーンはインターオペラビリティがあると言えます。
例えば、BTCをビットコインのブロックチェーンからイーサリアムのブロックチェーンに送信するトランザクションを作成できれば相互運用できると言えます。
なぜインターオペラビリティが重要なのか
インターオペラビリティが必要だと考えられているのは大きく分けて3つの理由があります。スケーラビリティと自由度とセキュリティです。
スケーラビリティ
ブロックチェーンの性質上、単一のブロックチェーンでスケーラビリティを確保することはとても難しくなっています。単一のブロックチェーンでは、ブロックのサイズを大きくしたり、要求するマシンのスペックを高めれば高める程中央集権化していきますが、ネットワークはその分パフォーマンスが上がります。しかし、ブロックチェーンの性質を保つためにはこの方法を使うことは出来ません。
ですので、ブロックチェーン自体を分散させてそれぞれのブロックチェーンが独自に稼働しつつ、同期させる事でそれぞれのブロックチェーンではブロックのサイズやマシンの要求を上げることなく多くの情報の処理が出来るようになります。
自由度
ブロックチェーンの技術自体に自由度があるということはとても重要です。
例えば、通貨を作るネットワークと情報のトラッキングをするネットワークや投票をするネットワークでは、必要な条件が大きく違います。チューリングコンプリートなイーサリアムのようなブロックチェーンでさまざまな事が出来ますが、それぞれの条件に合致する細かな仕様で作ることは出来ません。ですので、本当に必要な条件でブロックチェーンを作り、それらを相互運用することでより用途にあったものが作れると言えます。
また、技術は常に革新され変化していきます。基本的には、古いものを新しいものに少しづつ変化させていくのは難しく、このような変化はあまり起きません。ですので、インターネットと同じ様に、古くからある技術と新しく出てくる技術が上手く交わることが出来るというのも重要であると言えます。
セキュリティ
ブロックチェーンは、バグが有った場合の対処がとても難しくなっています。それには2つの側面があります。ブロックチェーンは基本的に誰でもアクセスできるオープンなものであることと、基本的にはデータの改変が出来ないことです。
例えば、あるブロックチェーンにバグが潜んでいて、一定の条件で不正なデータを混入できるとします。もし、このブロックチェーンが世界中で使われていたら、このブロックチェーンを使用しているサービスの影響やこの修正のアップデートをネットワークに適応する労力が膨大なものになります。
しかし、複数のブロックチェーンが必要な時にのみコミュニケーションをとるインターオペラビリティの場合は、ひとつのブロックチェーンのバグや仕様変更は基本的には他のネットワークへの影響はありません。例えば、ビットコインとイーサリアムが相互運用性があったとしてイーサリアムのバグはビットコインのネットワークには基本的に影響は与えません。
ですので、単一的なブロックチェーンを運用するよりも複数のブロックチェーンを運用するほうが、運用やセキュリティの面で優れているといえます。
なぜインターオペラビリティが難しいのか
基本的な分散システムの場合、想定として、ネットワークには常に遅延があり不安定なものとして扱われますが、悪意を持った存在はいないとされています。ですので、各システムはそれぞれが受け取る情報を信頼してシステムを進めることができます。例えばシステムAがコインの送信を完了したら、システムBに通知しシステムBがユーザーに送金するケースを考えます。これらは、分散システムや通常のウェブサービスでは日常に行われています。
しかし、ブロックチェーンでは同じようにはできません。システムA、BをブロックチェーンA、Bとした場合、ブロックチェーンAがコインを送信したという情報が正しいものであることの証明をブロックチェーンBに提出する必要になります。また、フォークの存在するブロックチェーンではさらに、Reorganization/Reorg (再整理)というものがあり、送信したという情報がなくなってしまう可能性もあります。
ですので、そのような一度正しかったものが正しくなくなるような可能性を排除して、かつ、ブロックチェーン上で何かを行ったという証明をブロックチェーンAとBお互いが理解出来る形で証明する必要があります。
インターオペラビリティの手法
インターオペラビリティには、これまでにいろいろな方法が考えられてきました。以下で、その代表的なものを説明していきます。
Atomic Swap (アトミックスワップ)
Atomic Swapは、ビットコインとライトコイン間で成功しています。これは、二者間の取引になるので常に相手が必要になります。
例えば、アトミックスワップでは、ユーザーAがユーザーBに対して10BTCを送る変わりにユーザーBがユーザーAに100LTCを渡すという取引が信用なしで行うことができます。
アトミックスワップの主な実装はハッシュタイムロックコントラクト(HTLC)というプロトコルです。これは、ユーザーAがパスワードをハッシュしたものと時間制限をつけて10BTCをあるアドレスに送信します。ユーザーBは、同じハッシュを使用しあるアドレスに100LTCを送信します。ユーザーAは、100LTCを受け取る時にこのパスワードを開示しなければなりません。そうすることで、ユーザーBがパスワードを知ることになり10BTCを受け取ることが出来るようになります。
つまり、ユーザーAが受け取りをしない限りユーザーBは受け取りをできないことになり、ユーザーAが受け取ったらユーザーBは確実に受け取ることが出来る契約になっています。そして、時間内にユーザーAが受け取らない場合は、契約はキャンセルされます。
Federated 2-way peg
Federated 2-way pegは、主に2つのチェーンの間にFederation(連邦)と呼ばれるグループを作りその組織を仲介してコミュニケーションを行います。
このフェデレーションは、作る人やプロジェクトによって分散度合はかわりますが、基本的にはトラストレスではなく、このフェデレーションに対して一定の信頼をする必要があります。
もし、BTCをビットコインからイーサリアムに送信する場合、ユーザーAは、ビットコイン上のフェデレーションが管理しているアドレスにBTCを送信します。そして、フェデレーションはイーサリアム上で仮のBTCを発行します。これが、簡易的な2-way pegに方法になります。
Federated 2-way pegは、完全なトラストレスでないことと、主にトークンの送受信が目的となっており、他の情報を共有したい場合などは使えません。
Rollups(ロールアップ)
ロールアップは、イーサリアムのスケーリングの解決法として有名になりましたが、こちらもインターオペラビリティの一種と言えると思います。
さまざまな種類のロールアップが提案されていますが、基本的には別のブロックチェーン、もしくはブロックチェーン以外で行われた処理の結果のみを記録するという方法です。
例えば、ユーザーAが100アカウントにそれぞれ1ETHづつ送信したいとします。本来のイーサリアムであれば、100のトランザクションを作らなければなりませんが、ロールアップではこのトランザクションの実行は別のブロックチェーンもしくはサービスで行い、結果と証明をイーサリアム上に記録します。
オプティミスティックロールアップ(楽観的ロールアップ)とZKロールアップが有名なプロトコルですが、オプティミスティックロールアップは、承認されるまでの待ち時間があることが現在の問題で、ZKロールアップは現在は自由度が少ない(つまり、スマートコントラクトは動かない)ことが問題です。ただ、これからの研究でそれらを解決する方法が出てくるかと思います。
シャーディング
シャーディングは、分散システムでもよく使われていますが、基本的にはデータを分散しつつ、同期させる技術のことを指します。
シャーディングには、主に2つの分類がありイーサリアムのような各チェーンが同じルールで動くものとPolkadotのような各チェーンが別ルールで動くようなものがあります。
どちらも、共通して情報のルーティングを行うチェーンが存在しイーサリアムではビーコンチェーン、Polkadotではリレーチェーンと呼ばれています。
Cross-chain updates (クロスチェーンアップデート)
クロスチェーンアップデートは、Liskで使われている技術で各ブロックチェーンでの通信と証明方法の取り決めて情報を交換する方法です。シャーディングよりも、自由度と独自性が上がるため、よりスケーリングもしやすくさまざまなユースケースも適応出来るようになっています。一方で、独自性が上がるがゆえに、セキュリティも独自で担保する必要が出てきます。
まとめ
ブロックチェーンの利用が増えていけば、現在の処理能力ではどんどん足りなくなり、スケーリングの解決法としてインターオペラビリティは必要不可欠になってきます。そのため、ほとんどのブロックチェーンは上記のいずれかの方法、もしくは更に新しい技術を取り込み、複数のチェーンと情報をやり取りしていくというようなマルチチェーンなネットワークになっていくと思われます。
特に今年から来年にかけて、Polkadot,CosmosやLiskはインターオペラビリティを支えるプロジェクトとして注目されていくと思います。
参考文献
本記事はShusetsu Todaさんによる下記のVIPPOOL BLOGの記事をAXELL BLOGに転載したものです。