Cross Frameworkの紹介

Datachain
Sep 16, 2021

--

この記事では、イントロダクションをお読みになった方に向けて、Cross Frameworkの特徴、特に基盤となっているIBCや複数チェーンでの同期を取る仕組みについて、より具体的に説明します。

概要

前記事でご紹介したブロックチェーンの相互運用を可能にするCross Frameworkは、チェーン間の通信を実現するIBC Moduleと、チェーン間の整合性を保つためのCross Module、そしてスマートコントラクトを提供するContract Moduleから構成されています。

IBC Moduleでは、チェーンの状態変化をRelayerというICSで定義されたオフチェーンプロセスを介してやり取りし、さらに双方のClientというサブコンポーネントが互いのチェーンでの状態を検証し合う、Relay方式による通信を採用しています。

いわゆるTTP(Trusted Third Party)方式との差異として、XチェーンとYチェーンの間で情報を伝達するRelayerは必要になるものの、Relayerに信頼を置かなくとも、双方のチェーンが相手の状態を検証することが出来ることから、例えばXチェーンでの状態変化を偽ってYチェーンに伝えるといった改ざん攻撃を防げることが挙げられます。

以上の仕組みによって、Cross Frameworkが採用するIBCでは信頼を実現することにかかるコストを削減することができます。

次に、Cross Moduleではスマートコントラクト実行のコミットの合意にいたるためのプロトコルを複数提供しています。現在は、著名なTwo phase commit protocolや条件付きで利用可能なSimple commit protocolなどをサポートしています。

最後に、Contract ModuleはCross-chain smart contractを開発するうえで必要なState storeとContract handlerを提供しています。State storeは、スマートコントラクトの状態とCross-chain transactionの処理時のリソースの確保・解放などの管理を行います。これはプラガブルな構成を取っており、開発者が任意のStoreを実装することも可能です。そして、Contract handlerを利用することで開発者は任意のスマートコントラクトをCross Framework上に開発することができます。

これらにより、Cross Frameworkは、低いコストで信頼性のある様々なインターオペラビリティソリューションの開発を可能にしています。

IBC

Cross Frameworkでは、ブロックチェーンの相互運用性に取り組むCosmosプロジェクトで提唱されているIBC(Inter-blockchain Communication Protocol)およびその実現手段を標準化したICS(Interchain Standards)に準拠する形でチェーン間の通信プロトコルを実装しています。

相互運用性の実現手段としては、WEF(World Economic Forum)のレポートにもまとめられているように、TTP方式、HTLC方式、Relay方式の3種類に大別されています。

Datachainは、今後、多数のブロックチェーン基盤が立ち上がること、そして扱われるデータが資産などトークン形式で表現されるものに留まらないことを想定しており、チェーン間通信においてはRelay方式が重要性を増すと考えており、Cross Frameworkでも採用しております。

また、Datachainでは独自にHyperledger FabricやCordaにおけるIBC実装にも取り組んでおり、大手SIer様とDvP決済への活用を想定した実証実験を予定しています。

IBC/ICSの詳細は、公式ドキュメントをご覧いただければと思いますが、単純化してご説明すると、例えばICS 2やICS 7では、チェーンXとチェーンYがある際に、互いの状態を検証するためのClientというプロトコルについて規定しています。

例えば、Tendermintと接続する際のICS 2仕様を満たすためのICS 7では、Relayerを通じてチェーンX上のブロックヘッダー(Merkle Root 等を含む)とトランザクション(Tx)およびMerkle ProofをチェーンYに送付することで、チェーンY側で、「確かにチェーンXでTxが取り込まれた」ことを検証できる仕組みをClientとして規定しています。

この仕組みを用いることで、情報の伝達者となるRelayerにトラストをおく必要が無い、等のメリットを実現しています。

なお、上記のCosmosプロジェクトは、世界最大級の暗号資産の取引所を運営するBinanceが、独自で開発・運用している分散取引所「Binance DEX」でも用いられる他に、中国が開発を進める「BSN(Blockchain-based Service Network)」でも採用されるなど、海外では特に注目されているプロジェクトです。

複数チェーン間での安全なスマートコントラクトの実行を可能にするプロトコル

さて、イントロダクションでもご説明したとおり、Cross Frameworkでは、大きく分けて2パターンの複数チェーン間のスマートコントラクトの実行を可能にします。

1.複数のスマートコントラクトをアトミックに実行可能

複数チェーン間でスマートコントラクトをアトミックに実行するには、1つのチェーンのスマートコントラクトの実行だけ成功して他のチェーンでのスマートコントラクトの実行が失敗することのないように、整合性を保ちながら処理を行う必要があります。例えばDvP決済であれば、貿易チェーンで船荷証券のDeliveryと決済チェーンで代金のPaymentをアトミックに実行する必要があります。

Cross Frameworkでは、ブロックチェーン間のアトミックコミットを実現する仕組みを提供しており、例えば、下記のようなフローで実現されています。

2. 片方のチェーンから他のチェーンのスマートコントラクトを安全に実行可能

片方のブロックチェーンから、他のブロックチェーン上のスマートコントラクトを実行する場合、他のブロックチェーン上のスマートコントラクトの実行は、呼び出し元のスマートコントラクトの実行とアトミックに行われる必要があります。また、他チェーンのスマートコントラクトの実行による返り値を呼び出し元のスマートコントラクトで参照できる必要があります。

例えば、保険金請求のユースケースであれば、契約内容を保険チェーン上で管理し、加入者への保険金支払いを決済チェーン上で自動執行する場合、下記の3つのスマートコントラクトをアトミックに実行する必要があります。

  1. 医療チェーン上で加入者の医療情報を問い合わせ、結果を保存する
  2. 医療チェーンの問い合わせ結果を元に、保険チェーンで契約条件に合致するか確認し送金済に状態を変更する
  3. 医療チェーンで契約内容を元に計算した相当額を決済チェーン上で送金する

Cross Frameworkを用いると、整合性を保ちつつ複数チェーン上のスマートコントラクトを実行可能です。それにより、片方のチェーンから他のチェーンのスマートコントラクトを安全に実行できるため、この問題を解決することができます。例えば下記のようなフローで実現します。

今後の展望

Cross Frameworkは、発展途上のプロダクトです。

現在、Hyperledger Fabric、Tendermintのサポートを行っており、今後Cordaや既存システムなどとの接続に向けて開発を進めております。

合わせて、Cross-chain smart contractのユースケースに適したデザインパターンの拡充や、導入・利用に関する周辺ツールの開発、そしてそれらのドキュメンテーション/チュートリアル整備も並行して進めます。

ユースケースの項でも触れさせていただきましたが、Datachainは今後、Cross Frameworkを様々なブロックチェーンのインターオペラビリティの事例に活用していくことを目指しています。

今後、パートナー企業との取り組みも含め、Cross Frameworkの発展や相互運用を主眼に置いた実運用について、開示していければと思います。

また、ブロックチェーンによりデータが流通・活用される世界を一緒に目指す仲間も積極募集中です。是非、リクルーティングページもご覧いただければと思います。

資料請求・お問い合わせ

Cross Frameworkの技術的特性の詳細についてはこちらの記事もご参照ください。

お問い合わせも随時受け付けておりますので、是非よろしくお願いいたします。

[お問い合わせはこちら]

--

--

Datachain

「データがつながるをあたらしく」をミッションに、ブロックチェーンの社会実装を推進。ブロックチェーン間を繋ぐインターオペラビリティ領域のR&Dに注力し、「Cross Framework」や「IBCモジュール」等のプロダクト開発を行っています。