はじめに
「ブロックチェーンはどんな場面で効果的に利用できるのか?」
「ブロックチェーン活用を検討する際の判断軸は?」
これらは、企業でブロックチェーン(分散型台帳技術)の活用を検討する担当者になったときに抱く疑問ではないでしょうか?
そこで本記事では、「Microsoft」が公開している学習教材「Azure でのブロックチェーンの概要」の要点を紹介しながら、ブロックチェーンを活用する際の検討項目と共に、効率的なデモやアプリ開発に使えるサービスを紹介していきます。
仮想事例:アイスクリームのサプライチェーン管理
前提として、ブロックチェーンは汎用的なソリューションという訳ではありません。今回紹介する仮想の事例のように、特定の企業に権限を集中させずに信頼性の高いデータを共有したい場合など、特定の場面で効果を発揮します。
それでは、アイスクリームのサプライチェーンを仮想事例として、ブロックチェーンがどのような課題を解決できるのか見ていきましょう。
解決したい課題
今回の事例で解決したい課題は、食の品質と安全性の向上です。仮想事例のサプライチェーンでは過去、温度管理が不十分だったために、牛乳が腐っていたケースやアイスクリームが溶けてしまった事例が発生していました。ただ、複数の企業が出荷と保管を担当していたため、責任の所在を迅速に特定することが困難だったのです。
以上のような背景から、サプライチェーン上で問題が発生したときに、責任の所在を迅速に特定できる仕組みが求められています。加えて、各事業者が独立して監査を行える体制も、食の品質と安全性の向上には不可欠です。したがって、記録されたデータへの信頼性も担保されなければなりません。
ネットワークの構成と共有されるデータ
まず、今回の仮想事例では以下の5つの主体が登場します。輸送会社2社は親会社が同じであるため、2社でひとつのノード(コンピュータなどの通信可能な端末のこと)を管理しています。
- Dalia Pelayo牧場
- アイスクリーム工場
- アイスクリームショップ
- Contoso西部輸送
- Contoso東部輸送(ノードはContoso西部輸送と共有)
今回のサプライチェーン管理システムは、上記の企業がそれぞれ管理する4つのノードで構成されています。コンセンサスアルゴリズムによって更新内容がひとつに決定され、同じ様に更新されていくので、各ノードの持つ台帳の中身は同じです。
そして、台帳に記録されるデータは以下の通りです。これらのデータはトランザクションとして各ノードに通知され、ブロックというトランザクション群にまとめられた後、検証されます。その後、問題がなければ各ノードは検証済みの最新ブロックを取り込み、自身の台帳を更新します。
- 商品管理に責任を負う主体
- 温度
- コンプライアンス違反の有無
- 最終更新日時
上記のコンプライアンス違反とは、規定の温度を上回る環境で商品を管理することです。例えば、アイスクリームを0℃より高い温度で管理すると違反になります。なお、温度はIoTセンサーによって計測され、定期的にブロックチェーンネットワークへと送信されています。
改ざん困難なデータは責任主体の特定に役立つ
各ノードに検証され、ブロックチェーンに書き込まれたデータは変更ができません。したがって、監査のためのログとして役立ちます。
例えば、コンプライアンス違反のログは、その時に商品を管理していた企業の情報と共にブロックチェーンに記録されるため、牛乳が腐るなどの問題が起きた際に、責任の所在を迅速に把握できます。もちろん、事後的な改ざんによる隠蔽はできません。各ノードの台帳は同じ内容であるため、各事業者は独立して過去の取引を検証可能です。
なお、データの改ざんを防止するためにブロックチェーンでは複数の技術が使われていますが、その整理についてはこちらの記事をご覧ください。
▼詳細はこちら
改ざん防止にブロックチェーンが効果的なケースは?パターンごとに整理する
スマートコントラクトによる処理の自動化
前述のメリットに加えて、ブロックチェーンベースのアプリケーションでは、スマートコントラクトと呼ばれるプログラムによって、事前に定義されたビジネスロジックを実行することができます。選択するブロックチェーン基盤にもよりますが、基本的にスマートコントラクトは改ざんできません。
本記事の例では、定期的に送信される温度が基準値よりも高かった場合、コンプライアンス違反であることが、記録されるロジックが実行されます。
この仕組みを利用すると、例えばアイスクリームショップが商品を輸送業者から受け取る際に(その場で)、ブロックチェーンのログをチェックして違反の有無を確認できます。違反が確認された場合、受け取りを拒否することができるため、食品の安全性を維持することができるのです。
仮想事例ではその他にも、出荷通知をトリガーとして、商品管理の責任主体を更新するコントラクトが定義されています。これらのコントラクトは事前に定義されており、コントラクトそのものや処理が行われた後の状態は改ざんできないため、信頼性の高いデータとして利用できるのです。
以上のように、アイスクリームのサプライチェーン管理にブロックチェーンを導入することで、食の品質と安全性の向上に寄与することができます。もちろん上記の例は単純化されているため、実際には登場人物や扱うデータは多くなりますが、基本的な仕組みやメリットは変わりません。
ブロックチェーン活用を検討する際の判断軸と項目
ここまで紹介してきた事例も踏まえて、ブロックチェーンを活用する際の判断軸と項目を一般化してみましょう。
参加者について
- 複数の企業や取引先と協業する必要がある
- 協業グループ内で信頼関係を構築できていない相手がいたり、第三者に頼らない仕組みが好まれたりするなどの理由で、特権的な権限を持つ中央機関の設置は避ける必要がある
- コンソーシアム(協業する企業グループ)内でデータを共有したり、共通のワークフローを有していたりする
パフォーマンスについて
- スループット(単位時間あたりの処理能力)が低くても問題ない
- 他の取引相手とやり取りする際に定義されたビジネスロジックがある
※ロジックの複雑さがパフォーマンスに影響する可能性があるため
ビジネスロジックについて
- ビジネスロジックがシンプルである
※選択するブロックチェーン次第ですが、複雑なデータ構造を扱う場合などは向き不向きがあります
- ビジネスロジックが変化しないと予想される
※ビジネスロジックの変更が予想される場合は、コントラクトを柔軟に変更できるブロックチェーンを選択する必要があります
関係者への信頼について
- 参加者間でデータに対する信頼性と整合性が求められる
- 取引の順序が重要である(二重支払い問題に対処したい)
- 取引のプライバシーが必要である
※プライバシーが必要な場合は、パーミッション型(許可型)ブロックチェーンを選択する必要があります
上記の項目が◯個当てはまれば、ブロックチェーンを活用すべき!という指標はありませんが、いくつか当てはまる項目があれば検討して良いでしょう。
ただ、ゼロからブロックチェーンを構築して、アプリケーションを開発するのは非常に多くの工数がかかるため、効率化を図る意味でもBaaS(Blockchain as a Service)の活用をおすすめします。
ブロックチェーンアプリの開発を効率化するAzureサービス
「Microsoft Azure」では、ブロックチェーンのアプリケーションを効率化するためのサービスが複数提供されています。主なサービスを挙げてみましょう。
Solution templates for blockchain
Microsoftやサードパーティが開発し、Azure Marketplace上で提供されているテンプレートを活用することで、ブロックチェーンの構築やアプリの開発工数を削減可能です。
▼テンプレート一覧
Solution templates for blockchain(Azure Marketplace)
Azure Blockchain Workbench
「Azure Blockchain Workbench」はブロックチェーンアプリケーションを迅速に構築するためのサービスです。構築時に書く必要のあるコードは最小限であり、以下の主要なパーミッション型ブロックチェーンに対応しています。
また、Azure Blockchain Workbenchの詳しい解説や設定方法、デモアプリの構築については、当メディアの別の記事で紹介していますので、こちらのご覧ください。
▼詳細はこちら
Azure Blockchain Workbenchの概要とメリット
Azure Blockchain Workbenchの設定方法を解説する!
Azure Blockchain Workbenchでサプライチェーンのデモ アプリを実装してみる
Azure Blockchain Service
「Azure Blockchain Service」は、ネットワークやメンバーの管理などをコードを書かずに行えるフルマーネジド型のBaaSです。
セキュリティの脆弱性などがあった場合のアップデートも裏側で対応してくれるため、開発者はアプリ開発に集中することができます。また、Azure Portal上でノードの監視も可能です。
Azure Blockchain Serviceでのアプリ開発手法やアップデート情報などは、以下の記事で紹介していますので、ぜひ併せてご覧ください。
▼詳細はこちら
Azure Blockchain Serviceにおけるブロックチェーン アプリ開発手法
Corda Enterprise対応!Azure Blockchain Serviceのアップデート概要
また、Azure Blockchain Serviceを基盤ブロックチェーンとして、Blockchain Workbenchで開発することができます。両サービスを組み合わせることで、基盤となるブロックチェーンからコントラクトまでをAzure上で管理可能です。
他のAzureサービスとの連携も可能
Azure上でアプリ開発を行うメリットは、他のAzureサービスとの連携がスムーズに行えるという点です。AzureのWebサイト上では、本記事の仮想事例のようなIoTとブロックチェーンを活用したサプライチェーン管理システムを、Azureサービスを駆使して実現した場合のアーキテクチャ例が紹介されています。
▼詳細はこちら
サプライ チェーンの追跡とトレース(Microsoft Azure)
参考:アーキテクチャ例
まとめ
信頼関係を構築していない企業間でデータを共有し、なおかつ当該データを監査証跡として利用したいシーンでは、ブロックチェーンの活用が効果を発揮する可能性があります。
本記事ではアイスクリームのサプライチェーンを仮想事例として紹介しましたが、ブランドの真贋判定やトレーサビリティの高度化といった実際の事例がすでに存在します。
また、活用を検討するに当たっては今回紹介した判断軸に加えて、実際の業務課題や状況を踏まえて要件を定義していく必要があるでしょう。Azure Blockchain ServiceのようなBaaSを用いて、プロトタイプを効率的に開発してみることも重要です。
もし、どのようなBaaS(あるいはブロックチェーン)を選べば良いのか決めかねる場合は、以下のフォームからお気軽にご相談ください。
また、本記事のベースとなっているAzureのラーニングパスは、以下のリンクから全編ご覧いただけます。終盤には知識チェックのページもあるので、ぜひ試してみてはいかがでしょうか?