⚔️

Cross-Chain Smart Contractsって何?

2023/07/08に公開
1

Cross-Chain Smart Contracts(クロスチェーンスマートコントラクト)は、色んなブロックチェーンネットワークに広がっているスマートコントラクトらが一緒になって、一つのアプリケーションの構築を可能にするものです。

この新しいコントラクトは、マルチチェーン(色んなブロックチェーンが組み合わさったもの)の発展にめちゃくちゃ重要な一歩です。それぞれのブロックチェーンやサイドチェーン、レイヤー2ネットワーク等の良いところを上手く利用して、全く新しいスマートコントラクトの使い方を作り出すことができます。

今回はマルチチェーンエコシステムがどう成長してきたか、から始め次にそれぞれのマルチチェーンスマートコントラクトの戦略の長所と短所についてざっくりと説明していきます。そして、Cross-Chain Smart Contractsがブロックチェーンベースのアプリケーションを作る方法そのものにどうやって大きな変化をもたらすかについても説明していきます。

さらに、クロスチェーンスマートコントラクトが可能にする新しい使い方についてもいくつか紹介します。最後に、クロスチェーン相互運用プロトコル(CCIP)が、ブロックチェーン間のセキュアな通信を可能にすることで、この大きな変化を後押ししている方法についても説明します。それでは見ていきましょう。

マルチチェーンエコシステムの台頭

今までスマートコントラクトを採用するとなると、大体はイーサリアムメインネットの話だったと思います。
これはイーサリアムが最初に完全プログラム可能なスマートコントラクトをサポートしていたからです。イーサリアムの採用には、先陣を切るという利点だけじゃなく、ネットワーク効果、分散型アーキテクチャ、試験済みのツール、そして広範囲にわたるSolidity開発者コミュニティ等も大いに役立ってきていました。
でも、イーサリアムのスマートコントラクトへの需要が増すにつれて、イーサリアムのブロックスペース(コンピューティングリソース)への需要も増大してしまい、取引のGas代がどんどん上がってしまっています。
イーサリアムメインネットは確かにスマートコントラクトを動かすのに安全と言えますが、エンドユーザーはもっと安いGas代を求めている状況です。
こうした背景から、開発者やユーザーの要望に応えるために、別のレイヤー1ブロックチェーンやサイドチェーン、レイヤー2ロールアップなどでスマートコントラクトを利用する動きが最近急激に増えてきている現状があります。
そして、一昔前まで理論的な話だったマルチチェーンエコシステムが、いまや現実のものになりつつあります。これは、色んなブロックチェーン上でのDeFiエコシステムのTotal Value Lockedが多様化してきてることで証明されてます。
さらに、1日のアクティブアドレスやトランザクション数、ネットワーク帯域幅の消費なんかも、マルチチェーンエコシステムがどんどん成長していることを明確に示しています。

ref: https://defillama.com/chains

色んなオンチェーン環境が出てきたおかげで、スマートコントラクトの全体的な通過量が上がり、より安価に取引ができるユーザーが増えました。それぞれのブロックチェーンやサイドチェーン、レイヤー2ネットワークは、スケーラビリティや分散化、メカニズム設計、コンセンサス、実行、データ利用可能性、プライバシーなどについて独自の方法でアプローチされてます。
このマルチチェーンのエコシステムでは、異なるアプローチを同時に実装したりテストしたりして、エコシステム全体を成長させていけると言っています。
イーサリアムコミュニティもレイヤー2のスケーリングソリューションを導入して、エコシステム全体の通過量を増やすことで、このマルチチェーンアプローチを受け入れています。レイヤー2ネットワークは、イーサリアムベースのスマートコントラクトの取引量を上げる一方で、イーサリアムのメインネットのセキュリティ特性を保ちつつ、取引ごとのGas代を下げています。これは、ベースレイヤーであるイーサリアムブロックチェーン上で、不正証明や有効性証明を使ってオフチェーンの計算を検証し、将来的にはデータシャーディングを活用してデータの容量を増やすことで実現していくそうです。
そして、マルチチェーンエコシステムをフル活用するために、開発者たちは今、スマートコントラクトのコードを一つのブロックチェーン上だけでなく、複数のネットワークに展開する動きが出てきています。マルチチェーンスマートコントラクトを開発することで、プロジェクトはユーザーベースを拡大したり、コストが高すぎるところでなく低コストのネットワークで新しい機能を試したりできるようになります。例えば、SushiSwap DEXは15のチェーンに、Beefy Financeの利回りアグリゲータは12のチェーンに、Aaveのマネーマーケットは3つのチェーンに展開されています。ここまでマルチチェーンスマートコントラクトの出現について話してきましたが、このスマートコントラクトには限界があります。次はこちらについて触れていきます。

マルチチェーンスマートコントラクトの限界について

マルチチェーンのエコシステムはユーザーや開発者に多くの利点をもたらすのですが、同じスマートコントラクトのコードを複数のブロックチェーンに展開すると、そこでしか出てこないユニークな課題やトレードオフが生じてしまいます。

まず最初に、マルチチェーンスマートコントラクトのコードを別のブロックチェーンに新たに展開すると、全く新しいアプリケーションのコピーが作られるわけですよね? だからもう一つの統一されたアプリケーションとは言えなくなります。各コントラクトの展開はそれぞれ自身の内部状態(例えば、アカウントのバランスを追跡する)を管理し、異なるブロックチェーンの環境での展開間の相互運用性は限られていたり、完全に相互運用性がなかったりします。ユーザーは好きなネットワークでアプリケーションのコピーにアクセスできるが、チェーンごとのUXが必ずしも同じとは限らないという問題が出てきしまいます。


ref: https://chain.link/education-hub

(👆マルチチェーンスマートコントラクトは、本質的に分離されたdAppデプロイメント)

この事態は、マルチチェーンアプローチを取る分散型取引所、特に自動マーケットメイカー(AMM)で最も明らかです。ユーザーの資産はある時点で一つのブロックチェーンにしか存在できないのだから、アプリ全体の流動性が異なるオンチェーン環境に分散してしまうんです。
結果として各個の展開での流動性が減ってしまい、ユーザーにとってはスリッページが増え、取引手数料も下がってしまいます。さらに、他のブロックチェーンにAMMを新規に展開すると、流動性がゼロからスタートしちゃうから、流動性を引き立てるために新規展開にマイニングプログラムを拡張すると、プロトコルのネイティブトークンの希釈が進んでしまうこともあります。

例えば中央レジストリを持つオンチェーンのドメイン名システムとかは、マルチチェーン方式で実装するのが難しいです。もし複数のレジストリが複数のブロックチェーンに展開されたら、同じ名前が異なるチェーンで異なるオーナーによって何度も登録されてしまい、衝突が起こり得るからです。なので、全体的な状態の一貫性を必要とするアプリケーションは、一つのブロックチェーンネットワークにだけ展開されるべきといえます。

アプリレベルの課題に加えて、マルチチェーンのエコシステムはエンドユーザーにとっても摩擦を増やす可能性があります。というのも、増え続けるネットワークとやり取りする方法を学ばなきゃならない可能性があるからです。特定のブロックチェーンで保有している資産はそのブロックチェーン固有のdAppsでしか使えないから、ユーザーは他のオンチェーン環境のdAppsを使いたければ、自分でトークンをブロックチェーン間で移動させる必要がありますよね?それにはウォレットの再設定、新たなUXパターンの学習、Gas用の追加のベースレイヤートークンの管理が必要になるし、多くの従来のクロスチェーントークンブリッジはセキュリティ上の制限があるから、セキュリティを妥協することも必要になるかもしれないのです。

結局のところ、マルチチェーンスマートコントラクトの根本的な制約は、異なるブロックチェーン、サイドチェーン、レイヤー2ネットワークの展開間での相互運用性が限られているか、もしくはその欠如と言えます。
トークンブリッジがマルチチェーンアプリケーションを支えるために存在するけど、ブロックチェーン間でデータを安全に送信する能力があると、スマートコントラクトの設計方法にまったく新しいパラダイムシフトを起こすことができます。ではそのパラダイムシフトであるCross-Chain Smart Contractsについて触れていきます。

Cross-Chain Smart Contractsについて見ていく

セキュアなクロスチェーン通信っていうのは、オンチェーン環境間で任意のデータ、トークン、コマンドを送ることです。これによって、クロスチェーンスマートコントラクトを作ることができます。
クロスチェーンスマートコントラクトは、異なるブロックチェーンネットワーク上の別々のスマートコントラクトから成る分散型アプリケーションで、それぞれが連携して一つの統一されたdAppの構築を可能にします。

色々なアプローチ方法がありますが、要は異なるチェーン上の異なるスマートコントラクトがそれぞれ違うタスクを行うけど、全部が同期して一つのユースケースを支えるように動くということです。これによって、開発者たちは各ブロックチェーンネットワークのユニークな利点を利用できるようになります。
例えば、

  • 資産所有の追跡に対する検閲耐性が強いブロックチェーン
  • 低遅延取引のための高スループットブロックチェーン
  • ユーザー認証にプライバシーを保持するブロックチェーン
  • メタデータ保存のための分散ストレージブロックチェーン

これらの特徴を内包する分散型アプリケーションを作ることもできるということです、これはすごいです。

さらに、Cross-Chain Smart Contractsの設計パラダイムは、同じスマートコントラクトコードの異なるブロックチェーンネットワーク間での展開をよりシームレスに相互運用可能にするために使われることもあります。これによって、異なるオンチェーン環境間でのUXを標準化する手助けができるようになったりします。結果として、Cross-Chain Smart Contractsは既存のマルチチェーンスマートコントラクトの多くの制約を解決し、その結果としてまったく新しいユースケースを可能にします。このユースケースの例をいくつかピックアップしてみていきましょう。

Cross-Chain Exchangeについて

クロスチェーンの分散型取引所(DEX)を使うと、ユーザーはマルチチェーンDEXの流動性の問題を緩和するために、異なるブロックチェーンネットワークのトークンプールから流動性を引き出して取引を行うことができます。

たとえば、取引の間にユーザーのトークンが分割されて異なるブロックチェーンにブリッジされ、最善の実行価格を提供することも可能になります。
そして、得られたトークンは元のブロックチェーンに戻されてユーザーのウォレットに戻ります。結果として、すべてのブロックチェーンネットワークを通じて利用可能な流動性は大幅に向上し、ユーザーは取引のスリッページを減らし、各チェーンの流動性プロバイダーにはより大きな手数料が提供されることになります。

さらに、クロスチェーンDEXは、ユーザーが一つのブロックチェーン環境のネイティブトークンを別のブロックチェーン環境のネイティブトークンと交換することを可能にするよう設計することも可能です。例えば、ユーザーはイーサリアムブロックチェーン上のETHをビットコインブロックチェーン上のBTCと交換することができるということです。これにより、ユーザーはラップトークンや中央集権型の取引所を必要とせずに、異なるブロックチェーンプラットフォーム上のネイティブアセットを持つことができるようになります。

Cross-Chain Lendingについて

Cross-Chain対応のマネーマーケットを使えば、Cross-Chainのローンの創出を促進することができます。これにより、ユーザーは一つのブロックチェーンのマーケットに担保(例えばETH)を預け、別のブロックチェーンのマーケットからトークン(例えばUSDC)を借りることができるようになります。これにより、ユーザーは自分の選んだ高セキュリティのブロックチェーンに担保を置きつつ、高スループットのブロックチェーンでトークンを借りてそのオンチェーン環境内のアプリケーションに展開するといったことが可能になります。
さらに、クロスチェーンのマネーマーケットは、ユーザーが低い利息率を特徴とする他のブロックチェーンのマーケットからトークンを借り、その借りた資金をローンを開いたチェーンに戻すことを可能にします。これにより、ブロックチェーン間で利益を標準化し、高い借り入れ利息率を持つ低流動性のマネーマーケットで借り手のコストを下げることができるようになります。

Cross-Chain NFTsについて

クロスチェーンの非代替性トークン(NFT)マーケットプレイスを使えば、ユーザーはどのブロックチェーンネットワークにもホストされたNFTをリストアップし、入札することができます。これにより、NFTのアクセシビリティと流動性を高め、入札プロセスが完了した後にオンチェーン環境間でシームレスに移動することができるようになります。さらに、一つのブロックチェーン上に存在するオンチェーンのゲームアプリケーションは、他のブロックチェーン上のNFTの所有権を追跡するためにクロスチェーンの相互運用性を活用することができるのです。これにより、ユーザーはNFTを自分の選んだブロックチェーン上で安全に保管しながら、他のブロックチェーン上の任意のゲームアプリケーション内でNFTを使用する能力を得ることができます。

これらの例は、クロスチェーンスマートコントラクトが可能にするユースケースの一部に過ぎませんが、最終的には、可能なユースケースは無限大と言えるのではないのでしょうか?
分散型アプリケーションのモジュール化だけでなく、Cross-Chain Smart Contractsは、マルチチェーンエコシステムの利点を活用するために、全く異なる方法で設計することも可能です。
つまり、このクロスチェーンワールドは無限の可能性が広がっていますよね!?

Storefront Smart Contracts

Storefront Smart Contractsというと??ってなりますが、難しいお話ではありません。既存のシングルチェーンやマルチチェーンのスマートコントラクトは、このStorefront Smart Contractsの展開により、クロスチェーン間の相互運用性から大きな利益を得ることができます。つまり、Storefront Smart Contractsっていうのは、別のブロックチェーンネットワーク上のスマートコントラクトアプリへのゲートウェイ(通信手段の異なるネットワークを中継する部分)として機能するスマートコントラクトのことです。

これにより、ユーザーは自分の好きなブロックチェーン環境内で、異なるオンチェーン環境で稼働する既存の分散型アプリケーションに預け入れたり、それとやりとりしたりすることができるようになります。
ユーザーはもはや別のブロックチェーンに手動で移動する必要がなくなるから、それがどのブロックチェーン、サイドチェーン、またはレイヤー2ネットワーク上で動いているかさえ必ずしも知る必要がないということです。まるでアプリケーションが自分がすでに取引を行っているブロックチェーン上で動いているかのようにアクセスできるようになります。
また、Storefront Smart Contractsはマーケット(デリバティブプラットフォームやマネーマーケットなど)の既存の分散型アプリケーションに、後方互換性のある方法で接続できます。これにより、スマートコントラクトの組み合わせ可能な性質により、既存のプロトコルに対して許可なしでクロスチェーン間の相互運用性が追加できるようになる。つまり、よりシームレスで相互運用性のあるエコシステムを作り出し、マルチチェーン経済の成長を大いに後押ししてくれます。

CCIPがどうやって安全なクロスチェーンエコシステムを実現する?

Cross-Chain Smart Contractsは、分散型アプリケーションが作成される方法において、大きなパラダイムシフトをもたらすという話はしました。
でも、現在大規模に運用されているブロックチェーンネットワークの大部分はデフォルトで孤立していて、異なるブロックチェーンネットワーク間でデータをネイティブに送受信できないですよね。
Cross-Chain Smart Contractsをサポートするためには、クロスチェーン通信を可能にする追加のインフラ、つまり「ブリッジ」が必要となることは理解できるかと思います。

これまでのブロックチェーンブリッジは、主にネットワーク間でのトークンの移動に重点を置いてきて、よく一つのチェーンのアセットが別のチェーンにラップされることがありました。
しかし、Cross-Chain Smart Contractsでは、任意のデータパケット、トークン、コマンドの転送をサポートするより一般的なブリッジが必要となります。
このようなインフラは、メッセージが破損せず、タイムリーに受信され、ブロックチェーンの再編成などの外部条件から保護されるように、高度に安全で信頼性があり、監査済みのコードベースに基づいている、これらの性質が求められます。
分散型オラクルネットワーク(DON)がブロックチェーンのオラクル問題(ブロックチェーンがオフチェーンリソースにアクセスできない問題)を解決するのに役立ったように、安全なブロックチェーンの相互運用性のための伝達路としても機能できるのです。

ネイティブにブロックチェーン非依存のプロトコルであるChainlink Networkは、幅広いブロックチェーン、サイドチェーン、レイヤー2ネットワークに統合されており、マルチチェーンエコシステムがCross-Chain Smart Contractsに移行するのを支援するのに最適と言えます。

この目標を達成するために、Chainlink Labsらはクロスチェーン相互運用プロトコル(CCIP)と呼ばれる、クロスチェーン通信のためのグローバルなオープンソース標準が現在開発中です。

従来のクロスチェーンブリッジと比べて、CCIPの目指すところは、スマートコントラクトを通じてデータやトークンを全てのブロックチェーンに安全に送信できるようにすることです。スマートコントラクトでエンコードやデコードされるデータメッセージは、どのように解釈されるかに柔軟性があるから、いろんな使い方ができますよね。何よりも重要なのは、CCIPが既に数百億ドルの価値を保護している超信頼性のある、改ざん防止機能を備えた、ブロックチェーンに依存しないChainlinkオラクルノードのネットワークを利用するという点です。
この辺については、より詳しく以下のyoutubeで解説されているので、ぜひ見てみると良いと思います。

https://youtu.be/btbIgwJy29s

CCIPは、良質なコードベースだけでなく、Active Risk Management Network(能動的リスク管理ネットワーク)と呼ばれる革新的なリスク管理システムを通じてさらなる安全性が確保される予定です。このActive Risk Management Networkは、独立したノードの委員会で構成されたDecentralized Oracle Networks(DONs)から構成されてますが、その役目はCCIP対応のブリッジとは別に、CCIPサービスでの悪意ある行動や、ブロック再編成といったブロックチェーンネットワークの状況を監視することにあります。
そしてこの追加の検証レイヤーがあるおかげで、ブリッジの緊急停止を可能にしてます。これにより、データとトークンの転送が一時的に停止し、クロスチェーンスマートコントラクトとユーザーを予想外の大規模な事件から守ることができるようになります。

👆CCIP(Cross-Chain Interoperability Protocol)は、ブロックチェーン間でのメッセージの受け渡しを可能にします。

既に何百ものシングルチェーンやマルチチェーンのスマートコントラクトアプリケーションが、オフチェーンデータや信頼性の高い計算のためにChainlinkのオラクルを活用しています。そんなプロトコルらは、クロスチェーンの相互運用性をサポートするために、同じ分散型インフラを利用できます。
さらに、CCIPはクロスチェーンスマートコントラクトを作るための基盤を提供するだけでなく、ユーザーがトークンを直接異なるブロックチェーンにブリッジし、それらのトークンの展開方法についての命令を同時に送ることができるようにする、さまざまなクロスチェーントークンブリッジの作成もサポートしていくとのことです。

クロスチェーンインフラの作成には固有の課題があるが、監査済みのコードと防御手段を通じてセキュリティを確保することに重きを置くことが、CCIP標準の作成における主要な焦点となってくると思います。
マルチチェーンのスマートコントラクト設計には一部制限がありますが、クロスチェーンのスマートコントラクトの導入は、これらの制限を克服するだけでなく、結果として新しいユースケースを提供するでしょう。

CCIPは、この過渡期を加速させるために、dAppsが任意のデータを他のどのブロックチェーンネットワークのスマートコントラクトに安全に送信できるようにする、非常に信頼性が高く安全なクロスチェーンインフラを提供することを目指しています。
今はまだ、クロスチェーンスマートコントラクトによって可能になる画期的なユースケースはまだ発見されていないというのも現実です。これからのCross-Chainについてウォッチしていきたいですね。

リファレンス

https://blog.chain.link/cross-chain-vs-multi-chain/
https://chain.link/education-hub/cross-chain-smart-contracts
https://chain.link/education/cross-chain
https://chain.link/education-hub/what-is-an-automated-market-maker-amm

Discussion