オラクルサービスで有名なChainlink(チェーンリンク)は、以下2つの実現がインターオペラビリティ向上に必要だと説明します。
- 情報提供元チェーンの状態の検証・承認
- 情報提供先チェーンに受け渡す
「2つを実行できれば、チェーンをまたいだやり取りが可能になる」ということですね!
そして、上記を実現する方法を以下の4つに分類しています。
- Web2による検証
- 第三者ノードによる検証
- ネイティブな検証
- ローカルノードによる検証
「誰が検証・承認するのか」で分けられてます!
簡単に特徴をまとめると以下の通りです。
方法(略称) | 特徴 |
Web2 | 〇:簡単、便利 △:中央管理者への依存 |
第三者 | 〇:低コスト、応用性〇 △:第三者の信用リスク |
ネイティブ | 〇:安全、応用性〇 △:高コスト |
ローカル | 〇:安全 △:応用性△ |
それぞれどのようなものか、またChainlinkが開発中のインターオペラビリティサービスについても見ていきます。
Web2による検証
Web2検証とは、Web2のサービスを利用したクロスチェーン(異なるブロックチェーンをまたぐ)取引です。
Web2のサービスの例として、BinanceやCoinbaseなどの中央集権型取引所が挙げられます。
例えば、中央集権型取引所のウォレットアドレスにUSDTを入金すると、ブロックチェーンを切り替えることなく、BTCでもETHでも、BNBでもSOLでも買えます。売るときも資産運用サービスに預けるときも、ブロックチェーンの切り替えは不要です。
利用例
Web2による検証の活用例は、中央集権型取引所のサービスです。
メリット
Web2検証のメリットは処理が早く、操作が簡単なので非常に便利です。また困ったらサポートに質問できます。
デメリット
Web2検証はクロスチェーンdAppsをサポートしていません。あくまで取引所内で便利に取引できるだけであって、DeFi関連サービスの使い勝手を向上させてはくれないのです。
また、中央管理者を信用しなければいけませんし、中央管理者がサポートしていないブロックチェーンやトークンは利用できません。
ネイティブによる検証
ネイティブによる検証を見ていく前に、わかりやすいように以下のように仮定したいと思います。
- 情報送信元のブロックチェーン = チェーンA
- 情報送信先のブロックチェーン = チェーンB
ちなみにネイティブには、「その地域に元から住んでいたり、その言語が母国語だったりして精通している」という意味があります。「ネイティブによる検証」のネイティブは、情報送信先チェーンの検証作業に元から携わっているノードを指します。
ネイティブによる検証は、以下のいずれかの要件を整えて実施されます。
- チェーンAのライトクライアントを、チェーンBの仮想マシン上で稼働させる
- 上記に加えて、上記の逆パターンも同時に行う
ライトクライアント( = ライトノード)はノードの1つであり、ブロックチェーンの状態などを受信できます。
仮想マシン(バーチャルマシン)とは、コンピュータと同じように働くソフトウェア(プログラム)です。手で触れられませんが、機能はコンピュータにそっくりです。
ブロックチェーン上では、人間が書いたスマートコントラクトのコードを機械が読める言語に翻訳(コンパイル)し、スマートコントラクトを実行してくれます。
情報が出てこず正直理解が中途半端です。そのため要確認ですが、いったんは以下のように解釈しました。
例としてチェーンAのライトクライアントを、チェーンBの仮想マシン上で稼働させたとして考えてみたいと思います。チェーンAの情報はどのようにしてチェーンBに届けられるのでしょうか。
チェーンBの仮想マシン内にあるライトクライアントは、チェーンAの状態を(チェーンAのフルノードから)受信できます。受信したチェーンAのデータは翻訳され、チェーンBに伝えられます。
こうして情報提供先チェーンに元から存在するノードにより、クロスチェーンのトランザクションが検証・承認されます。
利用例
ネイティブな検証を利用したサービスには、Cosmos IBCやNear RainbowBridge、イーサリアムとEVM対応のL2ネットワークのやり取りなどがあります。
メリット
ネイティブによる検証は最も「トラストレス」とされています。トラストレスの「トラスト」とは、サービス提供者やサービスの仕組みへの信用という意味で、トラストレスとは「きっと信用できる」と期待せずとも正常に稼働するという意味です。
また、さまざまなクロスチェーンの要求に応えられる方法です。
デメリット
ネイティブな検証のデメリットは、幅広く対応しようとしたらコストがかかる点です。
上手く機能するかどうかは、導入するネットワークのコンセンサスアルゴリズム次第であり、実施するネットワークごとに適切な形で実装する必要があるためです。使いまわしがしづらい性質だとも言えます。
第三者ノードによる検証
第三者ノードによる検証では、第三者が管理する検証用ノードを配置し、検証・承認を行います。第三者とは、情報送信元チェーンでも情報送信先チェーンでもない団体です。
そのバリデータノードは、情報送信元のブロックチェーンの状態を検証し、条件を満たした場合に情報送信先のブロックチェーン上のトランザクション実行を引き起こします。
外部検証用のバリデータノードが採用する合意形成手段には、以下のようなものがあります。
- MPC(Multi Party Computation)
- 分散型オラクルネットワーク
- threshold multi-signature contracts
いずれの合意形成を採用する場合でも、オフチェーン計算を行うバリデータノードを運用する必要があります。
オフチェーン計算とは、ブロックチェーン外で行われる処理です。コストや処理速度などの問題で、オンチェーンでの計算が難しい処理もあります。そういった際に、なるべく信用する必要のない(トラストレスな方法)方法により、オフチェーン計算がされます。
利用例
第三者ノードを活用したサービスには、Thorchainや PolyNetworkなどがあります。他にも数多く存在します。
ちなみに、Chainlinkの独自サービス「CCIP」も第三者ノードによる検証を活用しています。
Chainlinkの記事では「これが唯一の実用的な方法だ」とあります。本音でしょうか、ポジショントークでしょうか、、
メリット
第三者ノードによる検証はイーサリアムエコシステム内のネットワークへは拡張しやすく、比較的コストを抑えられます。また、さまざまなクロスチェーンの要求に応えられます。
さらに、以下のような追加的な仕組みを導入することで、セキュリティ性能を高められます。
- オプティミスティック検証
- 偽造防止ネットワーク
- ステーキング
オプティミスティック検証については、例として次に解説します。
オプティミスティック検証
オプティミスティック検証は、以下のような流れで行われます。
- ユーザーがdAppsに情報を入力
- dAppsが第三者ノードにデータをリクエスト
- どれか1つの第三者ノードがデータを取得
- ノードは担保金を預け、送信先にデータを送る
- 送信されたデータは30分など一定時間公開される
- 時間内に異議申し立てが無ければ送信完了
異議申し立てがあった場合、担保金は異議申し立てを行った人に受け渡される可能性があります。
デメリット
第三者のノードによる検証の場合、第三者のノードを信用しなければいけません。より具体的には、「第三者のバリデータノードの過半数は、嘘をつかずルールに忠実」という条件が満たされない場合、不正が発生します。
ただし上記のデメリットは、不正防止ネットワークやオプティミスティック検証など、追加的な仕組みを追加することにより軽減できます。
ローカル検証
ローカル検証では、情報送信元のブロックチェーンと情報送信先のブロックチェーンが、互いに互いを検証・承認し合います。両方とも承認すれば、クロスチェーンのトランザクションが実行されます。
ローカルは、「自分がいる側」という意味です。情報提供元のチェーンAと、情報提供先のチェーンBがやり取りするとします。このときのローカルは、チェーンAからすればチェーンA、チェーンBからすればチェーンBです。
利用例
ローカル検証を使った代表的なサービスは、「アトミックスワップ」です。
アトミックスワップとは、異なるブロックチェーン上の仮想通貨を、仲介者を通さずに取引できるサービスです。AMM型の流動性プールを使った取引とは異なり、アトミックスワップはP2Pの取引を可能にします。
その他、クロスチェーンプロトコル「Connext」のサービスもローカル検証を利用しています。
この記事の執筆では、Connextの創設者のMediumがとても参考になりました。
メリット
ローカル検証は十分にトラストレスな(安全性が高い)方法です。もともとのネットワークのセキュリティを引き継ぐことができ、第三者を信用する必要がないためです。
また、他のネットワークへ拡張するのにあまり手間がかからない点もメリットです。
デメリット
ローカル検証で処理できるトランザクションは制限されています。つまり、さまざまなクロスチェーンの要望に応えられません。
Chainlinkの独自プロトコル「CCIP」
Chainlinkは独自プロトコル「CCIP(Cross-Chain Interoperability Protocol)」を開発中です。下の動画が手短に説明してくれているのですが、すごい熱量でした(笑)
CCIPは2023年4月現在、パートナーによる協力のもとテスト中ですが、23年には機能性と安全性を満たしたサービスが提供され始める見通しとなっています。
この記事の分類基準を利用すると、CCIPは「第三者による検証」を活用したソリューションとなります。トラストレス性を少し犠牲にする代わりに、幅広いクロスチェーンリクエストに対応できてコスト的に良いのが特徴でしたね。
業界のスタンダードを目指す
CCIPは業界スタンダードの地位を狙っています。CCIPが業界スタンダードとなると、ユーザーにもChainliinkにもメリットがあります。
パブリックチェーンだけでなく、プライベートチェーンにもサービス提供します。
ユーザー側のメリット
まずユーザーは、中央集権型取引所を使うときのように、「どのブロックチェーン上のトークンか」といちいち考えなくても良くなります。
通信をする際は、送り手と受け手が同じプロトコル(通信規則)を採用する必要があります。そのため、標準的なプロトコルが存在して、多くのブロックチェーンが同じプロトコルを採用していると、多くのブロックチェーンがやり取りできるようになるのです。
Chainliink側のメリット
CCIPが業界標準となれば、当然Chainliinkは儲かります。それにより、サービスを拡充したりして、より不動の地位を築ける可能性もあります。
ただしChainliinkに依存していると、Chainliinkが不正をしたり、ネットワークが止まったりしたら通信が滞る、というリスクが出てきます(単一障害点リスク)。
複雑な処理も可能に
CCIPは複雑なクロスチェーン処理にも対応できるプロトコルとなる予定です。以下のように、いいとこどりしたトランザクションにも対応します。
- イーサリアムのセキュリティ性と分散性を使い、
- ポリゴンの処理速度を使い、
- オフチェーンデータ取得には分散型オラクルを使う。
実績のあるノード
CCIPの検証に参加するのは、Chainlinkのオラクルネットワークのノードです。Chainlinkのオラクルネットワークは幅広く利用されているので、そのノードには実績があると言えます。
OCR 2.0への進化
Chainlinkのオラクルは、OCR(Off-Chain Reporting protocol )に従って働きます。OCRは今後、より効率的なOCR 2.0に進化する予定であり、ノードはクロスチェーンのリクエストも問題なくこなせることが期待されています。
また効率化のおかげで、検証・承認に参加するノードの数を数百にまで増加させることが可能だとされています。
不正防止ネットワーク
CCIPは、クロスチェーンのリクエストを処理するノードとは別に、監視専用のノードを導入し、セキュリティを高めます。監視専用のノード群は「Anti-Fraud Network(不正防止ネットワーク)」と呼ばれます。
まとめ:Chainlinkが牛耳るのか・・?!
インターオペラビリティのソリューションの分類をおさらいします。
方法(略称) | 特徴 |
Web2 | 〇:簡単、便利△:中央管理者への依存 |
第三者 | 〇:低コスト、応用性〇△:第三者の信用リスク |
ネイティブ | 〇:安全、応用性〇△:高コスト |
ローカル | 〇:安全△:応用性△ |
個人的に気になったのは、第三者による検証を採用した「CCIP」です。
CCIPは少し中央集権的なプロトコルですが、トラブルが無ければ広がりそうに感じました。Chainlinkは既に多くのプロジェクトと提携しているので、その流れでみんな使いだしそうです。
仮想通貨の世界では分散性は重要ですが、「分散性<安全性」と考える人は多いと思います。また程度の問題ですが、「分散性<利便性」と考える人も多いと思います。安全性や利便性に明確な優位性があるなら、みんなCCIPを使いそうです。
ステーブルコインを見ても、DAIよりもUSDTやUSDCのほうが使われています。あと、なんだかんだ言って、みんなBinanceを使っています(2023年4月)。
ただ、CCIPだけに依存することにはリスクがあります。なので、CCIPとは別のアプローチ「ネイティブなノードによる検証」を採用するコスモスの技術も、2番手などとして受け入れられるかもしれません。USDTに対してのUSDCやDAIの立ち位置ですね。
でも結局、「CCIPでええやん」となるかもしれません。「Windowsでええやん」みたいな感じでしょうか。
LINKをどこかで買っておきたいかも
補足:インターオペラビリティやクロスチェーンとは?
Chainlinkによるインターオペラビリティの定義を補足します。
ブロックチェーンのインターオペラビリティとは、ブロックチェーンが規格の異なるブロックチェーンと、データやトークンをやり取りすることです。
インターオペラビリティの基盤となる技術は「クロスチェーンメッセージングプロトコル」です。クロスチェーンメッセージプロトコルの活用により、ブロックチェーンが他のブロックチェーンのデータを読んだり、他のブロックチェーンにデータを書き込んだりできるようになります。
クロスチェーンdAppsとは
クロスチェーンdAppsは、異なるブロックチェーン上にあるスマートコントラクトが一体となることで実現します。ユーザーがリクエストを出すと、チェーンA上のスマートコントラクトとチェーンB上のスマートコントラクトが連動し、ユーザーの要望に応えます。
上の図で表したかったことは2点です。チェーンAのスマートコントラクトとチェーンBのスマートコントラクトがやり取り可能だという点と、二つで1つのdApps(統合dApps)だという点です。
マルチチェーンdAppsとは
クロスチェーンdAppsとマルチチェーンdAppsは別物です。マルチチェーンdAppsも異なるブロックチェーン上にスマートコントラクトを実装しています。
しかしマルチチェーンdAppsの場合、チェーンAのスマートコントラクトと、チェーンBのスマートコントラクトは連動しません。つまりチェーンAで1つのdApps、チェーンBで1つのdAppsとしてそれぞれ動いています。
コメント