Why is Interoperability so complicated?
Motivation
RaaSやCosmos SDK、Avalaunch subnetなどによってチェーンやロールアップの数が増加したことによってよりCross-chainの通信の重要性が高まっていく中で、さまざまなところでInteroperability、Bridge、MessagingなどのCross-chain複数の用語が使用されており、非常に分かりにくいので用語の整理をしたい
最近ではCross-chainのプロダクトが複雑になっているが、そこにはどのような原因があるのかを整理したい
その上でどのような未来が来るかを考える
用語の整理
InteroperabilityとBridgeとMessagingの定義
https://scrapbox.io/files/65bf341b7962240024e19c28.png
Interoperability
Cross-chainの通信をする能力のことを指し、上記の図のように階層化することができる
Application Layer
実際にCross-chainで行うアクションについて扱うレイヤー
Token Bridge
チェーン間のトークンの送信を行い、Liquidityを使用する場合やLock-mint、burn-mintを行う場合がある
NFT Bridge
チェーン間のNFTの送信を行う
Messaging
任意のデータの送信のことを指し、Arbitrary Messaging Bridges (AMB) とも呼ばれる
Transport
チェーン間で安全な接続を確立するレイヤー
State (Verification)
実際にブロックチェーンの通信を検証するレイヤー
Interoperability Lifecycle
Interoperabilityのトリレンマ
https://scrapbox.io/files/65bf36cb19b8cf00236a9325.png
Genaralization
任意のデータを取り扱うことができるか
Messagingの場合は基本的に満たされおり、Token Bridgeのみを行っているプロトコルはこの条件を満たしていない
Trustless
Additional Trust Assumptionがあるかどうか
通信しているチェーンと同等のセキュリティが保証されているか
Clusters
特定のエコシステム内 (cluster) ではtrust-minimizedなブリッジを提供できるが、エコシステム間のブリッジにはtrustを要する
[Chain diversity == Chain diversity == Client diversity
コンセンサスアルゴリズムやstate commitmentの仕組みの数だけChainの多様性があるので、その中でTrustlessを目指すにはその多様性に合わせてHub chain/rollupが必要になる
Extensibility
あらゆるドメインに対応することができるのか
理想的には3つを満たしているものが望ましい
なぜ複雑になっているのか
少し前のInterop
元々は特定のエコシステム内でのBridgeだけが頻繁に使用された (IBC, XCM)
エコシステムを超える場合はトラストが必要だが、中間ネットワークによってBridgeを行っていた
異なるエコシステムでLight Client検証を行っている場合もあったが(Near<>Ethereum)、検証コストが高いことが問題で実用的ではなかった
(今もそうだが) CEXを利用しているケースが多い
TrustlessというよりExtensibilityに重きが置かれていた
Off-chain computationの発展
zkやTEEの登場によってトラストレスにコンセンサスの検証のコストを下げることができるようになった
これは既存のLight Client検証の実用性を高めた
Extensibilityを維持したままTrustlessを目指す取り組みが進んだので、検証レイヤーの複雑性が増加した
ex. zkIBC, LCP
RollupやChainが増加
https://scrapbox.io/files/65bf4860c1e1b500264f15dd.png
Trustlessの検証がエコシステムごとで異なること (Cluster理論)
これは共有している部分が異なることが問題
Native Bridgeとして利用できる部分は限られている
L2->L1はファイナリティの問題がある
Trustlessとコストの部分が見合ってないことが多い
新しいRollupにL2<>L2として素早く対応するには大きなAdditional trust assumptionを必要とする
InteroperabilityのModular化
大きくApplication、Transport、Verificationで階層化したときにそれぞれが多様化している
これはModular blockchainがExecution、Settlement、DAで多様化していることと似ている
Application
種類 (特にToken Transfer)
Liquiditity, Burn-mint, Lock-mint
課題
Liquidity Bridgeの場合は別でトリレンマがある (参考: Stargate)
既存のトークンを様々なチェーンで展開できるようにする拡張性 (xERC20, OFT)
Transport
種類
Cosmos IBC
LayerZeroをはじめとしたその他多くのプロトコル
課題
統一的な規格をエコシステムを超えて定義できるのか? (IBC)
Verification
上記で述べたようにエコシステムで最適な検証方法は異なる
どのような未来が来るのか (来るべきなのか)?
Application
Tokenのburn-mintで拡張性を向上させる
Liquidity BridgeからLiquidity lessへ
ex. CCTP
Transport
しばらくは多様化しそう
今のCross-chainはほとんどがToken BridgeであまりTransportの強みが生かされない
App-specific chain/rollupが加速し、それらが相互作用をするレベルまで進まなければならない
ただ、将来的に統一されるべき
Polymerに期待
Verification
検証レイヤーはエコシステム側に合わせたものにそれぞれ対応するModular interoperabilityへ
ZK Coprocessorの登場
しばらくはOptimistic + ZKの形を採用するが、証明コストやレイテンシーが小さくなればzkpのみで使用されるかも?
その他
Intent Layerの登場
ユーザーのガス代の負担を軽減する
署名によってCross-chainの通信を実現するのでチェーンを意識しなくなる
Chain Abstraction
Permissionless deployment
より簡単に複数のRollup/チェーンと接続できるようにする
IBCやRollupエコシステム内であれば問題ない
デフォルトのセキュリティに問題が起こるかも