Coco Framework
Pocket

エンタープライズ向けのブロックチェーン推進に取り組んでいるMicrosoftは2017年8月10日、ブロックチェーンアプリケーションの統合的な開発環境を提供するオープンフレームワークを実装するミドルウェア「Coco Framework」を発表しました。

Coco FrameworkではEthereumのような既存ブロックチェーンのネットワーク上で、コンソーシアム型の企業間でなされる機密性の高い取引が可能になり、特にコンソーシアムブロックチェーン上で課題とされる問題を解決することを目的としています。

 

概要

Microsoftは2015年11月9日に、Ethereumのブロックチェーン環境を提供するサービス「Blockchain as a Service(BaaS)」を発表し、クラウドベースのブロックチェーン開発環境に着手して以来、企業向けにブロックチェーンを活用させるための技術開発を進めてきました。

2016年6月には企業向けのコンソーシアムブロックチェーン構築を支援するためのミドルウェア構想「Bletchley」を発表しており、これは企業がEthereumを利用したプライベート型のブロックチェーンネットワークを構築できるようにするものです。今回発表されたCoco FrameworkはBletchleyプロジェクトの一部とされています。当初のBletchleyプロジェクトではミドルウェア環境はAzureから提供される予定でしたが、Coco FrameworkはAzureに留まらず、オープンな仕様で登場しています。

ビットコインを代表とした不特定多数のメンバーが参加するパブリック型ブロックチェーンの他に、現在では特定の組織のみが参加して企業間でスマートコントラクトが使用できるコンソーシアム型ブロックチェーンがビジネス領域で注目されています。

中央管理者のいないブロックチェーン「パブリックチェーン」
複数の管理主体により共同で運用されるブロックチェーン「コンソーシアムチェーン」

しかし、パブリック型ブロックチェーンは参加者全員が取引記録を参照できてしまうので機密性という点で問題点がありました。また、機密性を高めるために企業がビジネス用にブロックチェーンネットワークを構築することは、ビットコインネットワークと同様のエネルギー消費やマイニングコストを使用することを考えると、コスト面でも現実的ではありません。

このように企業がセキリュティを担保した状態でブロックチェーンを導入することは様々な点で問題があり、高度な技術が必要でしたが、Coco Frameworkはそれらを解消します。Coco Frameworkというプラットフォームに複数のブロックチェーンネットワークを統合することで、高速なトランザクションや分散型ネットワークを犠牲にすることなく、かつ機密性の保護を実現します。

画像:The Coco Framework Technical Ovewview

 

Coco Frameworkでできること

Coco Frameworkは技術要素として、CPU内にソフトウェアによる保護領域を作成する機能であるIntel SGX(Software Guard Extensions)や、資格情報の格納場所として存在するOSとは別の仮想領域Windows VSM(Virtual Secure Mode)を使用し、機密性のあるコンソーシアム型のブロックチェーンネットワークであるCoco Frameworkを構築します。

Intel SGXやWindows VSMを利用することで、参加する各企業のノード(Validating Node:VN)を保護された環境(Trusted Execution Environment:TEE)に構築します。そのTEEにブロックチェーンのコア機能であるトランザクション処理やスマートコントラクトの実行を実装し、機密性の高いデータを格納できます。この機能によって、たとえEthereumのような既存のブロックチェーンネットワーク上であっても、CoCo Framework内の取引はCoCo Frameworkの参加者にのみ共有されるようにできます。さらにCoco Frameworkの参加者内であっても、トランザクション記録などの閲覧権限を管理することも可能です。

画像:The Coco Framework Technical Ovewview

 

8月10日にYouTubeで公開されたAzure CTOのMark Russinovich氏による以下の動画では、Coco Frameworkの使用デモを見ることができます。複数の「サプライヤー」と「リテイラー」がCoco Framework上でコンソーシアムブロックチェーンを構築する例を提示しており、同じブロックチェーン上でもあるサプライヤー&リテイラーのトランザクション記録が、他のサプライヤー&リテイラーからは検索してもヒットしていない様子が見て取れます。

 

 

また、Coco Frameworkは、自社のクラウドサービスであるMicrosoft Azureのほか、オンプレミスや他社のクラウド上でCoco Frameworkのノードを稼働させることもできるように実装されたミドルウェアとして提供されます。

 

Coco Frameworkとブロックチェーン

ブロックチェーンはパブリック型・コンソーシアム型・プライベート型に大別されることは以前に紹介していますが、Coco Frameworkはノードとアクターが明示的に宣言されており、機密性の高いコンソーシアム型のブロックチェーンネットワークを利用することを想定しています。

現時点で組み込みを始めているブロックチェーンのプロトコルは以下の4つであり、参加者は利用するブロックチェーンを選択することができるようになります。

  • Ethereum Foundationの「Ethereum」
  • R3の「Corda」
  • Intelの「Hyperledger Sawtooth」
  • J.P. Morganの「Quorum」

ここまで述べているように、Coco Framework自体はブロックチェーンではなく、様々なベンダーや団体によって生み出され、数が増えつつあるブロックチェーンを支えるためのプラットフォームを提供するという位置付けです。

Russinovich氏はCoco FrameworkとEthereumのネットワークに関して大きな違いの一つに、計算集約型のProof of Workプロトコル使用の有無を挙げています。Ethereumは2017年9月時点ではProof of Workを合意形成アルゴリズムに採用しており、将来的にはProof of Workのコンセプトに基づいたProof of Stakeへの移行を検討しておりますが、Russinovich氏はこれらのアルゴリズムがマイニングの生産性によって影響を受けてしまう点を問題視してます。

分散ネットワークでの合意を可能にしたコンセンサスアルゴリズム「プルーフ・オブ・ワーク」
Proof of Workの欠点を克服させた合意形成アルゴリズム「プルーフ・オブ・ステーク」

一方でCoco FrameworkはTEEによって外部からのデータ改ざんを防ぐことで、コンソーシアムブロックチェーン内にいる全参加者間で信頼性の高いネットワークを構築できると言います。従った敵対的なグループや複雑な合意形成アルゴリズムを利用する必要がなくなります。

 

Coco Frameworkのこれから

Russinovich氏によれば、Intelやチェース銀行、Ethereumなどのネットワークは既にCoco Frameworkを利用していると言います。その中でもCoco Framework内にEthereumベースの元帳を設置したネットワーク上での実験では100~200msecほどのレイテンシーで毎秒1,500~1,600トランザクションを処理することが出来たとのことです。今後はさらに他の企業向けにもCoco Frameworkを利用したブロックチェーン技術の本格的な導入を促していくことになりそうです。

様々な企業がCoco Frameworkを利用することで、金融・物流やサプライチェーン・ヘルスケアなど、複数の産業で速やかなブロックチェーン技術採用につながると期待できそうです。Coco Frameworkでは将来的に全てのブロックチェーンを自らのプラットフォーム上で一元管理するように仕組み化を目指しているのかもしれません。

また前述したように、Coco FrameworkはMicrosoft製品のAzure以外のオンプレやクラウドでも動作します。こうした柔軟性を確保する目的の1つは、各社がCoco Frameworkを新たなプロトコルと統合したり、各種ハードウェア上で試したり、企業の固有のシナリオに適応させたりできるようにすることにありそうです。また、Microsoftは2018年初めに、Coco Frameworkのソースコードをオープンソースコミュニティーに寄贈する計画も示しています。

 

参照:The Coco Framework Technical Ovewview

Pocket

Aram Mine

Gaiax技術マネージャ。研究開発チーム「さきがけ」リーダー。新たな事業のシーズ探しを牽引。2015年11月『イーサリアム(Ethereum)』 デベロッパーカンファレンス in ロンドンに参加しブロックチェーンの持つ可能性に魅入られる。以降ブロックチェーン分野について集中的に取り組む。

Search