Azure Blockchain Development Kit のご紹介

11月 15, 2018 に投稿済み

Principal Program Manager, Blockchain Engineering

“開発者!開発者!開発者!” このフレーズが表現しているのは、Microsoft が複雑なテクノロジを民主化して、アイデアを持つ人が誰でもソフトウェアを作成できるよう取り組んできた歴史そのものです。

これまで 40 年以上にわたり、Microsoft は開発者ツール、エンタープライズ統合、DevOps、PaaS、SaaS によって開発のハードルを低くしてきました。現在は、Functions や Logic Apps から Azure DevOps や IoT Central に至るまでのサーバーレス オファリングが、クラウド内での開発を容易にしています。

本日午前、Azure Blockchain Development Kit の初期リリースを発表いたします。これは、Microsoft のサーバーレス テクノロジに基づいており、ブロックチェーンを Microsoft とサードパーティの SaaS の最良の機能とシームレスに統合します。

このキットは Microsoft のブロックチェーン開発者テンプレートと Azure Blockchain Workbench の機能を拡張するものであり、キー管理、オフチェーンの ID とデータ、監視、メッセージング API の各 Azure サービスを 1 つのリファレンス アーキテクチャに統合し、ブロックチェーン ベースのアプリケーションを迅速に構築するために使用できるようにします。

これらのツールは、多くの組織にとって、ビジネスのやり方を改革する過程における最初のステップとなってきました。これまで、ナイジェリアでのサプライ チェーン ファイナンスの民主化から英国での食糧供給の安全確保に至るまで、ありとあらゆるアプリが作成されてきましたが、Microsoft のチームは、ユース ケースをまたいだパターンの出現に伴い、開発者がさらに多くのことをさらに迅速に行えるよう支援するための新しい方法を見極めました。

この初期リリースで優先しているのは、次の 3 つの重要なテーマに関連する機能です。すなわち、インターフェイス間の接続、データとシステムの統合、スマート コントラクトとブロックチェーン ネットワークのデプロイです。

接続

共同事業体向けのエンド ツー エンドのブロックチェーン ソリューションを実現する開発者に必要なのは、組織、ユーザー、デバイスがブロックチェーンに接続できるようにすることです。しかも、さまざまに異なる一連のユーザー インターフェイスから接続できるようにしなければなりません。

ココアなどの商品を扱う、エンド ツー エンドのサプライ チェーンを例にとります。

  • SMS および音声インターフェイスにより、サプライ チェーンの最初の段階として、アフリカの小規模農場の経営者が農作物を取り引きして追跡できるようにします。
  • モノのインターネット (IoT) デバイスにより、商品が市場に届けられる過程の様々なポイントでセンサー データが配信されて、商品の状態を追跡します。具体的には、カカオ豆を保管するコンテナー内の湿度と、ココアを混ぜて製造されたアイスクリームの温度を追跡します。
  • モバイル クライアントにより、物流業者は商品を受領し、配送中の商品に対する責任を製造業者から小売業者に移します。その際には、従業員が既に携帯しているモバイル デバイスの計算パワーが使用されます。モバイル デバイスに搭載されている GPS などのセンサーやカメラによって、どの配送品がいつどこにあったかの証拠となる補足データを追加することもできます。
  • バックエンド システムとデータ (Dynamics や SAP などの ERP システムという形を取ります) を使用して、さまざまな参加者のコア プロセスを管理します。これらのシステムは、拡張機能によってクライアントにもなり、スマート コントラクトと相互作用して、裏付けとなるデータを組織に代わって送受信する必要があります。
  • ボットおよびアシスタントによって、製造業者と小売業者はサプライ チェーンとやり取りできます。これには、スマート コントラクトと相互作用して、自然言語で注文と来歴を調べたり、ブロックチェーンの裏付けデータを使用してユーザーに代わって実行するアクションを指示したりすることが含まれます。
  • Web クライアントにより、末端消費者は、小売店で購入した商品の由来を照会できます。通常、これは商品が「農地から食卓へ」届けられるまでの来歴やストーリーの組み合わせです。

Azure Blockchain Development Kit には、上記のすべてのシナリオのサンプルとして、受信および発信 SMS、IVRIoT HubIoT Central、iOS 用と Android 用の Xamarin モバイル クライアントCommon Data Service (CDS) による Dynamics 統合、ボットとアシスタント (CortanaAlexaGoogle アシスタント)、Web UX などが含まれています。

統合

企業では複数の関係者が関与するプロセスを容易にするために、ブロックチェーンとスマート コントラクトを使用するようになっています。ブロックチェーンは、これらのコントラクトの状態およびイベントに関するリアルタイムの透明性も、適切な参加者に対して確保します。

エンド ツー エンドのブロックチェーン ソリューションには、「オフチェーン」に存在するデータ、ソフトウェア、メディアとの統合が必要となります。外部での更新とイベントによって、スマート コントラクトに対するアクションをトリガーすることができます。スマート コントラクトのイベントや状態変更により、今度は「オフチェーン」のシステムとデータに対するアクションやデータ更新がトリガーされます。これらの外部システムと AI には、裏付けデータをスマート コントラクトに照会して、アクションを通知する機能も必要です。

具体的に言うと、ガイダンスが最も必要とされる統合の分野が 2 つあります。

ドキュメントとメディア: ドキュメントとメディアはチェーンに属していませんが、ビジネス プロセスに画像、動画、音声、Office ドキュメント、3D プリンター用の CAD ファイル、その他の種類のファイルが必要になることは少なくありません。

一般的なパターンとしては、メディアと、そのメディアについて説明するメタデータの一意のハッシュを生成します。それらのハッシュは、パブリックまたはプライベート チェーン上に配置されます。ファイルの信頼性が少しでも疑われる場合は、後から「オフチェーン」のファイルのハッシュを再び生成し、そのハッシュとブロックチェーン上に保管されている「オンチェーン」のハッシュとを比較します。2 つのハッシュが一致すれば、そのドキュメントは信頼できることになります。一方、ドキュメント内の画像のピクセルや文字が少しでも変更されていれば、ハッシュは一致しません。したがって、ドキュメントが改ざんされていることが明らかになります。

Microsoft では現在、ファイルとファイル関連のメタデータのハッシュの生成ができる一連のロジック アプリをリリースしています。また、ファイルのスマート コントラクトや、ハッシュをオンチェーンで保管するためのファイル レジストリも組み込まれています。

ドキュメントおよびメディア用の最も一般的なソースに追加されたファイルにこの機能を提供するためのロジック アプリが作成されてきました。これには、Azure StorageOneDriveOne Drive for BusinessSharePointBoxAdobe Creative CloudFTP が含まれます。

ドキュメントとメディア

スマート コントラクトの相互作用: ブロックチェーンの構想を具現化して実稼働環境に移すということは、取引先企業の現状のやり取りの方法の現実に対処しなければならないことを意味します。その現実とは、エンタープライズ統合は厄介であることです。

Microsoft はこの分野での長年の経験をブロックチェーンに生かしています。Microsoft のエンタープライズ システム統合に対する取り組みは、約 20 年前の BizTalk Server の導入に始まっています。また、データベース統合への注力は、1990 年代の Open Database Connectivity (ODBC) の共同開発にさかのぼります。Azure サービスでは、こうした経験すべてが取り込まれて、使用できるようになっています。これには、Logic Apps と Flow に用意されている 200 を超えるコネクタや、Microsoft のデータ プラットフォームに組み込まれている堅牢な機能が含まれます。

スマート コントラクトの相互作用

Blockchain Application Development Kit には以下の分野でのワークベンチ統合サンプルが含まれています。

ブロックチェーン用ロジック アプリ コネクタ

本日は、これらのサンプルを EthereumCorda、ビットコインなどの台帳に拡張するための一連のロジック アプリおよび Flow のコネクタのリリースについても合わせて発表いたします。

「R3 では、開発者が CorDapp を迅速、安全、簡単にデプロイできるよう取り組んでいます。Azure Blockchain Development Kit により、弊社のエンタープライズのお客様は、Outlook、Alexa、SMS、Web UX などの日常的に使用されているアプリケーション、ソフトウェア、デバイスを統合するためのツールを利用できるようになります。ブロックチェーンはもはや実験段階ではなくなって、日常的なビジネス アプリケーションとして普及しつつあります。」

– Mike Ward、Head of Product Management、R3

本日利用可能になった Ethereum ブロックチェーン コネクタにより、ユーザーは、コントラクトのデプロイ、コントラクト アクションの呼び出し、コントラクトの状態の読み取りが行えます。また、イベントに基づいて台帳から他のロジック アプリをトリガーすることもできるようになります。

Logic Apps

デプロイ

エンタープライズ ソフトウェア開発においてブロックチェーン テクノロジが主流となりつつある中、組織はスマート コントラクトとブロックチェーン プロジェクトに DevOps を適用する方法に関するガイダンスを求めるようになっています。

一般的な質問には、次のようなものがあります。

  • 必要なビジネス ロジックとそのロジックのデータ スキーマはスマート コントラクトに反映されています。しかし、スマート コントラクトは、あまり馴染みのない言語で作成されています。たとえば Ethereum の Solidity、Corda の Kotlin、Hyperledger Fabric の Go などです。  これらを開発するには、どのツールを使用できますか?
  • スマート コントラクトの単体テストとデバッグを行うには、どうすればよいですか?
  • 多くのブロックチェーン シナリオは、複数の関係者が関与するトランザクションとビジネス ワークフローを反映しています。こうしたワークフローでは、複数の関係者による署名付きトランザクションが特定のシーケンスで行われます。このコンテキストにおいて、テスト環境のデータについてはどのように考えればよいですか?
  • スマート コントラクトがデプロイされるブロックチェーンは不変です。コードとしてのインフラストラクチャ、ローカル開発/テスト、コントラクトのアップグレードなどについては、どのように考える必要がありますか?
  • ブロックチェーンは、共同事業体を構成する複数の組織の間で共有されるデータ テクノロジですが、複数の関係者が関与するグローバルな環境におけるソース コード管理や、ビルドおよびリリース パイプラインにはどのような影響がありますか?

ブロックチェーン手法には微妙な違いがいくつかありますが、幸い、他のタイプのソリューション開発と同じく、このモデルには DevOps モデルで簡単に対処できます。

DevOps モデル

本日、Microsoft はホワイトペーパー「DevOps for Blockchain Smart Contracts」のリリースを発表いたします。

「Microsoft と協力して、ブロックチェーン エンジニアのための規範的 DevOps エクスペリエンスを作成することを非常に楽しみにしています。ホワイトペーパー「DevOps for Blockchain Smart Contracts」では、あらゆる細部にわたって詳細を掘り下げ、共同事業体環境での CI/CD を目指してブロックチェーン アプリケーションを開発する例を紹介しています」

- Tim Coulter、Founder of Truffle

このホワイトペーパーの補足として、Azure Blockchain Development Kit には実装ガイドが用意されています。このガイドでは、Visual Studio Code、GitHub、Azure DevOps、および Truffle の OSS を使用して、スマート コントラクトとコードとしてのインフラストラクチャ用の CI/CD を実装する方法を説明しています。

ブロックチェーン アプリケーション開発用の卓越したプラットフォーム

アイデアを持っている誰もが、エンド ツー エンドのブロックチェーン アプリケーションの開発を迅速かつ手頃な価格で行えるようにするという Microsoft の取り組みにおいて、次のステップとなっているのが Azure Blockchain Development Kit です。Microsoft のブロックチェーンへの投資を基に開発されたこのキットは、Azure とこれを包含する Microsoft Cloud の両方に用意されているコンピューティング サービス、データ サービス、メッセージング サービス、統合サービスに接続し、開発者がその構想を実現できるようにするための堅牢なパレットを提供します。

Logic Apps と Flow は 200 を超えるコネクタを備えたグラフィカル設計環境を提供しており、エンド ツー エンドのブロックチェーン ソリューションの開発は大幅に簡素化されます。また、Azure Functions を使用して、カスタム コードを迅速に統合することもできます。

さらにサーバーレス手法によって、コストも管理のオーバーヘッドも削減されます。Azure Blockchain Development Kit は、VM の管理が不要で、スケーラビリティが組み込まれ、価格モデルが手頃であり、マニアから ISV や企業の開発者まで、あらゆる開発者の手の届く範囲にあります。

ソリューションを作成するには、オンライン ビジュアル ワークフロー デザイナーに加えて、Visual Studio Code を使用します (これは無料でダウンロードでき、Windows、Mac、Linux 上の統合開発環境として機能します)。

完成したアプリケーションは、他のどの大規模プロバイダーよりも評価の高いクラウド パフォーマンスのネットワーク上で実行されます。また、Azure Active Directory を使用することで、参加者の間で ID を統合することもできます。Azure のおかげで、これらのアプリケーションを他のどのクラウド プロバイダーよりも多くのリージョンにデプロイでき、より多くの認定資格によるメリットを享受できます。

皆さんが何を作成されるか、楽しみにしています。Microsoft では分権化された未来を築く上で役立つ方法について、引き続き皆さんの意見を聞きながら探っていく所存です。

サンプルを使用してブロックチェーン アプリケーションを作成および拡張する方法について詳しくは、Channel 9 show Block Talk に豊富に揃っている動画をご覧ください。

また、Twitter で @MSFTBlockchain をフォローして、Azure Blockchain の最新情報を入手してください。