Microsoftは2015年11月に、Microsoft Azure上からEthereum(イーサリアム)のブロックチェーンを提供する「Azure BaaS(Blockchain as a Service)」を発表した。その後、R3(日米欧43行が参加しブロックチェーン技術の開発や評価を行うコンソーシアム)と提携するなど、企業におけるブロックチェーンの利用を推進するための作業を顧客企業やパートナー企業とともに進めている。日本でも2月から、みずほフィナンシャルグループ、電通国際情報サービス、カレンシーポートと共同でBaaSの実証実験を開始している。
このような企業でのブロックチェーン活用促進に向けた取り組みをさらに強化するプロジェクトとして、Microsoftは6月、「Project Bletchley」という構想を発表した。Bletchleyは、プライベートなブロックチェーン基盤上で、スマートコントラクト(契約の自動化)をよりセキュアに実施するためのアーキテクチャであり、「ブロックチェーンミドルウエア」「Cryptlets」の2つのコンセプトが含まれる。
7月26日に都内で開催されたスマートコントラクトのイベント「Smart Contract Conference」に合わせて来日したMicrosoft Director Business Development & Strategy Cloud + EnterpriseのMarley Gray氏に、Bletchley、Cryptletsについて話をきいた。
--まず、MicrosoftがイーサリアムでBaaSを開始した背景を教えてほしい。
Microsoft Director Business Development & Strategy Cloud + EnterpriseのMarley Gray氏
BaaSを発表したのは2015年11月で、まだ1年も経っていないわけですが、当時、ニューヨークの顧客企業から、ブロックチェーンを開発テスト環境で手軽に使いたいという声が多く寄せられていました。そこで、イーサリアムの事業化を推進するConsenSysと一緒に、Azure上で短時間にブロックチェーンの検証環境が構築できるBaaSを立ち上げました。これまで構築に何日も要していたブロックチェーン環境を、Azure Marketplaceから20分ほどでデプロイできるようにしたのです。
第1弾としてイーサリウムのブロックチェーンを採用したことには、特にプランはありません。BaaSの立ち上げを検討し始めた時期に、利用可能な技術としてそこにあったのです。現在、Microsoftには40社のブロックチェーン関連のパートナー企業がいますが、そのうち25社はそれぞれのブロックチェーン技術を有しています。第2弾として、2016年秋にはLinux Foundationが中心となって開発しているブロックチェーン「Hyperledger」をサポートする予定です。また、そのほかのブロックチェーンについても、Azure上から提供できるようにしていく計画です。
--Bletchleyとはどのようなものか。
Bletchleyは、Azure上の“企業向けのコンソーシアム構築ツール”とでも呼ぶビジョンで、コンソーシアム(複数の企業が参加するプライベートブロックチェーン)上でのスマートコントラクトを安全に実施するための仕組みを提供します。下記の図がBletchleyのアーキテクチャです。ミドルウェアのサービス群がBletchleyの肝になります。
Bletchleyのアーキテクチャ
Azure上の仮想マシン(VM)にP2Pネットワーク、データベース、スマートコントラクトの仕組みが載ったブロックチェーンがあり(Base Platform層)、その上にミドルウェア層があります。
ミドルウェア層には、Azure Active DirectoryやKey Vaultによる「アイデンティティと認証」サービス、「ブロックチェーンのトランザクションの暗号化」サービス、「ブロックチェーン用のゲートウェイ」サービス、「ブロックチェーンのトランザクションの暗号化」サービス、Cortana AnalyticsやPower BIによる「機械学習&BI」サービス、そして「Cryptlets」が含まれます。ミドルウェア層の各サービスはAzure Service Fabricでマイクロサービス化されており、コンソーシアムを構築する際に、必要なサービスを選んで実装することが可能です。
--Bletchleyでどのようなことができるのか。
例えば、アイデンティティと認証サービス、ブロックチェーンのトランザクションの暗号化サービスなどを使うことで、コンソーシアム(プライベートブロックチェーン上でのスマートコントラクト)の各参加者のプライバシーが保護できます。
同一のコンソーシアム上のスマートコントラクトで、みずほ銀行とシティバンク銀行がスワップ取引を行うとしましょう。取引状態は2行で見られるようにしたいですが、競合同士、それぞれのスワップの情報は見せたくありません。そこで、それぞれスワップの情報は暗号化してブロックチェーンにのせるのです。R3のように、競合他社が参加するコンソーシアムでのスマートコントラクトにおいては必須の機能です。
金融以外の産業でもニーズがあります。例えば、医療情報をプライベートブロックチェーン上で扱うケース。患者が医療機関で受けた検査のデータを、特定の医師と患者の間で共有するとします。アイデンティティと認証サービス、暗号化サービスを使うことで、検査データを共有する医師を患者が指定することができます。患者が別の医師に診断をしてもらいたいという場合には、今の医師から検査データを閲覧する権利をはく奪し、別の医師にその権利を与えるといったようなことがスマートコントラクト上で可能になります。
--Cryptletsとはどのような機能か。
ブロックチェーンでスマートコントラクトを行うとき、ブロックチェーン上にはコントラクト(契約)の条件に関するデータが記述されていないので、外部システムからブロックチェーンにどのような条件で契約を実施するのかという数値を入力する必要があります。この外部システムを“Oracle”と言います。ITベンダーのOracleとは関係ありません。
Oracleで、このスマートコントラクトへの参加者は誰か、何日の何時に取引を実行するのか、取引条件、取引結果をブロックチェーンに書き込む、といったプログラムを作成してブロックチェーンに入力します。
ここで、ブロックチェーンは改ざんのない信頼できる基盤であっても、Oracleのサーバがハッキングやなりすましなどによって不正に操作されている可能性があります。これでは、スマートコントラクトの信用が崩れてしまいます。
Cryptletsは、Oracleに相当する機能を、クラウド上のコンテナからセキュアに提供するサービスです。「Utility Cryptlet」と「Contract Cryptlet」の2種類があります。各Cryptletとブロックチェーンの間は、CryptoDeleigateという機能で接続します。
ブロックチェーンにスマートコントラクトの条件を入力する「Cryptlet」
Utility Cryptletは、ブロックチェーンからの呼び出しによってスマートコントラクトの条件を記述したプログラムを作成し、ブロックチェーンにプログラムを返します。従来のOracleを置き換えるサービスと言えます。Utility Cryptletでは、ブロックチェーン上のすべてのノードで、スマートコントラクトの条件プログラムのロジックが実行されます。
一方、Contract Cryptletでは、ブロックチェーンからの呼び出しによってスマートコントラクトの条件を記述したプログラムを作成したあと、ロジックをContract Cryptlet側のノードで実行し、結果だけをブロックチェーンに書き込みます。
クラウド上のプライベートブロックチェーンは、パブリックのブロックチェーンと比較してノードがスケールしませんが、Contract Cryptletではブロックチェーン外のノードでスマートコントラクトのプログラムを実行するので、パフォーマンスを高めることができるのです。
「Utility Cryptlet」と「Contract Cryptlet」
まとめると、Bletchleyは、企業がプライベートブロックチェーン上でスマートコントラクトを行う際に懸念するプライバシーやセキュリティ、スケーラビリティの課題を解決するものです。