複数の企業や個人の間で真正性のある共有場所を設ける技術がブロックチェーン
3年前よりブロックチェーンの現場を担当している廣瀬氏。「ブロックチェーンでプログラミングしている人には、最初の部分は少し退屈かもしれないが」と前置きした上で、廣瀬氏のセッションは始まった。
ブロックチェーンは、仮想通貨がきっかけで使われ始めた技術なのでブロックチェーン=仮想通貨というイメージを持つ人が多いかもしれないが、本来は複数の企業や個人の間で真正性のある共有場所を設ける技術である。
これを実現するのが、ブロックチェーンが有する4つの機能である。第1は電子署名。これは公開鍵と秘密鍵技術により実現しており、この技術を使って不正を防止し、信頼あるデータを確立するのだ。第2は分散。データベースの複製をネットワークの他のシステムへ作成、データの喪失を防いでいる。第3はデータの共有。ブロックチェーンでやり取りするデータは参加する組織の間で直接共有できる。第4は台帳。台帳は記録されたものの更新や改変ができないようになっている。つまり台帳にすべてのデータが不変に記録されるというわけだ。
ブロックチェーンの登場は2008年頃。当初は価値記録のためのシンプルな台帳だったが、ブロックチェーン2.0では、「スマートコントラクト」と呼ばれるブロックチェーンにふるまいを記述できるプログラムが追加された。「RDBMSのストアドプロシージャに近い。それを思い浮かべるとわかりやすいと思う」と説明する。ブロックチェーンネットワークの各アドレスに展開され、コントラクトを実行することに加え、静的変数や関数など、各アドレスにロジックを追加し、実行することができるという。
スマートコントラクトでどんなことが実現できるのか。例えばIDはその1つ。ブロックチェーンではそのネットワーク空間において唯一となるアドレスと秘密鍵を発行するからだ。また通貨やポイント、クーポン、バウチャー、オークションなど一次価値を移転し記録することができるようになる。登記、遺言、出生などの証明なども可能だ。「エストニアでは国民投票にブロックチェーンを使っている」と廣瀬氏。医療記録や診療記録、処方箋などに活用すれば、「いつでもどこでも自分のカルテや処方箋が見られるようになる。特にこの分野で活用が進むのでは」と期待を込める。
というのも廣瀬氏は15年前、日本医師会総合政策研究機構(日医総研)の客員研究員として医療情報に関する研究に従事していたのだ。そのほか、鉄道の遅延証明書、製造記録や流通過程、真正性の証明なども実現できる。マイクロソフトでは製造記録、流通過程、真正性証明などのトレーサビリティの事例が多いが、「中国では実際にトレーサビリティの分野でブロックチェーンは大活躍している」と説明する。
ブロックチェーンは参加形態によって3種類に分かれる。1つがパブリック。これは誰でも参加でき、匿名でもOKというもの。この代表例がビットコインだ。第2のプライベート、第3のコンソーシアムはともにエンタープライズ向けのブロックチェーンで、ネットワークの参加に対しては、何かしらのルールを決めて参加承認制を取っていることが多い。「プライベートは1社やグループで使われる場合が考えられるが、データベースでも良いのではとよく言われている」と廣瀬氏。
合意のためのアルゴリズムもさまざまある。例えばパブリックでは、Proof of Work(作業)が使われる。スパム対策が目的である。計算問題を解決させ、作業証明を持つものがブロックの追加権利を持つというアルゴリズムだ。またコンソーシアムやプライベートでは、Proof of Authority(権限)が用いられることも多い。例えば交通費申請や出張精算など、上司にハンコをもらうのと同じで、Authority(権限者)に承認を得ることによって、ネットワークにおける合意とするものだ。
他にも、ブランドや個人の価値を反映し、評判と信頼度のスコアによって合意するProof of Reputation(信頼度)、通貨保有量やトランザクション回数などから重要度を算出し、優先度を設けて合意するProof of Importance(重要度)、一部の分散台帳で利用されるPBFT、RAFTというアルゴリズムもある。
「範囲の共有もブロックチェーンの技術で異なる」と言う。ビットコインのように、すべてのノードでデータを保持する「ブロードキャスト」や、特定のノードグループ同士が共有できるチャンネルを設け、相互に証明書を使って検証する「チャンネルブロードキャスト」、ネットワーク上に存在するノード同士がそれぞれのトランザクションを1:1で通信し、台帳へ格納する「ユニキャスト」の3種類がある。「使い方の要件を定義しないとどのブロックチェーンを使うかが決まらない。そこをまずは把握すること」と廣瀬氏は説明する。
「Azure Blockchain as a Service」を活用するメリット
ブロックチェーンはIaaSでもオンプレでも動く、サーバ1台からスタートできる技術だ。だが、コンソーシアムを構成した場合の企業間ネットワーク接続、ブロックチェーンの鍵管理やアクセス管理、ノードのセキュリティ、既存システムとの接続、ノードに必要なトランザクションやパフォーマンスが推測できない場合でのサービス利用、世界各国の拠点間でP2P(ピア・ツー・ピア)同期などのケースでは、「Azure Blockchain as a Serviceの活用をおすすめする」と廣瀬氏は続ける。
Azure Blockchain as a Serviceは、Azureにブロックチェーン開発のためのプラットフォームを提供するサービスだ。クラウドなので低コストかつ迅速にブロックチェーンの検証や開発ができるのはもちろん、世界展開まで可能になるという。
Azureの特徴は、全世界で54のリージョンを展開していることと、地球64周分という世界最大級のネットワークを持つことだ。「ブロックチェーンはP2Pが基本。国際間でコンソーシアムを構成する際、多数のリージョンを展開するAzureはブロックチェーンのプラットフォームとして優れている。また、Azureのネットワーク網で各企業をつなぐことで、P2Pにおけるノード間通信のレイテンシーも小さくなる」と廣瀬氏は説明する。
しかもAzure Blockchain as a Serviceでは、目的に合わせてさまざまなブロックチェーンが使えるようになっている。最近、Ethereum Proof-of-Authority、金融機関でよく使われているR3 Corda、GoChain Single Node Blockchain、Hyperledger Fabric Consortiumが追加された。
さらにワークフロー、ドキュメントなどのトレーサビリティを記録・管理するためのミドルウェアとAzureにおける活用リファレンスアーキテクチャを提供する「Blockchain Workbench」も用意。その他にも、Office 365やDynamics 365、G SuiteやDropboxなど、他のSaaSと連携して拡張する「Azure Blockchain Development Kit」も提供されている。「Azure Blockchain Development KitはオープンソースとしてGitHubで提供しています」(廣瀬氏)
ここで廣瀬氏はD-App(分散アプリ)を開発するためのフレームワーク「Truffle(トリュフ)」を使ったEthereum開発のデモを実施した。
TruffleはEthereumを簡単に開発するためのフレームワーク。ローカルでのエミュレーター環境「Ganache(ガナッシュ)」を使う。こうすることでエミュレータではあるが、自分のPC1台から開発することができるようになる。Azure Blockchain as a Serviceを使って、自分のみが使い倒せるEthereumネットワークを作ってもよいだろう。Ethereumのネットワークに必要なアドレス情報は「Metamask(メタマスク)」で作成した。
デモ環境はAzureマーケットプレイスから展開した、TruffleのVMテンプレートをデプロイし、これにVisual Studio Codeを追加セットアップしたもの。Truffleのサンプルを展開するunbox機能で、メタコインのテンプレートを展開し開発していた。その後、最も簡単なサンプルとして、値をブロックチェーンに格納するだけのGetter/SetterのコントラクトとTruffleでのデプロイの仕組みと設定について紹介、実際にAzureに展開されたEthereumネットワークにスマートコントラクトをデプロイしていた。
現在、Azureのブロックチェーンサービスを使っている企業は400社以上。「その中には身近な例もある」と廣瀬氏が紹介したのが、Xboxのロイヤリティ管理である。ブロックチェーンでパートナーとのロイヤリティ情報を共有、管理しているという。また国連の難民支援にもブロックチェーンを採用。生体認証を実施することで、IDカード無しで難民のサービスが利用になるという。Webjetという旅行予約サービスでもブロックチェーンを活用し、航空会社、レンタカー代理店、ホテルなどと予約台帳を共有することで、予約エラーやトラブルの低減を実現している。
医薬品の真正性証明にも使われている。「米国では、薬の製造から流通までのトレーサビリティを確保する法律の整備を進めている」と廣瀬氏。この事例では、IoTデバイスでのQRコードスキャンや温度管理なども行い、製品輸送時や格納時の真正性の確認を実現しているという。
こう説明した廣瀬氏は、IoTとブロックチェーンの連携のデモを実施。Azureを使った、IoTデバイスとBlockchain Workbenchとの連携は、一切のプログラミングを行うことなく、ノンコーディングで作成されているという。
Azureが提供するIoT関連サービス
IoTの話題が出てきたところで、太田氏にバトンタッチした。太田氏はIoTをメインにAzure全般の普及啓発活動に従事しているエバンジェリストだ。
AzureではエンドツーエンドをカバーするさまざまなIoT関連サービスを用意している。例えばIoT向けPaaSサービスとしては「Azure IoT Hub」がある。「IoTデバイスをセキュアに接続するのは難しい。このサービスを使えば、エンドツーエンドのセキュリティが保たれる」と太田氏は語る。IoTスケールの自動プロビジョニングをする「Azure IoT Hub Device Provisioning Service」も用意されている。
また「サクッと簡単にIoTを構築したいのなら」と紹介したのが、「Azure IoT Central」「Azure IoT Solution Accelerators」というサービスだ。前者はフルマネージドのIoT SaaSでクラウド開発の経験は必要ない。後者はPaaSを組み合わせて構築できるテンプレートサービスで、クラウド開発の経験を活用して必要に応じてカスタマイズできるサービスだ。
これらのサービスとブロックチェーンを使えば、簡単にモノとコトの一連の流れを追える、トレーサビリティの高い仕組みを実現できる。ここで課題となるのは、このような仕組みで私たちが知りたいのはIoT機械の計測値ではなく、場所や設備の状態や値であるということだ。つまり、IoTの測定値を利用者からの観点で知りたい状態や値に変換、ひも付けする機能が必要になる。
そこで活用できるのが、「Azure Digital Twins」である。「今はまだプレビュー版で精度は良くないが、ぜひ、覚えておいてほしい。このソリューションを活用することで、実世界のデータとデジタルの世界のデータが一貫してつながる。ブロックチェーンがうまくいくカギを握るソリューションだ」と太田氏は力強く語る。
最後に廣瀬氏が再登壇。次のように会場に呼びかけ、セッションを締めた。
「ブロックチェーンはこれからの技術と思われているかもしれないが、水面下ではかなり進んでいる。ただ、技術先行型が多いので、事例として表に出てきていないだけ。遠く離れた技術ではない。ぜひ、Azureでブロックチェーンを学んでほしい」
お問い合わせ
日本マイクロソフト株式会社