Corda5のアプリケーションネットワークについての詳細
はじめに
アプリケーションネットワークとは、Cordaのネットワークモデルを革新するための野心的な試みの一部です。より高いレベルでのプライバシー管理やより柔軟な管理を可能にしつつ、運用上の複雑さやコストを下げることを狙っています。この記事では、アプリケーションネットワークの詳細とその恩恵を深掘りしたいと思います。
各種規制が適用される市場においてソリューションを構築しようとする私たちR3の顧客は、プライバシーやガバナンスに強い要求があるため、CorDappの大半をプライベートネットワーク、もしくは共有ネットワーク(訳注:the Corda Network)でリリースされますが、未だに私たちが想像したようなネットワーク間のインターオペラビリティは行われていません。アプリケーションネットワークはこの事実を踏まえ、個々のネットワークの範囲を縮小し、アプリケーションをネットワークの構成単位とします。
アプリケーション単位でネットワークが構成され、その数が増えた場合、最終的には互いに独立したネットワークが多く存在することになるのでしょうか?確かにネットワークは増えますが、独立することはないと考えます。実際、Corda 5において、ノードはどのネットワークにも参加することが可能です。そして、ネットワークを跨いだ通信は、(単にノードの台帳を共有する形ではなく、)用意されたインターオペラビリティ専用のプロトコルに基づいて接続される予定です。これはネットワークを1つにするための大きな一歩であると考えます。
Corda 5のアプリケーションネットワークの鍵となる要素は以下の通りです。
仮想ノード
Corda 5のデプロイはWorker Clusterとして配備(Deploy)されます。(訳注※ worker cluster上には、複数のノードを立ち上げることが可能で、それぞれを仮想ノードと呼びます)これにより、一つのマシン上で複数の主体を管理することができ、コスト削減に貢献します。個々の仮想ノードは独自のID、処理能力、データストレージで作成され、自分以外の他の仮想ノードとは独立しています。
仮想ノードを用いることで、複数のネットワークへの参加が容易になります。ノードを異なるマシン上へ複数立ち上げて所有するのではなく、仮想ノードを複数立ち上げる形を取ります。これにより、 簡単に複数のネットワークのそれぞれで別のIDを使用できるようになります。
インストーラー
CorDappにはアプリケーションネットワークに参加するために必要な情報を1つのファイルにまとめたCorDapp Package Installer(CPI)というパッケージが提供されています。以下がアプリケーションネットワークの参加に必要な情報になります。
・ネットワーク管理者の位置
・メンバーシップの必要事項リスト
・サードパーティーの依存関係
・CorDappのロジック
CPIに含まれる要素のうち、最小の要素は、実際に動作するアプリケーションです。これは、CorDapp Pakages(CPK)と呼ばれます。このPackageは、FlowやContractファイルを置き換えたものであり、独立してバージョン管理をすることができます。各CPKは、他のCPKから分離された独自のサンドボックスで実行されます。これにより、依存関係の衝突を防ぎ、より迅速なCorDappの開発を可能にします。
個々のCPKファイルは、新しい機能である”application publisher”によって、1つのCorDapp Package Bundle(CPB)にまとめられます。”application publisher”は単一のエンティティであり、ネットワークに単一のアプリケーションネットワークの枠組みを作るために複数の当事者間での調整を効率的に行います。例えば、アプリケーションの共同開発において、開発中や配布・アップグレード時の運用の際に、強い技術的な依存関係が発生します。しかしながら、”application publisher”がこの役割を担うため、全ての当事者が必要とするコストが軽減され、企業間での共同開発がより容易になります。
”application publisher”は、最終的にネットワークに関する情報を追加し、ファイルは上図のようにCorDapp Package Installer (CPI)となります。CPIファイルは、新規メンバーに配布してオンボーディングを開始したり、既存のメンバーに配布してアップグレードを実行することができます。
カスタマーオンボーディング
CPIファイルは、オンボーディングプロセスを簡略化します。申請者側での操作は、メンバーシップの要求に必要な情報を含む単一のCPIファイルを取得するだけです。これにより、各メンバーはメンバーシップの前提条件を理解し、必要な属性を設定したり、必要に応じてサードパーティからアーティファクトを取得したりすることができます。
CPIのインストールにより、Cordaがメンバーシップを要求する前に、申請者に代わって全てのメンバーシップ要件を確認します。例えば、アプリケーションネットワークは、指定した認証局リストのいずれかから提供された検証済みID証明書の提示を義務付けることができ、Cordaはこの要件を確認した後にメンバーシップを要求します。この一連の自動化プロセスにより、申請者はCordaによって担保された申請の正当性を確証することができ、ネットワーク事業者が実施する一部の確認作業を軽減することができます。
PKI基盤
Corda 5 ネットワークのPKI基盤は、標準的なWeb証明書とEV証明書の規格に準ずることで、非常に柔軟なものになりました。この結果、TLS接続においても、IDに関しても、第三者のトラストルートを活用できるようになりました。また、より柔軟な運用を念頭に、複数のトラストルートを指定することもできます。もっと言えば、そもそもトラストルートを通じたID認証を避け、他の認証方法を活用することも可能です。これにより、Cordaネットワークの日々の運用業務の煩雑さを大幅に軽減し、より安価に開発・管理することができます。
メンバーシップ・グループ・マネージャー
アプリケーションネットワークを新規構築する場合、仮想ノード上で動作する専用CorDappであるThe Membership Group Manager (MGM)というアプリケーションが使用されます。つまり、同じCordaのデプロイメントを使って多くのアプリケーションネットワークを作成/運用することができるのです。これにより、別々のソフトウェアをデプロイして維持する必要がなくなり、運用コストを低く抑えることができます。MGMは具体的に以下の動作を行います。
・参加リクエストの承認/拒否
・一時的な停止/除名
・ネットワークパラメータの配布
・CordaとCorDappのアップグレードの管理、スケジュール管理
・メンバーのCordaバージョンの監視
・メンバーのCorDappのバージョンを監視
ネットワークのインターオペラビリティ
独立して制御されたビジネスネットワークを求めるお客様の要望によって、私たちは普遍的なインターオペラビリティに対する新しいアプローチを模索しました。新しいアプローチは、アプリケーションベースのネットワークという形で、独立した許可型ネットワークを受け入れることができ、同時に2つ以上のアプリケーションネットワークのインターオペラビリティを可能にします。
CordaCon2021では、Corda 5シリーズを通じてプラットフォームに導入する予定の、いくつかのインターオペラビリティプロトコルを紹介しました。
結論
私たちは、アプリケーションネットワークがもたらす恩恵に大きな期待を寄せています。
- プライバシー:ノードを発見できるのは、ネットワークメンバーのみ
- ガバナンス:ネットワークに対してより柔軟で高度なコントロールが可能
- コンポーザビリティ:CorDappの依存関係の軽減
- インターオペラビリティ:アプリケーションネットワーク間での価値を引き出す
- 低コスト:ネットワークの構築、運用を司る専用のCorDappの提供
- 迅速な開発:独立したCorDapp Packageの提供により、依存関係を原因としたクラッシュの防止
- 簡単な市場導入:1つのファイル(CPIファイル)に集約
関心のある方向けたマテリアル
CordaCon2021におけるインターオペラビリティに関する議論です。
DLT Network of Networks and Interoperability | CordaCon 2021 (r3.com)
<ご質問・ご要望の例>
- Corda Portalの記事について質問したい
- ブロックチェーンを活用した新規事業を相談したい
- 企業でのブロックチェーン活用方法を教えて欲しい 等々
SBI R3 Japanインターン エンジニアリング部所属
Corda 5の技術検証や記事翻訳など多岐に渡ります
趣味:英語学習(まだまだですが…)・テニス・映画鑑賞