Datachainは、Microsoft Corporationが提供する、スタートアップ企業の規模拡大を成功させるためのグローバルプログラムである「Microsoft for Startups」に採択されました。

Datachainでは、異なるブロックチェーン間の連携を可能にするインターオペラビリティ(相互運用性)の領域に注力し研究開発を進めています。これまで、Linux Foundationに寄贈したHyperledger Lab YUIやCross Framework等をOSSで提供しており、NTTデータやJCB等の国内エンタープライズ企業においても相互運用性の実現に向けて注目を集めています。

また、2022年7月には、新たにクロスチェーンブリッジと呼ばれる異なるブロックチェーン間のトークン取引を可能にするアプリケーションを高い安全性のもと実現するミドルウェアとして「LCP」を発表しました。LCPでは、Intel SGX(TEE)を用いて​​Enclave内で検証を行う仕組みを採用しています(詳細は以下の記事をご覧ください)。

Microsoft for Startups採択により、Datachainでは、Azure上でIntel SGXが装備された仮想マシンを活用し、前述のLCPの開発を推進してまいります。

Microsoft for Startupsとは?

マイクロソフト社が提供し、世界140カ国以上でグローバル展開されているスタートアップ支援プログラムです。独自のイノベーティブなテクニカルソリューションを持つスタートアップ企業の成長促進を目的とし、当プログラムに選定されたスタートアップ企業は、Azureをはじめとしたマイクロソフト社の保有する強力なテクノロジーへのアクセスに加え、同社のパートナーネットワークを活用した、事業拡大に適した専用のリソースが提供されます。

Microsoft for Startups概要
https://www.microsoft.com/ja-jp/biz/startups/

株式会社Datachainについて

Datachainは、2018年の創業以来、「データがつながるをあたらしく」をミッションに、ブロックチェーンのインターオペラビリティ(相互運用性)の課題解決に取り組んでいます。様々なブロックチェーンでIBCプロトコルを用いたインターオペラビリティを可能にするHyperledger Lab YUI、クロスチェーントランザクションを可能にするCross Framework、安全で高効率なクロスチェーンブリッジの構築を可能にするLCPなど、様々なプロダクトを展開しています。国内では、NTTデータ、JCB、日立製作所などの企業様との共同プロジェクト、国外ではInterchain FoundationやHarmonyからのGrant獲得のほか、Hyperledger FoundationやEnterprise Ethereum Aliianceの一員としての活動も行っています。

Website: https://ja.datachain.jp/

Twitter: 日本語 @datachain_jp / 英語 @datachain_en

--

--

株式会社Datachainにて主にブロックチェーンの研究開発を担当している吉田です。

Hyperledger Lab YUIは、複数の異なるブロックチェーンをIBCプロトコルで相互に接続できるようにするブロックチェーン相互運用性技術のプロジェクトです。YUIはこれまでHyperledger FabricやHyperledger Besuをサポートしてきましたが、今回、Cordaに対応したIBCモジュール(Corda-IBC)を正式に発表しました。

すでにご存知の方も多いと思いますが、Cordaは世界最大級のエンタープライズブロックチェーンプラットフォームです。デジタル通貨、金融システム、サプライチェーンマネジメントなど、さまざまなプロジェクトに利用されています。

今回は、Corda-IBCの概要と、IBCを介してCordaと他のブロックチェーンとの相互運用性をどのように実現しているのかをご紹介します。

IBCに関するmediumはこちらをご覧ください。

Corda-IBCの概要

Corda-IBCは、IBC/TAOとICS-20をCordaのコントラクト及びフローの形態で実装し、クライアントがIBCオペレーションを実行したり、IBCステートにアクセスするためのgRPC APIサービスを提供します。Cordaの世界には、グローバルステートは存在しません。言い換えれば、Cordaはブロックチェーンプラットフォームではありません。しかし、このような環境でもIBCを実装する方法はあります。

CordaのUTXOモデルでは、複数のトランザクションを経て繰り返し更新されて生き続ける状態クラスを実装することができます。このような出力状態を、Cordaでは線形状態(Linear state)と呼びます。各線形状態は、一続きの線形な状態遷移を形成しており、これはブロックチェーンが一続きの線形な状態遷移を形成するのと同様です。

Corda-IBCでは、「Host」という特別な線形状態クラスを定義し、HostをIBC接続の端点として扱います。実際には、ClientState、Connection、ChannelなどのIBC関連のいくつかの状態は、パフォーマンスを向上させるためにHostとは別に作成されます。

Corda-IBCの基本的な考え方は、1つのHost状態と、その下に作成された複数のIBC関連状態からなる一群の線形状態を、IBCを介して他のブロックチェーンに接続する一つのブロックチェーンとみなすことです。Cordaの各出力状態の実在と、期待される条件を満たしていることを証明するには、当該状態を出力として含み、適切な当事者(Notaryなど)によって署名されたSignedTransactionを示せば良いわけです。

Contract States

Corda-IBC が定義する全てのコントラクト状態は、いずれか一つの Host 状態の下に作成されます。次の図は、Corda-IBCの状態群がどのように作成されるかを示しています。

--

--

株式会社Datachainにて事業開発などをしている鳥海です。

本記事では、エンタープライズEthereumを他のブロックチェーン基盤とIBC方式で接続するためのモジュールである、IBC module for Hyperledger Besuについて扱います。このモジュールにより、Hyperledger Besuを活用したシステムが、他のブロックチェーン(例、Hyperledger Fabric)との間での相互運用性を実現することが出来ます。

このモジュールは、弊社CTOの木村が構想・設計・開発を行いました。現在、Apache2.0ライセンスで提供されており、当モジュールを利用したプロジェクトも予定されております。

なお、過去のDatachainのMediumでは、相互運用性を実現する方式として、IBCについても扱っております。(ページ内、IBCの項を参照)

本モジュールにより、Hyperledger Besuを利用するシステムが他のブロックチェーンとの間での相互運用性を実現することが出来ます

背景

Hyperledger Besu(Besu)は、エンタープライズ向けのプライバシーやパーミッション機能をサポートするブロックチェーン基盤です。

BesuはApache 2.0で提供され、スマートコントラクトをサポートするEthereumクライアントとしての機能を持ち、Proof of AuthorityのコンセンサスとしてIBFT 2.0 等をサポートしてます。また、ブロックヘッダー構造としては、Ethereumに互換性を持っております。

IBFT 2.0は、コンソーシアムネットワーク向けのByzantine-Fault-Tolerant (BFT)ブロックチェーンコンセンサスプロトコルです。特徴としては、高速なコンセンサス・即時のfinality保証・動的なバリデータセットおよび最終的に同期したネットワークでのロバスト性を持ちます。

プロトコルのより詳細については、IBFT 2.0 protocol paperを参照してください。

Inter-blockchain communication protocol (IBC)は、Interchain FoundationおよびCosmosプロジェクトによって策定が進んでいる、ブロックチェーン同士の相互運用性を担保するための仕様標準です。

IBCについては、以前のDatachainのMedium記事で扱いましたが、信頼できる第三者(TTP)に依存しない相互運用性の実現手段として注目されております。

IBC module for Hyperledger Besu

本モジュールは、Solidityで記述され、IBCに則る通信方式を実現するIBC-Solidityモジュールと、IBFT 2.0でのコンセンサスを検証するIBFT 2.0 Light Clientから構成されております。

後者のLight Clientについて、IBCにおいては、Tendermintでの実装(ICS-7)が提供されておりますが、DatachainではこれまでもHyperledger Fabric向けの実装などを実装し、OSSとして公開してきました。

なお、Hyperledger Fabric向けの実装を用いた実証実験として、NTTデータ様と行ったDvPに関する実証があります。IBC module for Hyperledger Besuにより、エンタープライズEthereum基盤にも対応することにより、同様のユースケースへの取り組みをより一層後押しできると、Datachainとしては期待しております。

--

--

この記事では、イントロダクションをお読みになった方に向けて、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にトラストをおく必要が無い、等のメリットを実現しています。

--

--

この記事では、ブロックチェーンの相互運用を可能にするCross Frameworkの紹介として、開発に至った背景やCross Frameworkのイントロダクション、想定しているユースケースについて扱います。

現在、Hyperledger Fabric / Tendermintではすでに利用可能であり、大手SIer様とDvP決済への活用を想定した実証実験を予定しています。

背景

ビットコインや暗号資産のブームを経て、ブロックチェーンの様々な形での社会実装が進んでいます。

Datachainでも、中古車流通に応用するなど、当初の決済・金融領域だけでなく、サプライチェーンやMaaSなど、様々なデータ流通・管理の基盤として、活用事例が今後も拡大していくことを見込んでいます。

Gartner社の発表では、2025年に1,760億ドル、2030年には3.1兆ドルの経済価値がブロックチェーンによってもたらされると予測されています。

EthereumのようなパブリックチェーンやHyperledger Fabricなどを用いたコンソーシアムチェーン 等、様々な形態で導入が広がっていますが、どうしてもドメインや参画企業ごとに複数の(異なる基盤を持った)ブロックチェーンが立ち上がってしまうことから、各々がサイロ化してしまうことが課題として考えられます。

逆の観点では、「誰が主体になるのか」「誰がデータをとりまとめるのか」といったビジネス上の制約から、同一のブロックチェーン上に活用したい全てのデータを整備することが難しいため、データ流通やデータ活用による革新的なサービス創出を目指すためには、ブロックチェーンを「つなぐ」こと(相互運用性を持つこと)が重要とDatachainは考えています。

Cross Framework

Cross Frameworkは、ブロックチェーンを「つなぎ」、複数のチェーンに跨る(「Cross-chain」の)スマートコントラクトを実現する仕組みとして開発されました。

すなわち、開発者が通常のスマートコントラクトを書く形で、1つのブロックチェーンから複数のブロックチェーンに対して、整合性を保ちながらスマートコントラクトを実行できることを目指したフレームワークです。

従来、複数チェーンに跨がる処理(例えば、Xチェーンで管理された資産と、Yチェーンで管理された資産を交換するといった処理)は、XチェーンとYチェーンをつなぐ信頼をおいた第三者の(オフチェーン)システムを利用したり、HTLC(Hashed Time-Locked Contract)の様な仕組みを設計・導入する必要があるため、信頼を実現するコストや柔軟性の観点で課題がありました。

そこで、私達は信頼をおいた第三者のシステムを介在することのないRelay方式が望ましいと考え、インターオペラビリティの実現方式としてIBC(Inter Blockchain Communication)を採用し、それを用いて複数チェーン間のスマートコントラクトの実行を整合性を持って実現することが可能なCross Frameworkを開発しました。

すなわち、Cross Frameworkは、複数チェーン間での通信をトラストレスに行うIBCを介し、各チェーン間でコミットについて合意を行うことで、Cross-chain smart contract(複数の異なるチェーンにまたがるスマートコントラクト)のトランザクション処理の信頼性を保証しています。

これらの仕組みにより、Cross Frameworkは、トークン交換だけでなく、複数のブロックチェーン上のスマートコントラクトの分散トランザクションにおいて、データの整合性を保証することが可能なシステムを開発可能にしています。

例として、複数チェーン間でのトークン移転については、Cross Frameworkを導入すると、下図のような形で片方のチェーンからもう一方のチェーン上のスマートコントラクトを実行することで実現できます。

--

--

Datachain

Datachain

5 Followers

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