Cordaの技術的・ビジネス的なメリットがわかる。
はじめに
Cordaについて全4回の記事の第3回目です。
オブザーバーノードについて
第1回~第2回で述べたCordaの特徴を振り返ると、Cordaがもつ1つの弱点が現れる。それはネットワーク全体として発生している全トランザクションを把握しているプレイヤーがいないという点だ。
これはCordaが取引データをデータを参照する必要がある者だけと共有するというプライバシーを重視した設計になっていることとのトレードオフである。”You can not have your cake and eat it !! “、つまりいいとこ取りはできないのである。
何かを手にいれるには何かを犠牲にしなくてはならないこともあるのだ。(したがってすべての機能を備えているというブロックチェーンプラットフォームを見かけたら必ず何かを犠牲にしているはずだと疑ってみてほしい)
しかし、このCordaの弱点は「オブザーバーノード」といわれるノードを配置することで対応できるとされている。
このノードは取引の合意に直接参加(取引の提示、合意等)することはないが、何かしら取引が実施された場合、そのデータを読み取り専門で共有することができる。
このオブザーバーノードは、たとえば規制当局が使用し、土地登記情報などのデータを管理してもいいだろうし、またそれ以外にも、企業間をまたぐ取引で横断的に取引を追跡する必要がある機関がオブザーバーノードを使用するというのでもよいだろう。
Cordaを構成する中身について
Cordaは大きく4つのコンポーネントで構成されている。その4つとは「ステートオブジェクト」「コントラクトコード」「トランザクション」「フロー」である。
ステートオブジェクトとはデータを格納する箱のようなものである。ここに何を格納するかを設計・実装することで様々なデータの状態を表現できる(例えば株、債券、請求書、売掛金、個人情報、契約証書等…)。ステートオブジェクトはブロックチェーンの世界で「トークン」と呼ばれるものに相当する。つまりCordaはあらゆるトークンを表現し扱うことができるということだ。
コントラクトコードとはブロックチェーン世界のスマートコントラクトに相当する。上述したステートオブジェクトの状態を遷移させるためのロジックをコントラクトコードとして記述する。
トランザクションとは、取引内容を表現するものだ。ビットコインブロックチェーンと同様に、UTXOモデルを採用しており、状態遷移前のステートオブジェクトの内容をインプットつまり消費し、コントラクトコードを適用した状態遷移後のステートオブジェクト情報をアウトプットする。このインプットとアウトプットの一連の流れをトランザクションを呼ぶ。
フローとは、ワークフローのことである。Cordaは社外との取引相手との情報共有、合意形成を念頭において設計・開発されたプラットフォームであり、フローは厳密には社外ワークフローを記述するためのライブラリとなる。取引内容に合意するには何度か「申請」「承認」のやりとりが発生するが、フローはこれをハンドリングする。フローの機能を利用することで効率的に社外の相手との合意を形成することができる。
マルチベンダーが生む自由
上記の4つのコンポーネントを活用することでCorda上で動くアプリケーション(Cordappと呼ばれている。現状公開されているCordappについてはこちらを参照してほしい https://marketplace.r3.com/dashboard)を開発することができる。現在200を超えるCordaのパートナー企業が幅広い業務アプリケーションを開発している。
Cordaを設計・開発するR3社はCordaプラットフォームの設計・開発・メンテナンスをするのみであり、アプリケーションや動作環境は顧客が必要に応じて自ら必要な機能を提供する会社を選定することになる。アプリもプラットフォームも同じ会社に提供されたほうが楽なのではと思うかもしれないが、そうすると利用する側は提供される側の言われるがままになってしまう可能性も否定できない。つまり競争原理が働かなくなってしまうため、価格面やサービス面で損を被る場合がある。Cordaを利用すれば上述したようにアプリケーションや環境は必要に応じて顧客が選定するのでそういったデメリットが生じえない。こういった点もCordaを利用するにあたっての1つのメリットであると考える。
<ご質問・ご要望の例>
- Corda Portalの記事について質問したい
- ブロックチェーンを活用した新規事業を相談したい
- 企業でのブロックチェーン活用方法を教えて欲しい 等々