(57)【特許請求の範囲】
【請求項１】
ブロックチェーンアズアサービス(BaaS)プラットフォーム内のコンソーシアムブロックチェーンネットワークに対するサービス鍵の管理のためのコンピュータで実装される方法であって、
BaaSプラットフォーム内でプロビジョニングされたコンソーシアムブロックチェーンネットワークに参加するコンピュータである参加者からサービス鍵に対する要求を受信するステップと、
前記コンソーシアムブロックチェーンネットワーク内の参加者権限を記録するサービス許可表に基づいて、前記参加者にサービスが許可されると判定するステップと、
秘密鍵と公開鍵のペアである前記サービス鍵の暗号化秘密鍵および前記サービス鍵の前記公開鍵を含む鍵パッケージを作成するステップと、
前記鍵パッケージを前記参加者に送るステップであって、前記参加者が、前記参加者に関連する秘密鍵を使用して、前記サービス鍵の前記暗号化秘密鍵を暗号解読する、ステップとを含み、
前記鍵パッケージを前記参加者に送った後、前記サービス鍵が前記BaaSプラットフォームに不在である、
方法。
【請求項２】
前記参加者から前記サービス鍵に対する前記要求を受信するのに先立って、前記参加者から識別証明を受信するステップをさらに含む、
請求項１に記載の方法。
【請求項３】
前記識別証明が暗号化識別証明として受信され、前記BaaSプラットフォームが前記参加者の公開鍵を使用して前記識別証明を暗号解読する、
請求項２に記載の方法。
【請求項４】
前記参加者に関連する前記公開鍵を使用して、前記サービス鍵の前記秘密鍵を暗号化するステップをさらに含む、
請求項１に記載の方法。
【請求項５】
前記参加者に前記サービス鍵が許可されるとの判定に応じて、前記サービス鍵が鍵導出関数(KDF)キーツリーを使用して生成される、
請求項１に記載の方法。
【請求項６】
前記参加者が、前記コンソーシアムブロックチェーンネットワーク内の1つまたは複数の他の参加者とのトランザクションを暗号化するために、前記サービス鍵の前記秘密鍵を使用する、
請求項１に記載の方法。
【請求項７】
1つまたは複数のコンピュータによって実行されると、ブロックチェーンアズアサービス(BaaS)プラットフォーム内のコンソーシアムブロックチェーンネットワークに対するサービス鍵の管理のための動作を、前記1つまたは複数のコンピュータに実行させる命令が符号化された、1つまたは複数のコンピュータ可読記録媒体であって、前記動作が、
BaaSプラットフォーム内でプロビジョニングされたコンソーシアムブロックチェーンネットワークに参加するコンピュータである参加者からサービス鍵に対する要求を受信することと、
前記コンソーシアムブロックチェーンネットワーク内の参加者権限を記録するサービス許可表に基づいて、前記参加者にサービスが許可されると判定することと、
秘密鍵および公開鍵のペアである前記サービス鍵の暗号化秘密鍵および前記サービス鍵の前記公開鍵を含む鍵パッケージを作成することと、
前記鍵パッケージを前記参加者に送ることであって、前記参加者が、前記参加者に関連する秘密鍵を使用して前記サービス鍵の前記暗号化秘密鍵を暗号解読する、こととを含み、
前記鍵パッケージを前記参加者に送った後、前記サービス鍵が前記BaaSプラットフォームに不在である、
コンピュータ可読記録媒体。
【請求項８】
前記動作が、前記参加者から前記サービス鍵に対する前記要求を受信するのに先立って、前記参加者から識別証明を受信することをさらに含む、
請求項７に記載のコンピュータ可読記録媒体。
【請求項９】
前記識別証明が暗号化識別証明として受信され、前記BaaSプラットフォームが前記参加者の前記公開鍵を使用して前記識別証明を暗号解読する、
請求項８に記載のコンピュータ可読記録媒体。
【請求項１０】
前記動作が、前記参加者に関連する公開鍵を使用して、前記サービス鍵の前記秘密鍵を暗号化することをさらに含む、
請求項７に記載のコンピュータ可読記録媒体。
【請求項１１】
前記参加者に前記サービス鍵が許可されるとの判定に応じて、前記サービス鍵が鍵導出関数(KDF)キーツリーを使用して生成される、
請求項７に記載のコンピュータ可読記録媒体。
【請求項１２】
前記参加者が、前記コンソーシアムブロックチェーンネットワーク内の1つまたは複数の他の参加者とのトランザクションを暗号化するために、前記サービス鍵の前記秘密鍵を使用する、
請求項７に記載のコンピュータ可読記録媒体。
【請求項１３】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに結合され、かつ以下の動作を行うために前記1つまたは複数のコンピュータによって実行可能な命令を備えた1つまたは複数のコンピュータ可読メモリとを備えたシステムであって、前記動作が、
BaaSプラットフォーム内でプロビジョニングされたコンソーシアムブロックチェーンネットワークに参加するコンピュータである参加者からサービス鍵に対する要求を受信することと、
前記コンソーシアムブロックチェーンネットワーク内の参加者権限を記録するサービス許可表に基づいて、前記参加者にサービスが許可されると判定することと、
秘密鍵および公開鍵のペアである前記サービス鍵の暗号化秘密鍵および前記サービス鍵の前記公開鍵を含む鍵パッケージを作成することと、
前記鍵パッケージを前記参加者に送ることであって、前記参加者が、前記参加者に関連する秘密鍵を使用して、前記サービス鍵の前記暗号化秘密鍵を暗号解読する、こととを含み、
前記鍵パッケージを前記参加者に送った後、前記サービス鍵が前記BaaSプラットフォームに不在である、
システム。
【請求項１４】
前記1つまたは複数のコンピュータ可読メモリが、前記参加者から前記サービス鍵に対する前記要求を受信するのに先立って、前記参加者から識別証明を受信するように前記1つまたは複数のコンピュータによって実行可能なさらなる命令で構成される、
請求項１３に記載のシステム。
【請求項１５】
前記識別証明が暗号化識別証明として受信され、前記BaaSプラットフォームが前記参加者の公開鍵を使用して前記識別証明を暗号解読する、
請求項１４に記載のシステム。
【請求項１６】
前記1つまたは複数のコンピュータ可読メモリが、前記参加者に関連する前記公開鍵を使用して、前記サービス鍵の前記秘密鍵を暗号化するように前記1つまたは複数のコンピュータによって実行可能なさらなる命令で構成される、
請求項１３に記載のシステム。
【請求項１７】
前記参加者に前記サービス鍵が許可されるとの判定に応じて、前記サービス鍵が鍵導出関数(KDF)キーツリーを使用して生成される、
請求項１３に記載のシステム。
【請求項１８】
前記参加者が、前記コンソーシアムブロックチェーンネットワーク内の1つまたは複数の他の参加者とのトランザクションを暗号化するために、前記サービス鍵の前記秘密鍵を使用する、
請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンソーシアムブロックチェーンネットワーク内の非対称鍵管理に関する。
【背景技術】
【０００２】
コンセンサスネットワークおよび/またはブロックチェーンネットワークと呼ばれることもある分散元帳システム(DLS:Distributed ledger system)は、参加エンティティがデータをセキュアに不変に記録することを可能にする。DLSは、一般に、いずれの特定のユーザ事例(たとえば、暗号通貨)とも無関係に、ブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークの例示的なタイプは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、すべてのエンティティがDLSを使用し、コンセンサスプロセスに参加するために開かれる。プライベートブロックチェーンネットワークは、読取り許可および書込み許可を中央で制御する特定のエンティティに提供される。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御するエンティティのえり抜きのグループに提供され、アクセス制御レイヤを含む。
【０００３】
コンソーシアムブロックチェーンネットワークは、軽集中型(lightly centralized)または多中心型(multi-centered)であると説明することができ、コンソーシアムブロックチェーンネットワークの各ノードはコンソーシアム内の参加者によって動作させられる。すなわち、参加者は、ブロックチェーンネットワークに参加してコンソーシアムを形成し、コンソーシアムは、同じサービス要求を有し、すべてのノードがブロックチェーン動作を維持する。コンソーシアムブロックチェーンネットワークでは、コンソーシアムブロックチェーンは、許可されたコンソーシアム参加者に対して信頼の基礎を構築する。すべてのトランザクション情報がパブリックブロックチェーン内に平文として記録されるパブリックブロックチェーンネットワークと異なり、コンソーシアムブロックチェーンネットワーク内のデータは、暗号化され、コンソーシアムブロックチェーン上に暗号文として記録される。したがって、コンソーシアムブロックチェーンネットワークは、プライバシー隔離およびコンソーシアムブロックチェーンネットワーク内での共有を可能にするために鍵管理機能を必要とする。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書の実装形態は、ブロックチェーンネットワーク内の暗号鍵の管理のためのコンピュータで実装される方法を含む。より詳細には、本明細書の実装形態は、コンソーシアムブロックチェーンネットワーク内の非対称暗号鍵の管理を対象とする。
【０００５】
本明細書の実装形態は、ブロックチェーンアズアサービス(BaaS:blockchain-as-a-service)プラットフォーム内のコンソーシアムブロックチェーンネットワークに対するサービス鍵の管理を提供する。いくつかの実装形態では、動作は、BaaSプラットフォーム内でプロビジョニングされたコンソーシアムブロックチェーンネットワーク内の参加者からサービス鍵に対する要求を受信するステップと、コンソーシアムブロックチェーンネットワーク内の参加者権限を記録するサービス許可表に基づいて、参加者にサービス鍵が許可されると判定するステップと、サービス鍵の暗号化秘密鍵およびサービス鍵の公開鍵を含む鍵パッケージを提供するステップと、鍵パッケージを参加者に送るステップであって、参加者が、その参加者に関連する公開鍵を使用して、サービス鍵の秘密鍵を暗号解読する、ステップとを含む。他の実装形態は、コンピュータ記録デバイス上で符号化された、これらの方法の動作を実行するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
【０００６】
これらのおよび他の実装形態は、各々、随意に、以下の特徴のうちの1つまたは複数を含み得る:動作は、参加者からサービス鍵に対する要求を受信するのに先立って、参加者から識別証明を受信するステップをさらに含む;識別証明は暗号化された識別証明として受信され、BaaSプラットフォームは参加者の公開鍵を使用して識別証明を暗号解読する;動作は、参加者に関連する公開鍵を使用して、サービス鍵の秘密鍵を暗号化するステップをさらに含む;参加者にサービス鍵が許可されるとの判定に応じて、サービス鍵が鍵導出関数(KDF)キーツリーを使用して生成される;鍵パッケージを参加者に送った後、サービス鍵はBaaSプラットフォームに不在である;参加者は、コンソーシアムブロックチェーンネットワーク内の1つまたは複数の他の参加者とのトランザクションを暗号化するために、サービス鍵の秘密鍵を使用する。
【０００７】
本明細書はまた、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実装形態による動作を実行させる命令を記録した、1つまたは複数の非一時的コンピュータ可読記録媒体を提供する。
【０００８】
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供する方法の実装形態による動作を実行させる命令を記録したコンピュータ可読記録媒体とを含む。
【０００９】
本明細書によるこれらの方法は、本明細書で説明する態様および特徴の任意の組合せを含み得ることが諒解される。すなわち、本明細書による方法は、本明細書で詳細に説明する態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せをやはり含む。
【００１０】
本明細書の1つまたは複数の実装形態の詳細が、添付の図面および下記の説明に記載される。本明細書の他の特徴および利点は、説明および図面から、また特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】本明細書の実装形態を実行するために使用され得る例示的な環境を示す図である。
【図２】本明細書の実装形態による例示的な概念アーキテクチャを示す図である。
【図３Ａ】本明細書の実装形態による例示的なモジュールアーキテクチャを示す図である。
【図３Ｂ】本明細書の実装形態による例示的な流れ図である。
【図４】本明細書の実装形態に従って実行され得る例示的なプロセスを示す図である。
【発明を実施するための形態】
【００１２】
様々な図面における同様の参照番号は、同様の要素を示す。
【００１３】
本明細書の実装形態は、ブロックチェーンネットワーク内の暗号鍵の管理のためのコンピュータで実装される方法を含む。より詳細には、本明細書の実装形態は、コンソーシアムブロックチェーンネットワーク内の非対称暗号鍵として提供されるサービス鍵の管理を対象とする。
【００１４】
本明細書の実装形態は、ブロックチェーンアズアサービス(BaaS)プラットフォーム内のコンソーシアムブロックチェーンネットワークに対するサービス鍵の管理を提供する。いくつかの実装形態では、動作は、BaaSプラットフォーム内でプロビジョニングされたコンソーシアムブロックチェーンネットワーク内の参加者からサービス鍵に対する要求を受信するステップと、コンソーシアムブロックチェーンネットワーク内の参加者権限を記録するサービス許可表に基づいて、参加者にサービス鍵が許可されると判定するステップと、サービス鍵の暗号化秘密鍵およびサービス鍵の公開鍵を含む鍵パッケージを提供するステップと、鍵パッケージを参加者に送るステップであって、参加者が、その参加者に関連する公開鍵を使用して、サービス鍵の秘密鍵を暗号解読する、ステップとを含む。
【００１５】
本明細書の実装形態に関してさらなる文脈を提供するために、上記で紹介したように、(たとえば、ピアツーピアノードで構成された)コンセンサスネットワークおよびブロックチェーンネットワークと呼ばれることもある分散元帳システム(DLS)は、参加エンティティが、トランザクションをセキュアに不変に行い、データを記録することを可能にする。ブロックチェーンという用語は、概して、ビットコイン暗号通貨ネットワークに関連付けられるが、ブロックチェーンは、本明細書において、任意の特定の使用事例とは無関係に、概してDLSを指すために使用される。上記で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
【００１６】
パブリックブロックチェーンネットワークでは、コンセンサスプロセスはコンセンサスネットワークのノードによって制御される。たとえば、数百のエンティティ、数千のエンティティ、数百万のエンティティですら、パブリックブロックチェーンネットワークと協働することができ、エンティティは、各々、パブリックブロックチェーンネットワーク内の少なくとも1つのノードを動作させる。したがって、パブリックブロックチェーンネットワークは、参加エンティティに対してパブリックネットワークと見なされ得る。いくつかの例では、大部分のエンティティ(ノード)は、ブロックを有効化させ、ブロックチェーンネットワークのブロックチェーン(分散元帳)に追加するために、すべてのブロックに署名しなければならない。例示的なパブリックブロックチェーンネットワークは、ピアツーピア支払いネットワークであるビットコインネットワークを含む。ビットコインネットワークは、ブロックチェーンと呼ばれる分散元帳を活用する。上記のように、ブロックチェーンという用語は、しかしながら、概して、ビットコインネットワークとは特に無関係に分散元帳を指すために使用される。
【００１７】
概して、パブリックブロックチェーンネットワークは、公開トランザクションをサポートする。公開トランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてと共有され、グローバルブロックチェーン内に記録される。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全な状態コンセンサスである。コンセンサス(たとえば、ブロックチェーンに対してブロックを追加する合意)を達成するために、パブリックブロックチェーンネットワーク内でコンセンサスプロトコルが実装される。例示的なコンセンサスプロトコルは、限定はしないが、ビットコインネットワーク内で実装されるプルーフオブワーク(POW:proof-of-work)を含む。
【００１８】
概して、プライベートブロックチェーンネットワークは、読取り許可および書込み許可を中央で制御する特定のエンティティに提供される。エンティティは、どのノードがブロックチェーンネットワークに参加することが可能であるかを制御する。したがって、プライベートブロックチェーンネットワークは、概して、誰がネットワークに参加することが可能にされるか、およびそれらの参加レベル(たとえば、一定のトランザクションのみ)に制限を設ける、許可されたネットワークを指す。様々なタイプのアクセス制御機構が使用され得る(たとえば、既存の参加者は、新しいエンティティの追加に投票する、規制当局は、承認を制御し得る)。
【００１９】
概して、コンソーシアムブロックチェーンネットワークは、参加エンティティ間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスは、許可されたノードのセットによって制御され、1つまたは複数のノードは、それぞれのエンティティ(たとえば、金融機関、保険会社)によって動作させられる。たとえば、10個のエンティティのコンソーシアム(たとえば、金融機関、保険会社)は、コンソーシアムブロックチェーンネットワークを動作させることができ、エンティティの各々は、コンソーシアムブロックチェーンネットワーク内で少なくとも1つのノードを動作させる。したがって、コンソーシアムブロックチェーンネットワークは、参加エンティティに対してプライベートネットワークと見なされ得る。いくつかの例では、各エンティティ(ノード)は、ブロックを有効化させ、ブロックチェーンに追加するために、すべてのブロックに署名しなければならない。いくつかの例では、エンティティ(ノード)の少なくともサブセット(たとえば、少なくとも7個のエンティティ)は、ブロックを有効化させ、ブロックチェーンに追加するために、すべてのブロックに署名しなければならない。
【００２０】
本明細書の実装形態は、参加するエンティティの間で部分的に公開されているコンソーシアムブロックチェーンネットワークを参照して、本明細書でさらに詳細に説明される。しかしながら、本明細書の実装形態は、任意の適したタイプのブロックチェーンネットワーク内で実現され得ることが企図される。
【００２１】
本明細書の実装形態に関する文脈を提供するために、上で紹介したように、コンソーシアムブロックチェーンネットワークは、軽集中型または多中心型と見なされる場合があるが、これは、コンソーシアムブロックチェーンネットワークの各ノードがコンソーシアムの参加者によって動作させられるためである。たとえば、参加者(たとえば、企業)はコンソーシアムブロックチェーンネットワークに参加するコンソーシアムを形成し、その場合、同じタイプのサービス要求が使用され、すべてのノードはブロックチェーンの動作を維持する。コンソーシアムブロックチェーンネットワークでは、ブロックチェーンは、許可されたコンソーシアム参加者に対して信頼の基礎を構築する。これは、たとえば、すべてのトランザクション情報がパブリックブロックチェーン内に平文で記録され、すべての参加者に透過的であるパブリックブロックチェーンネットワークとは対照的である。コンソーシアムブロックチェーンネットワークでは、データは、暗号文として暗号化され、ブロックチェーン上に記録される。
【００２２】
したがって、コンソーシアムブロックチェーンネットワークは、鍵管理機能を利用して、プライバシー隔離(たとえば、コンソーシアムブロックチェーンネットワーク内の他の参加者からデータを隔離すること)および参加者同士の間で共有することを可能にする。すなわち、コンソーシアムブロックチェーンネットワーク内の暗号化を可能にするために、参加者によって暗号鍵が使用される。たとえば、各参加者は、データを暗号化/暗号解読するため、かつトランザクションを検証するために使用される、秘密鍵と公開鍵との対(秘密鍵-公開鍵対)を有する。たとえば、参加者の公開鍵を使用して、参加者に起因するトランザクションのそのデータを検証することができる。これに鑑みて、プライバシー隔離およびコンソーシアムブロックチェーンネットワーク内の共有を確実にするために、コンソーシアムブロックチェーンネットワーク内で鍵管理機能が実装される。
【００２３】
いくつかの実装形態では、コンソーシアムブロックチェーンネットワーク内でトランザクションを暗号化するために使用される暗号鍵の対は、サービス鍵(すなわち、秘密鍵-公開鍵対)と呼ばれることがある。いくつかの例では、サービス鍵はサービスタイプ単位で導出される。各サービス鍵は異なる参加者を有し、参加者は、コンソーシアムブロックチェーンネットワーク内に複数のサービス鍵を有し得る。たとえば、サービス鍵は、コンソーシアムブロックチェーンネットワーク内の参加者間のトランザクションに対応し得る。非限定的な例として、第1の参加者および第2の参加者は、コンソーシアムブロックチェーンネットワーク内の第1の参加者と第2の参加者との間で非公開トランザクションが行われることを可能にするそれぞれのサービス鍵を有し得る。第1の参加者および第3の参加者は、コンソーシアムブロックチェーンネットワーク内の第1の参加者と第3の参加者との間で非公開トランザクションが行われることを可能にするそれぞれのサービス鍵を有し得る。この例では、第1の参加者はサービス鍵のセットを有し、その1つは第2の参加者とのトランザクションに関し、もう1つは第3の参加者とのトランザクションに関する。
【００２４】
さらなる文脈を提供するために、企業はユーザに変わってブロックチェーンネットワークを提供し得る。たとえば、企業はブロックチェーンアズアサービス(BaaS)モデルを提供することができ、BaaSモデルを通じて、複数の異なるブロックチェーンネットワークが確立され得る。非限定的な例として、企業はBaaSプラットフォームを提供することができ、参加者の第1のコンソーシアムは、BaaSプラットフォーム内の第1のコンソーシアムブロックチェーンネットワークに参加することができ、参加者の第2のコンソーシアムは、BaaSプラットフォーム内の第2のコンソーシアムブロックチェーンネットワークに参加することができる。概して、BaaSプラットフォームを動作させる企業は、数あるサービスの中でも、インフラストラクチャサービスおよび管理サービスを提供する。
【００２５】
BaaSプラットフォーム上でホストされるコンソーシアムブロックチェーンネットワーク内の各参加者は、識別の証明をBaaSプラットフォームに提供する。たとえば、各参加者は識別証明をBaaSプラットフォームに提供する。いくつかの例では、識別証明は、セキュリティプロトコルを使用した通信を可能にする。例示的なセキュリティプロトコルは、限定はしないが、トランスポートレイヤセキュリティ(TLS)およびセキュアソケットレイヤ(SSL)を含む。たとえば、OpenSSLを使用して、参加者とBaaSプラットフォーム(たとえば、BaaSサーバ)との間のセキュアな通信に対して識別証明(SSL証明)を生成することができる。BaaSプラットフォームは、識別証明を使用して、通信の発信源の識別を確認することができる。
【００２６】
コンソーシアムブロックチェーンネットワークをプロビジョニングする際に、BaaSプラットフォームは、各コンソーシアムブロックチェーンネットワークの管理者および参加者が、サービス鍵を簡単かつセキュアに構成および取得することができることを確実にする必要がある。管理者が鍵を参加者に伝えるために、複数の鍵配信技法が使用され得る。例示的な鍵配信技法は、限定はしないが、Diffie-Hellman鍵交換およびオフライン鍵配信を含み得る。Diffie-Hellman鍵交換は、信頼できないチャネル環境における鍵交換を実装する暗号技法である。オフライン鍵配信は、鍵をメールによって指定された受取人にまたは他のチャネルに送ることによって、コンソーシアムブロックチェーンネットワークを切り離す。
【００２７】
旧来の鍵配信技法は単一鍵の送信のためには効果的であるが、コンソーシアムブロックチェーンネットワークにおける複数のサービス鍵の場合、そのような技法は望ましくない。各サービス鍵は異なる参加者の組合せを有するため、これは特に当てはまる。さらに、旧来の技法では、サービス鍵は中央データベース内に記録される必要があり、これはシステムリスク全体を高める。また、旧来の鍵配信技法は、チャネルセキュリティに大きく依存している。たとえば、鍵配信が公的環境で実行される場合、鍵を漏洩し、システムをリスクにさらすことは容易である。
【００２８】
上記の文脈に照らして、本明細書の実装形態は、コンソーシアムブロックチェーンネットワーク内の非対称暗号鍵(サービス鍵)の管理を対象とする。いくつかの実装形態では、本明細書でさらに詳細に説明するように、BaaSプラットフォームは、非対称鍵導出技術を使用してサービス鍵を導出する。しかしながら、BaaSプラットフォームはサービス鍵を保存しない。本明細書の実装形態によれば、コンソーシアムブロックチェーンネットワークの管理者は、BaaSプラットフォームを通じて異なるサービス鍵に従って参加者を許可することができる。いくつかの実装形態では、サービス鍵は、それぞれの参加者の識別証明(たとえば、BaaSプラットフォームにアップロードされたコンソーシアムブロックチェーンネットワーク内の参加者の識別証明)内に含まれた公開鍵を使用して暗号化される。このようにして、指定された参加者のみがサービス鍵の秘密鍵を暗号解読し得ることが確実にされる(上述のように、サービス鍵は秘密鍵-公開鍵対として提供される)。
【００２９】
図1は、本明細書の実装形態を実行するために使用され得る例示的な環境100を示す。いくつかの例では、例示的な環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングシステム106、108と、ネットワーク110とを含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、有線および/またはワイヤレス通信リンクを介してアクセスされ得る。
【００３０】
示した例では、コンピューティングシステム106、108は、各々、コンソーシアムブロックチェーンネットワーク102内のノードとして参加を可能にする任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスは、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例では、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。たとえば、コンピューティングシステム106は、第1のエンティティ(たとえば、ユーザA)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第1のエンティティのコンピュータ実装サービスをホストし得る。コンピューティングシステム108は、第2のエンティティ(たとえば、ユーザB)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第2のエンティティのコンピュータ実装サービスをホストし得る。図1の例では、コンソーシアムブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102に参加する第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
【００３１】
図2は、本明細書の実装形態による例示的な概念アーキテクチャ200を示す。例示的な概念アーキテクチャ200は、エンティティレイヤ202と、ホストサービスレイヤ204と、ブロックチェーンネットワークレイヤ206とを含む。示した例では、エンティティレイヤ202は、3つのエンティティ、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)を含み、各エンティティは、それぞれのトランザクション管理システム208を有する。
【００３２】
示した例では、ホストされるサービスレイヤ204は、各トランザクション管理システム208に対するインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、プロトコル(たとえば、ハイパーテキストトランスファープロトコルセキュア(HTTPS))を使用してネットワーク(たとえば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例では、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例では、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、リモートプロシージャコール(RPC:remote procedure call)を使用して行われる。いくつかの例では、インターフェース210は、それぞれのトランザクション管理システム208に対してブロックチェーンネットワークノードを「ホストする」。たとえば、インターフェース210は、ブロックチェーンネットワーク212にアクセスするためのアプリケーションプログラミングインターフェース(API)を提供する。
【００３３】
本明細書で説明するように、ブロックチェーンネットワーク212は、ブロックチェーン216内に情報を不変に記録する複数のノード214を含む、ピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に示されているが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。たとえば、各ノード214は、ブロックチェーンのコピーを記録する。いくつかの実装形態では、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加する2つ以上のエンティティ間で実行されるトランザクションに関連する情報を記録する。
【００３４】
上で紹介したように、本明細書の実装形態は、コンソーシアムブロックチェーンネットワーク内の非対称暗号鍵の管理を対象と関する。いくつかの実装形態では、コンソーシアムブロックチェーンネットワーク内の参加者に対してサービス鍵を生成するために管理者によって鍵導出関数(KDF)キーツリーが使用される。本明細書で説明するように、管理者はサービス鍵を保存しない。代わりに、管理者は、それぞれのサービス鍵に対する各参加者のアクセスを定義するデータ表を維持する。上記の例を続けると、コンソーシアムブロックチェーンネットワークは、第1の参加者と第2の参加者との間で、かつ第1の参加者と第3の参加者との間で非公開トランザクションが行われることを可能にし得る。それに応じて、この例では、データ表は、第1の参加者が第2の参加者および第3の参加者とのトランザクションに対してアクセス権限を有すること、第2の参加者が第1の参加者とのトランザクションに対してアクセス権限を有すること、および第3の参加者が第1の参加者とのトランザクションに対してアクセス権限を有することを指示する。
【００３５】
参加者がサービス鍵に対する要求を(たとえば、BaaSプラットフォーム)に送るとき、データ表に基づいて参加者のアクセス権が検証され、BaaSプラットフォームによってサービス鍵が作成され、参加者に提供される。上記の例を続けると、第1の参加者は、第2の参加者とのセキュアなトランザクションのためのサービス鍵を要求することができる。BaaSプラットフォームは、データ表を参照して、第1の参加者が第2の参加者とのセキュアなトランザクションに対するアクセス権を有することを判定することができ、それに応じて、サービス鍵(秘密鍵-公開鍵対)を生成し、サービス鍵の少なくとも一部分を暗号化し(たとえば、秘密鍵を暗号化し)、サービス鍵を第1の参加者に送ることができる。しかしながら、サービス鍵はBaaSプラットフォーム上に記録されない。
【００３６】
本明細書で説明するように、本明細書の実装形態は、サービス鍵の暗号化をBaaSプラットフォーム上のコンソーシアムブロックチェーンネットワーク参加者の識別証明と組み合わせる。このようにして、識別証明に関連する公開鍵を使用してサービス鍵が暗号化され、その参加者のみが(識別証明のために使用される秘密鍵を使用して)暗号解読し、非暗号化サービス鍵を取得することができる。
【００３７】
さらに詳細には、参加者iの識別証明が秘密(シークレット)鍵(SKID_i)および公開鍵(PKID_i)と関連付けられる。参加者は秘密鍵(SKID_i)を記録し、その秘密鍵は共有されない。公開鍵(PKID_i)はBaaSプラットフォームと共有される。参加者iに対してBaaSプラットフォームによって生成されたサービス鍵は、秘密鍵(SKSK_i)と公開鍵(PKSK_i)とを含む。本明細書の実装形態によれば、BaaSプラットフォームは、参加者に送られるサービス鍵パッケージ(データの束)を作成する。いくつかの例では、BaaSプラットフォームは、参加者の公開鍵(たとえば、PKID_i(SKSK_i))を使用してサービス鍵の秘密鍵を暗号化し、サービス鍵の公開鍵およびサービス鍵の暗号化秘密鍵として鍵パッケージ(たとえば、[PKSK_i,PKID_i(SKSK_i)])を提供する。参加者は、鍵パッケージを受信し、秘密鍵(SKID_i)を使用して秘密鍵(SKSK_i)を暗号解読する。このようにして、参加者は、コンソーシアムブロックチェーンネットワーク内でトランザクションを行うためのサービス鍵を取得する。
【００３８】
図3Aは、本明細書の実装形態による例示的なアーキテクチャ300を示す。例示的なアーキテクチャ300は、BaaSサーバ302と、クライアント304とを含む。クライアント304は各々、BaaSプラットフォーム内で提供されるコンソーシアムブロックチェーンネットワークのそれぞれの参加者と関連付けられる。
いくつかの実装形態では、BaaSサーバ302は、参加者管理モジュール306と、鍵許可モジュール308と、鍵計算モジュール310とを含む。
【００３９】
いくつかの例では、参加者管理モジュール306は、BaaSプラットフォーム内でプロビジョニングされた各コンソーシアムブロックチェーンネットワーク内の参加者を管理する。たとえば、参加者管理モジュール306は、コンソーシアムブロックチェーンネットワーク内の各参加者に関する識別証明および対応する公開鍵を記録する。いくつかの例では、鍵許可モジュール308は、参加者からのサービス鍵に対する要求を処理して、参加者に要求されたサービス鍵が許可されるかどうかを判定する。いくつかの例では、鍵計算モジュール310は、それぞれの参加者に対するKDFキーツリーを使用してサービス鍵を生成する。
【００４０】
例示のために、クライアント304(クライアントA)からの例示的なサービス鍵要求は、図3Aおよび図3Bを参照して説明されることになる。
【００４１】
図3Bは、本明細書の実装形態による例示的な流れ図320を示す。例示的な流れ図320は、クライアント304(第1の参加者(参加者1))とBaaSサーバ302とを含む。クライアント304は、BaaSプラットフォームによって提供されるコンソーシアムブロックチェーンネットワーク内の第1の参加者によって、またはその代わりに、動作させられる。BaaSサーバ302は、本明細書で説明するように、BaaSプラットフォーム内に管理機能を提供する。
【００４２】
いくつかの実装形態では、本明細書で説明するように、クライアント304に関連する参加者を含めて、複数の参加者がBaaSプラットフォームに関与してBaaSプラットフォーム内のコンソーシアムブロックチェーンネットワークを確立する。コンソーシアムブロックチェーンネットワークを確立する一環として、参加者は、それぞれの識別証明をBaaSプラットフォームにアップロードするための招待を管理者から(たとえば、BaaSサーバ302から)受信する。
【００４３】
図3Aおよび図3Bの例では、クライアント304は、その公開鍵を使用して識別証明を暗号化し、暗号化識別証明(たとえば、[SKIC_1(IC1)])をBaaSサーバ302にアップロードする。BaaSサーバ302は、それぞれの公開鍵(PKIC_1)を使用して識別証明を暗号解読し、参加者の識別を確認する。BaaSサーバ302は、コンソーシアムブロックチェーンネットワーク内でサービス鍵許可(アクセス権限)を構成する。たとえば、上記の例を続けると、BaaSプラットフォーム302は、第1の参加者が第2の参加者および第3の参加者の各々との非公開トランザクションをそれぞれ行うことが許可されることをデータ表内に記録することができる。
【００４４】
クライアント304は、サービス鍵要求をBaaSサーバ302に送る。示した例では、クライアント304は、第1の参加者と第2の参加者との間のトランザクションを暗号化するためのサービス鍵に対するサービス鍵要求(たとえば、REQ1-2)を送る。要求に応じて、BaaSサーバ302は、(たとえば、データ表を使用して)第1の参加者のアクセス権を検査し、第1の参加者が第2の参加者との非公開トランザクションを許可されることを確認する。それに応じて、BaaSサーバ302は、KDFキーツリーを使用して、対応するサービス鍵を算出する。
【００４５】
BaaSサーバ302は、サービス鍵をクライアント304に送信するための鍵パッケージを提供する。本明細書で説明するように、BaaSサーバ302は、識別証明に関連する第1の参加者の公開鍵(たとえば、PKIC_1)を使用して、サービス鍵の秘密鍵(たとえば、PKIC_1(SKSK_1))を暗号化する。鍵パッケージは、サービス鍵の公開鍵およびサービス鍵の暗号化秘密鍵(たとえば、[PKSK_1,PKIC_1(SKSK_1)])を含む。BaaSサーバ302は、データパッケージをクライアント304に送る。クライアント304は、第1の参加者の識別証明に関連する秘密鍵(たとえば、SKIC_1)を使用して、サービス鍵の暗号化秘密鍵を暗号解読する。
【００４６】
第1の参加者が新しいサービス鍵を要求するたびに、例示的な流れ図320の少なくとも一部分が繰り返される。たとえば、第3の参加者とのトランザクションを行うために、第1の参加者は、第1の参加者と第3の参加者との間のトランザクションを暗号化するためのサービス鍵に対する別のサービス鍵要求(たとえば、REQ1-3)を送る。それに応じて、BaaSサービス302は、第1の参加者がコンソーシアムブロックチェーンネットワーク内で第3の参加者とセキュアに通信することを可能にするために、別のサービス鍵を第1の参加者に提供することができる。したがって、第1の参加者は、サービス鍵の少なくとも2つのセット(たとえば、第2の参加者とのトランザクションのためのサービス鍵および第3の参加者とのトランザクションのためのサービス鍵)を維持するが、BaaSプラットフォームはサービス鍵を記録しない。
【００４７】
図4は、本明細書の実装形態に従って実行され得る例示的なプロセス400を示す。いくつかの実装形態では、例示的なプロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行され得る。
【００４８】
参加者識別証明を要求する(402)。たとえば、BaaSプラットフォーム内でコンソーシアムブロックチェーンネットワークを確立する一環として、BaaSサーバは識別証明要求をコンソーシアムブロックチェーンネットワークの各参加者に送る。参加者識別証明を受信する(404)。たとえば、識別証明要求に応じて、各参加者は、(たとえば、参加者の秘密鍵を使用して暗号化された)識別証明をBaaSサーバに送り、BaaSサーバは参加者の公開鍵を使用して識別証明を暗号解読する。
【００４９】
それぞれの参加者のアクセス権限を記録する(406)。たとえば、各参加者に関して、BaaSサーバによって1つまたは複数のサービスタイプがサービス許可表(データ表)内に記録される。上記の第1、第2、第3の参加者の例を続けると、サービス許可表は、第1の参加者が、第2の参加者および第3の参加者とセキュアなトランザクションを別々に行うことが可能であること、第2の参加者が第1の参加者とセキュアなトランザクションを行うことができること、および第3の参加者が第1の参加者とセキュアなトランザクションを行うことができることを記録することができる。
【００５０】
サービス鍵要求を受信する(408)。たとえば、コンソーシアムブロックチェーンネットワーク内でセキュアなトランザクションを行うことが可能であるためには、参加者はまず適切なサービス鍵を要求する必要がある。たとえば、第1の参加者が第2の参加者(または、第3の参加者)とセキュアなトランザクションを行うために、第1の参加者はそれぞれのサービス鍵要求をBaaSプラットフォームに送る。参加者に要求されたサービス鍵が許可されるかどうかが判定される(410)。たとえば、BaaSサーバはサービス許可表を参照して、その要求を送った参加者にそのサービスが許可されるかどうかを判定する。参加者に要求されたサービス鍵が許可されない場合、エラーを送る(412)。
【００５１】
参加者に要求されたサービス鍵が許可される場合、サービス鍵を生成する(414)。たとえば、BaaSサーバは、KDFキーツリーを使用してサービス鍵(秘密鍵-公開鍵対)を生成する。鍵パッケージを提供する(416)。たとえば、BaaSサーバは、参加者の公開鍵を使用して、サービス鍵の秘密鍵を暗号化し、サービス鍵の公開鍵および暗号化秘密鍵を含むサービス鍵パッケージを作成する。サービス鍵パッケージを送る(418)。BaaSサーバはサービス鍵パッケージを参加者に送る。本明細書で説明したように、参加者は、参加者の秘密鍵を使用して、サービス鍵の暗号化秘密鍵を暗号解読する。
【００５２】
説明した特徴は、デジタル電子回路の形で、またはコンピュータハードウェア、ファームウェア、ソフトウェアの形で、またはそれらの組合せの形で実装され得る。この装置は、プログラマブルプロセッサによって実行するために情報キャリア内で(たとえば、機械可読記録デバイス内で)有形に実施されるコンピュータプログラム製品の形で実装され得、方法ステップは、入力データを操作し、出力を生成することによって、説明した実装形態の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。説明した特徴は、データ記録システムからデータおよび命令を受信し、データ記録システムにデータおよび命令を送信するために結合された、少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む、プログラマブルシステム上で実行可能な1つまたは複数のコンピュータプログラム内で有利に実装され得る。コンピュータプログラムは、一定の動作を実行するため、または一定の結果をもたらすためにコンピュータ内で直接的または間接的に使用され得る命令のセットである。コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含めて、任意の形態のプログラミング言語で書き込まれてよく、コンピュータプログラムは、スタンドアロン型プログラムとして、またはモジュール、構成要素、サブルーチン、またはコンピューティング環境で使用するのに適した他のユニットを含めて、任意の形態で展開され得る。
【００５３】
命令のプログラムを実行するのに適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のコンピュータの唯一のプロセッサまたは複数のプロセッサのうちの1つを含む。概して、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するためのプロセッサと、命令およびデータを記録するための1つまたは複数のメモリとを含み得る。概して、コンピュータは、データファイルを記録するための1つまたは複数の大容量記録デバイスを含んでもよいか、あるいはそれと通信するように動作可能に結合されてもよく、そのようなデバイスは、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、および光ディスクを含む。コンピュータプログラム命令およびデータを有形に実施するのに適した記録デバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、およびCD-ROMディスクおよびDVD-ROMディスクを含めて、すべての形態の非揮発性メモリを含む。プロセッサおよびメモリは、特定用途向け集積回路(ASIC)によって補完され得るか、またはその中に組み込まれ得る。
【００５４】
ユーザとの対話を提供するために、これらの特徴は、情報をユーザに表示するための、陰極線管(CRT)モニタまたは液晶ディスプレイ(LCD)モニタなどのディスプレイデバイスと、キーボードと、それによりユーザがコンピュータに入力を提供することができる、マウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実装され得る。
【００５５】
これらの特徴は、データサーバなどのバックエンド構成要素を含むか、もしくはアプリケーションサーバまたはインターネットサーバなどのミドルウェア構成要素を含むか、またはグラフィカルユーザインターフェースまたはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むか、あるいはそれらの任意の組合せを含む、コンピュータシステム内で実装され得る。このシステムの構成要素は、通信ネットワークなど、任意の形態または媒体のデジタルデータ通信によって接続され得る。通信ネットワークの例は、たとえば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、ならびにコンピュータおよびインターネット形成するネットワークを含む。
【００５６】
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、概して、互いから離れており、一般に、説明したネットワークなど、ネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行し、互いに対してクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
【００５７】
加えて、図に示した論理フローは、所望の結果を達成するために、示した特定の順序、または連続的順序を必要としない。加えて、他のステップを提供することができ、または説明したフローからステップをなくすことができ、説明したシステムに他の構成要素を追加すること、または説明したシステムから他の要素を除去することができる。したがって、他の実装形態が以下の特許請求の範囲内に入る。
【００５８】
本明細書のいくつかの実装形態について説明してきた。それでもなお、本明細書の趣旨および範囲から逸脱せずに、様々な修正を行うことが可能であることを理解されよう。したがって、他の実装形態が以下の特許請求の範囲内に入る。
【符号の説明】
【００５９】
100  環境
102  コンソーシアムブロックチェーンネットワーク
106  コンピューティングシステム
108  コンピューティングシステム
110  ネットワーク
200  概念アーキテクチャ
202  エンティティレイヤ
204  ホストサービスレイヤ
206  ブロックチェーンネットワークレイヤ
208  トランザクション管理システム
210  インターフェース
212  ブロックチェーンネットワーク
214  ノード
216  ブロックチェーン
300  アーキテクチャ
302  BaaSサーバ
304  クライアント
306  参加者管理モジュール
308  鍵許可モジュール
310  鍵計算モジュール
320  流れ図
400  プロセス
【図１】
0006873235.tif 000002
【図２】
0006873235.tif 000003
【図３Ａ】
0006873235.tif 000004
【図３Ｂ】
0006873235.tif 000005
【図４】
0006873235.tif 000006