マルチパーティ コンピューティング アーキテクチャの設計

Azure Blob Storage
Azure Kubernetes Service (AKS)
Azure SQL データベース

ビジネス上関係のあるパーティは、マルチパーティ コンピューティング、またはプライバシーが維持されるコンピューティングを利用すると、各パーティのプライベート データが開示されることなく、データを共有し、コンピューティングを実行し、共通の結果を得ることができます。 Azure サービスは、マルチパーティ コンピューティング ソリューションを構築するのに役立ちます。 このソリューションには、クラウドベースとオンプレミスのリソースを含めることができます。

マルチパーティ コンピューティングには、次の属性があります。

  • 複数の会社または組織が関係します。
  • 各パーティは独立しています。
  • パーティ間で、相互に信頼してすべてのデータを共有することはしません。
  • すべてのパーティが、共通のコンピューティングおよびデータ ストレージのプラットフォームにアクセスします。
  • 一部のプロセスは、関係する一部のパーティ専用にする必要があります。

複数のパーティが関係するワークフローの一例は、サプライチェーンです。 原材料が、生産地から製造業者に送られます。 製品が製造業者から、運送業者を通じて配送センターに送られます。 製品が配送センターから、小売店に送られます。

サプライチェーンのメンバーの流れをクリップ アート イメージで示した図。

このプロセスでは、複数の会社が連携しています。 これらのパーティには、原材料供給業者、製造業者、運送業者、倉庫管理業者、小売業者が含まれます。 このサプライチェーンの過程で、製品を扱う業者が何度か変わります。 それぞれのパーティが、製品をすべてのステージで追跡する必要があります。

マルチパーティ コンピューティング テクノロジ

マルチパーティ コンピューティングでは、パーティがネットワーク経由で安全に処理を実行できるようにする、さまざまなテクノロジが利用されます。

コンフィデンシャル コンピューティング、Azure Kubernetes Service、仮想マシン、パートナー オファリングとして実装されている台帳を示す図。

1つのオプションは、分散型台帳です。 ブロックチェーンは一例です。 ブロックチェーンとは、すべてのパーティが台帳のデータを信頼する、独立したパーティ間で共有できるデータ台帳です。 トランザクションはブロック単位で収集され、各ブロックは直前のブロックにリンクされています。 一部の分散型台帳では、ブロックが使用されません。 各トランザクションは、台帳で直前のトランザクションにリンクできます。

また、マルチパーティ コンピューティングでは、ハードウェアで保護されたメモリを CPU 自体で使用することもできます。 セキュア エンクレーブと呼ばれるこの領域は、暗号化によって保護されます。 この手法では、サーバーへのフル アクセス権を持つ特権管理者でさえ、セキュア エンクレーブ内のプロセスまたはデータを見ることができません。

セキュア エンクレーブは他のエンクレーブに対してリモートで自己証明する機能を備えているため、複数のエンクレーブからシステムが実行される複数組織ネットワークを設計できます。 この手法は高信頼実行環境と呼ばれます。

Azure は、セキュア エンクレーブでブロックチェーン モデルを実行できる、Azure Confidential Ledger というマネージド サービスを提供しています。

最後に、不変性と信頼性を実現する集中型システムを選択することもできます。 Azure SQL Database 台帳は、リレーショナル データベースでのマルチパーティ コンピューティングに必要な信頼を提供します。 分散型のコンセンサスは必要でなく、台帳の不変性という側面のみが必要という場合もあります。

ブロックチェーン ネットワーク モデル

ブロックチェーンがビジネス プロセスに適しているかどうかを判断するには、次の点を考慮してください。

  • このビジネス プロセスは信頼境界を越えますか?
  • 複数のパーティがデータを共有および更新しますか?
  • 信頼できる唯一の情報源を制御する中継はありますか?
  • このプロセスには、付加価値の低い手動の検証ステップが含まれますか?

これらの質問の答えが "はい" であれば、ブロックチェーン ベースの方法がビジネス プロセスに適していると考えられます。 答えの一部が "いいえ" であっても、ブロックチェーンが適している可能性があります。 決定する前に、他のマルチパーティ コンピューティングのオプションも十分検討してください。

ビジネス ニーズに対応する、さまざまな種類のブロックチェーン ネットワークがあります。 1 つの特性として、ネットワークに参加する基準があります。 すべてのユーザーに対してオープンなネットワークは、パブリック ブロックチェーン ネットワークと呼ばれます。 クライアントをダウンロードして参加するだけです。 ほとんどの暗号通貨はこの方法で機能します。

別の方法は、許可型ブロックチェーン ネットワークです。この場合、参加するにはネットワークの既存のメンバーに許可してもらう必要があります。 このモデルは、既知の組織と取り引きする企業に向いています。 たとえば、スーパーマーケットの場合、サプライチェーンの参加者のために、非公開の許可型ブロックチェーン ネットワークを使用することができます。

耐改ざん性がある、または非改ざんが証明されるデータのみを必要とするビジネス プロセスの場合、ブロックチェーンは不要と思われます。 プロセスを一元的に実行できる場合、またはすべてのパーティが相互に信頼してデータを共有できる場合も、ブロックチェーンは不要と思われます。

Azure マルチパーティ コンピューティング

このセクションでは、Azure サービスを使用して利用できるマルチパーティ コンピューティング オプションについて説明します。

Azure 仮想マシンを使用したブロックチェーン

Azure 仮想マシンを使用して、台帳ソフトウェアを実行できます。 必要な数の仮想マシンを作成し、ブロックチェーン ネットワークに接続します。

独自の仮想マシンをデプロイして、ソリューションをカスタマイズすることができます。 この方法には、更新、高可用性、ビジネス継続性の要件など、管理上のオーバーヘッドが伴います。 複数の組織と複数のクラウド アカウントが存在する可能性があります。 個々のノードを接続することは、複雑になる場合があります。

Azure には、仮想マシン用に、ほとんどのブロックチェーン台帳に対応できるいくつかのデプロイ テンプレートが用意されています。

Kubernetes でのブロックチェーン

ほとんどのブロックチェーン台帳は Docker コンテナーへのデプロイをサポートしているため、Kubernetes を使用してコンテナーを管理できます。 Azure には、ブロックチェーン ノードをデプロイおよび構成するために使用できる、Azure Kubernetes Service (AKS) というマネージド Kubernetes オファリングが用意されています。

AKS の実装には、AKS クラスターを機能させる仮想マシン用のマネージド サービスが付属しています。 ただし、お客様の組織は、AKS クラスターと、アーキテクチャに含まれるすべてのネットワークまたはストレージのオプションを引き続き管理する必要があります。

Azure には、AKS 用に、ほとんどのブロックチェーン台帳に対応できるいくつかのデプロイ テンプレートが用意されています。

サービスとしてのブロックチェーン

Azure は、Azure で台帳ソフトウェアを実行するサード パーティのサービスをサポートしています。 サービス プロバイダーはインフラストラクチャを管理します。 メンテナンスと更新を扱います。 サービスには高可用性とコンソーシアムの管理が含まれています。

ConsenSys は、Azure で Quorum を提供します。 Quorum は、Ethereum ベースのアプリケーションをサポートするオープンソースのプロトコル レイヤーです。

今後、他のオファリングが提供される可能性があります。

Azure Confidential Ledger

Azure Confidential Ledger は、Confidential Consortium Framework に基づいて構築されたマネージド サービスです。 Azure のコンフィデンシャル コンピューティング内に、ノードの許可型ブロックチェーン ネットワークを実装します。 Confidential Ledger は既存の暗号化に基づいて構築されています。

  • 既存の暗号化
    • 保存データ。 非アクティブなデータを、Blob Storage またはデータベースに保存するときに暗号化します。
    • 転送中のデータ。 パブリックまたはプライベート ネットワーク間を流れるデータを暗号化します。
  • コンフィデンシャル コンピューティング
    • 使用中のデータ。 メモリ内で計算時に、使用中のデータを暗号化します。

コンフィデンシャル コンピューティングでは、メイン メモリ内のデータを暗号化できます。 コンフィデンシャル コンピューティングでは、入力データが他のパーティに開示されることなく、複数のソースからのデータを処理できます。 この種のセキュアなコンピューティングは、マネー ロンダリングの検出、不正行為の検出、医療データの安全な分析など、各ステップでデータ保護が必須となるマルチパーティ コンピューティング シナリオをサポートします。

Confidential Ledger への格納データは、追加専用の台帳において不変で、耐改ざん性があります。 また、台帳は独自に検証可能です。 Confidential Ledger は、分散型ブロックチェーン ネットワークでセキュア エンクレーブを使用し、最小限のトラステッド コンピューティング ベースを必要とします。

Azure SQL Database 台帳

Azure SQL Database 台帳を利用すると、参加者はブロックチェーン ネットワークのネットワーク コンセンサスなしで、一元管理されたデータの整合性を検証できます。 一部の集中型ソリューションの場合、信頼は重要ですが、分散型インフラストラクチャは必要でありません。 この方法では、そのようなインフラストラクチャの複雑さとパフォーマンス上の影響を回避できます。

データベース台帳のアーキテクチャを示す図。

注意

現在、Azure SQL Database 台帳はパブリック プレビュー段階にあります。

台帳は、データベースの非改ざん証明機能を備えています。 この機能があるため、データが改ざんされていないことを、暗号の使用によって証明できます。

台帳は、攻撃者や、高い特権を持つユーザー (データベース、システム、クラウドの管理者など) からデータを保護するのに役立ちます。 履歴データが保持されます。 データベース内の行が更新されると、以前の値が履歴テーブルで保持されます。 これにより、アプリケーションの変更なしで保護を実現できます。

台帳は Azure SQL Database の機能です。 既存の Azure SQL Database で有効にすることができます。

オプションの比較

Confidential Ledger と Azure SQL Database 台帳

次の表では、Confidential Ledger と Azure SQL Database 台帳を比較します。

SQL Database 台帳 Confidential Ledger
非改ざん証明が必要な集中型システム はい いいえ
データに耐改ざん性が必要な分散型システム いいえ はい
リレーショナル データを改ざんから保護 はい いいえ
非構造化データを改ざんから保護 いいえ はい
ブロックチェーン内のチェーン データのオフチェーン ストアを保護 はい いいえ
ブロックチェーンから参照されるファイルのオフチェーン ストアを保護 いいえ はい
リレーショナル データがクエリ可能 はい いいえ
保存されている非構造化データをクエリ可能 いいえ はい

Confidential Ledger と Azure Blob Storage

Azure Blob Storage の不変ストレージ機能により、書き込まれたデータの読み取りは可能で、変更は不可となります。 この表では、このテクノロジと Confidential Ledger を比較します。

Confidential Ledger 不変ストレージ
機密ハードウェア エンクレーブ はい いいえ
追加専用のデータの整合性 はい はい (間隔に制限)
使用中のデータの暗号化 はい いいえ
ブロックチェーン台帳証明 はい いいえ

マルチパーティ コンピューティングの決定

この図は、Azure サービスを使用したマルチパーティ コンピューティングのオプションを要約したものです。

マルチパーティ コンピューティング オプションを選択する決定を要約した図。

このアーキテクチャの Visio ファイルをダウンロードします。

次のステップ