なぜCorda4からCorda5に移行するか
- はじめに
- 「なぜ」新しいプラットフォームバージョンになったのか?
- 1. ”アプリケーションネットワーク”という考え方が、分散型アプリケーションを普及する最適な方法である。
- 得られた教訓
- 2. 基幹システム用の新インフラ構築
- 得られた教訓
- 3. ネットワークアプリケーションのブートストラップ(最初の導入)は非常に困難だが、スピードと低コストが助けになる
- 得られた教訓
- 4. 漸進的な非中央集権化。すべてに当てはまるサイズはないし、最終的な状況を念頭に入れた構築はすべきではない。
- 得られた教訓
- 結論
- 1. アプリケーション開発サイクルの高速化と低コスト化
- 2. どのようなオペレーション・モデルに対しても低コストなオペレーションの実現
- 3. 高可用性および(水平)スケーリング可能な全く新しいアーキテクチャ。
はじめに
CordaConを受け、R3が次のメジャープラットフォームバージョンであるCorda 5に取り組んでいること、そして最初のパブリックマイルストーンであるCorda 5 Developer Previewが本日(9月30日)公開されました。
こちらのリンクでCordaConのセッションをご覧いただくことができます。また、こちらにはリリースノートやプレビュードキュメントがございます。詳しく知りたい方は(英語ですが)この二つをご参照ください。
この記事も含め、Corda5に関する記事をいくつか公開する予定です。この中で、今後の新機能についての考え方や、Corda5で目指している方向性を共有したいと考えています。
皆様には、これらの記事にコメントいただいたり、今後公開されるプレビュー版に参加していただき、ご意見をいただければと思います。
来年当初に予定しているGAリリースに向けて是非フィードバックをいただければと思います。
このシリーズの最初の2つの記事では、Corda5に追加された多様な機能が、そもそも「なぜ」必要になったのかについて説明します。その後、modular APIs、ネットワーク、可用性とスケーラビリティ実現に向けたNodeアーキテクチャの再構築など、私たちのアプローチについて詳しくご紹介します。
「なぜ」新しいプラットフォームバージョンになったのか?
Corda 4は2019年2月に公開され、この2年半の間に様々な素晴らしいソリューションを提供しました。開発者はこれまで不可能だったほどシンプルな方法で、「規制を受け」「複数参加者が参加した」「エンタープライズ向けの」ユースケースにおける信頼できるソリューションを再構築することができるようになりました。私たちは多くの機能を導入し、プラットフォームをより強固なものにしました。
しかし、私たちが構築したアーキテクチャは、2017年10月のCorda1.0以来、変わっていませんでした。
4年間で多くのことが変わりました。お客様が現在、そして将来的に必要としていることにCordaが確実に対応していくために、私たちはいくつかの側面について初心に戻る必要がありました。
以下、私たちが初心に戻るきっかけとなったいくつかの事実と、そこから得られた意見を紹介したいと思います。
1. ”アプリケーションネットワーク”という考え方が、分散型アプリケーションを普及する最適な方法である。
私たちは、”ビジネスネットワーク”という概念の出現と成功を目の当たりにしてきました。”ビジネスネットワーク”とは、許可制のアプリケーションと(技術的な意味での)ネットワークの組み合わせを指します。
”ビジネスネットワーク”を運営している企業によれば、次のようなプロセスを経ると、ソリューションの市場投入を大幅に高速化できたということでした。
- 最初のステップは、ネットワーク参加を想定できる企業に具体的な1:1の取引の体験(例えば、Letter of Creditによるバリューチェーンのようなもの)を提供する。
- その上で、ネットワークとアプリケーションのパーミッションをそのコンテクストを持つ参加者に調整していくことで、多様な運営・商業モデルを提供できるということでした。
得られた教訓
私たちは、Corda 5を設計するにあたって、「アプリケーション・セントリック」であることを重視しました。「アプリケーション・セントリック」とは、アプリケーションの開発、配布、ライフサイクル管理を最適化することを主眼にしていることを意味します。これは、私たち自身をお客様(開発者/ソフトウェア・ベンダー)の立場に置き、私たちが行うすべてのことをそこから始めるということに尽きます。
また、ネットワークの運用を大幅に簡素化することをめざしました。これを、Cordaの大規模ネットワークの魅力である相互運用性を損なうことなく実現したいと考えています。
2. 基幹システム用の新インフラ構築
ここ数年、大規模な金融市場のインフラプロバイダー、決済プロバイダー、中央銀行等の間でユースケースへの関心と成熟度が高まっているのを目の当たりにしてきました。
このような新世代の重要なシステムインフラをCordaで実現するためには、プラットフォームの非機能部分に強力かつ継続的な投資を行う必要があります。
得られた教訓
Corda5では、上に示したようなクリティカルなサービスが必要とされます。
・高可用性の要求に応えることができるアーキテクチャ
・バースト的なスループットや恒常的な高スループットに加えコストパフォーマンスよく対応するために、(水平)スケーリングできるアーキテクチャ
の実現を目指しました。国全体の通貨供給や世界最大の国際決済ネットワークを動かすことができる、スケーラブルで可用性の高い分散型システムを目指しています。
3. ネットワークアプリケーションのブートストラップ(最初の導入)は非常に困難だが、スピードと低コストが助けになる
私たちは、CorDapp(Cordaを用いたアプリケーション)の開発にかかる時間やCorDappの運用コストは、分散アプリケーションそのものに対する高いハードルと相まって、非常に重要なファクターになることを目の当たりにしてきました。
バリューチェーンのうち、広い範囲の参加者を最初から必要とするアプリケーションの場合、「作れば売れる」とはならないことはよくあります。
私たちは、お客様が参加者のパイプラインを反復的に積み上げ、自社のアプリケーションを反復的に構築し、結果としてクリティカルマスに到達するために必要な創造的な成功例を数多く見てきました。
得られた教訓
Corda 5は、開発期間を短縮し、プロダクショングレードのアプリケーションのテストを安価に行うことができるように設計されています。また、継続的な開発により、ラピッドプロトタイピングからプロダクションへのパスをよりシンプルにすることで、見込み客を実際の顧客に変えることができます。
4. 漸進的な非中央集権化。すべてに当てはまるサイズはないし、最終的な状況を念頭に入れた構築はすべきではない。
私たちは、さまざまな業界でエコシステムを素早く成功させた事例を見てきました。そのいずれも、分散アプリケーションは、迅速な市場投入と配布を優先し、ネットワークの成長に合わせて徐々に分散化するというやり方をとっています。
得られた教訓
私たちは、このコンセプトを社内で検討するのにかなり時間を費やしました。ソリューションが市場にて適合するかどうかテストするには、いきなり最終的な分散状態を前提として構築するのではなく、徐々に分散化していくというアプローチを取る方がよいという結論に達しました。そのほうがより安全で、かつ簡単です。Corda 5では、このような漸進的な分散化が実現できるハイブリッドモデルを可能にしたいと考えています。より柔軟なアーキテクチャにより、Corda5は、異なるオペレーティングモデルの間を移動することができるようになる予定です。
結論
私たちはここで示したような知見や、その他の意見をまとめ、Corda5に対する3つの目標を設定しました。
1. アプリケーション開発サイクルの高速化と低コスト化
(ソリューションの価値を迅速に証明し、本番環境への導入を迅速に進めることが可能になる)
2. どのようなオペレーション・モデルに対しても低コストなオペレーションの実現
(ノード管理者、アプリケーション管理者だけではなく、様々なオペレーションモデルに対しても運用コストの低減を実現)
3. 高可用性および(水平)スケーリング可能な全く新しいアーキテクチャ。
(私たちのエコシステムに存在するあらゆるアプリケーションを実行可能な、次世代のミッションクリティカルなシステムを実現するために)
これらの目標は、私たちが2020年に設定したゴールです。次のブログでは、私たちがどのようにしてこの目標を達成するのかをご紹介します。
<ご質問・ご要望の例>
- Corda Portalの記事について質問したい
- ブロックチェーンを活用した新規事業を相談したい
- 企業でのブロックチェーン活用方法を教えて欲しい 等々
SBI R3 Japan エンジニアリング部長
書籍出してます:https://amzn.asia/d/c0V31Vd
趣味:サッカー、ガンプラ、ドライブ、キャンプ