(57)【特許請求の範囲】
【請求項１】
コンセンサスノード間の通信と、コンセンサスノードとクライアントノードとの間の通信とを分離するためのコンピュータで実行される方法であって、
コンセンサスノードによって、証明書署名要求(CSR)を生成するステップと、
前記CSRを第1の認証局(CA)に送信するステップと、
前記CSRに応答した第1のCAからの前記コンセンサスノードの第1の公開鍵証明書、および第1の1つまたは複数のCAによって発行された1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書を受信するステップと、
前記CSRを第2のCAに送信するステップと、
前記CSRに応答した前記第2のCAからの前記コンセンサスノードの第2の公開鍵証明書、および第2の1つまたは複数のCAによって発行された1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書を受信するステップと、
前記コンセンサスノード上で、前記第1の公開鍵証明書および前記1つまたは複数の他のコンセンサスノードの前記第1の1つまたは複数の公開鍵証明書を含む第1のトラストストアと、前記第2の公開鍵証明書および前記1つまたは複数のクライアントノードの前記第2の1つまたは複数の公開鍵証明書を含む第2のトラストストアとを、構成するステップとを備える、
コンピュータで実行される方法。
【請求項２】
前記第1の1つまたは複数のCAおよび前記第2の1つまたは複数のCAを決定するステップと、
前記第1の1つまたは複数のCAおよび前記第2の1つまたは複数のCAからルート証明書を受信するステップと、
前記第1の1つまたは複数のCAおよび前記第2の1つまたは複数のCAの対応する公開鍵に基づいて前記ルート証明書を検証するステップとをさらに備える、
請求項1に記載のコンピュータで実行される方法。
【請求項３】
前記CSRが、前記第1の公開鍵証明書または前記第2の公開鍵証明書に含まれるべき公開鍵および情報を含む、
請求項1に記載のコンピュータで実行される方法。
【請求項４】
前記CSRが、秘密鍵を使用して前記コンセンサスノードによってデジタル署名される、
請求項2に記載のコンピュータで実行される方法。
【請求項５】
前記第1の1つまたは複数の公開鍵証明書の一部分のうちの少なくとも1つが対応するコンセンサスノードによって自己署名される、または、前記第2の1つまたは複数の公開鍵証明書の一部分が対応するクライアントノードによって自己署名される、
請求項1に記載のコンピュータで実行される方法。
【請求項６】
前記コンセンサスノードの対応する秘密鍵を使用して、公開鍵の自己署名された証明書を生成するステップと、
前記コンセンサスノード上で、前記コンセンサスノードの前記秘密鍵および前記自己署名された証明書を構成するステップとをさらに備える、
請求項1に記載のコンピュータで実行される方法。
【請求項７】
前記第1の公開鍵証明書、前記第1の1つまたは複数の公開鍵証明書、前記第2の公開鍵証明書、および前記第2の1つまたは複数の公開鍵証明書が、トランスポートレイヤセキュリティ(TLS)証明書である、
請求項1に記載のコンピュータで実行される方法。
【請求項８】
1つまたは複数のプロセッサに結合され、かつ前記1つまたは複数のプロセッサによって実行されると、請求項1から7のいずれか一項に記載の方法に従った動作を前記1つまたは複数のプロセッサに実行させる命令が記録された、非一時的コンピュータ可読記録媒体。
【請求項９】
コンピューティングデバイスと、
前記コンピューティングデバイスに結合され、かつ前記コンピューティングデバイスによって実行されると、請求項1から7のいずれか一項に記載の方法に従った動作を前記コンピューティングデバイスに実行させる命令が記録された、コンピュータ可読記録デバイスとを備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンセンサスノードおよびクライアントノードの間での通信の管理に関する。
【背景技術】
【０００２】
ブロックチェーンシステム、コンセンサスネットワーク、分散型台帳システム(DLS)ネットワーク、またはブロックチェーンとも呼ばれ得るブロックチェーンネットワークは、参加するエンティティが安全にかつ変更不可能にデータを記録することを可能にする。ブロックチェーンはトランザクションの台帳として記述されることが可能であり、ブロックチェーンの複数のコピーがブロックチェーンネットワークにわたって記録される。例示的なタイプのブロックチェーンには、パブリックブロックチェーン、コンソーシアムブロックチェーン、およびプライベートブロックチェーンがあり得る。パブリックブロックチェーンは、そのブロックチェーンを使用しコンセンサスプロセスに参加するためにすべてのエンティティに対して開かれている。コンソーシアムブロックチェーンは、コンセンサスプロセスがノードの事前に選択されたセットによって制御される、ブロックチェーンである。プライベートブロックチェーンは、読取りパーミッションおよび書込みパーミッションを集中的に制御する特定のエンティティだけに提供される。
【０００３】
コンソーシアムブロックチェーンシステムは、コンソーシアムネットワークを使用するコンセンサスノードおよびクライアントノード(またはユーザ)を含み得る。一方では、コンセンサスノードは、コンセンサスに達するために他のコンセンサスノードと通信する。他方では、コンセンサスノードは、新しいトランザクションを受け入れてブロックに追加するために、クライアントノードと通信する。いくつかの場合、コンセンサスノードは、コンソーシアムシステム、またはセキュリティレベルの異なる他のコアシステムの、事前に選択されたノードのネットワークとも通信する。したがって、データのプライバシーおよびセキュリティを保護するために、異なるタイプの通信に対して境界を設定することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の実装形態は、コンセンサスノード間の通信と、コンセンサスノードとクライアントノードとの間の通信とを管理することを対象とする。より具体的には、本開示の実装形態は、クライアントノードがコンセンサスノード間で通信されるコンセンサスメッセージにアクセスできないように、コンセンサスノード間の通信、およびコンセンサスノードとクライアントノードとの間の通信のために、それぞれの認証局(CA)によって発行されたルート証明書を構成することを対象とする。
【０００５】
いくつかの実装形態では、活動は、コンセンサスノードによって、証明書署名要求(CSR: certificate signing request)を生成することと、CSRを第1の認証局(CA)に送信することと、CSRに応答した第1のCAからのコンセンサスノードの第1の公開鍵証明書、および第1の1つまたは複数のCAによって発行された1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書を受信することと、CSRを第2のCAに送信することと、CSRに応答した第2のCAからのコンセンサスノードの第2の公開鍵証明書、および第2の1つまたは複数のCAによって発行された1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書を受信することと、コンセンサスノード上で、第1の公開鍵証明書および1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書を含む第1のトラストストアと、第2の公開鍵証明書および1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書を含む第2のトラストストアとを構成することとを含む。他の実装形態は、対応するシステムと、装置と、コンピュータ記録デバイスに符号化される、方法の活動を実行するように構成されるコンピュータプログラムとを含む。
【０００６】
これらのおよび他の実装形態は各々、任意選択で以下の特徴のうちの1つまたは複数を含むことがあり、それらの特徴とは、第1の1つまたは複数のCAおよび第2の1つまたは複数のCAを決定すること、第1の1つまたは複数のCAおよび第2の1つまたは複数のCAからルート証明書を受信すること、第1の1つまたは複数のCAおよび第2の1つまたは複数のCAの対応する公開鍵に基づいてルート証明書を検証することであって、CSRが第1の公開鍵証明書または第2の公開鍵証明書に含まれるべき公開鍵および情報を含み、CSRが秘密鍵を使用してコンセンサスノードによってデジタル署名され、第1の1つまたは複数の公開鍵証明書の一部分のうちの少なくとも1つが対応するコンセンサスノードによって自己署名され、または第2の1つまたは複数の公開鍵証明書の一部分が対応するクライアントノードによって自己署名される、検証すること、コンセンサスノードの対応する秘密鍵を使用して公開鍵の自己署名された証明書を生成すること、ならびに、コンセンサスノード上で、コンセンサスノードの秘密鍵および自己署名された証明書を構成することであって、第1の公開鍵証明書、第1の1つまたは複数の公開鍵証明書、第2の公開鍵証明書、および第2の1つまたは複数の公開鍵証明書が、トランスポートレイヤセキュリティ(TLS)証明書である、構成することである。
【０００７】
本開示はまた、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実装形態に従って1つまたは複数のプロセッサに動作を実行させる命令が記録された、1つまたは複数のプロセッサに結合される1つまたは複数の非一時的コンピュータ可読記録媒体を提供する。
【０００８】
本開示はさらに、本明細書で提供される方法を実施するためのシステムを提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供される方法の実装形態に従って動作を実行させる命令が記録された、1つまたは複数のプロセッサに結合されるコンピュータ可読記録媒体とを含む。
【０００９】
本開示による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることを了解されたい。すなわち、本開示による方法は、本明細書で特に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
【００１０】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴および利点が、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】本開示の実装形態を実行するために使用され得る例示的な環境の図である。
【図２】本開示の実装形態による例示的な概念のアーキテクチャの図である。
【図３Ａ】本開示の実装形態による、コンセンサスノード間の通信を構成する例示的なプロセスの図である。
【図３Ｂ】本開示の実装形態による、コンセンサスノードとクライアントノードとの間の通信を構成する例示的なプロセスの図である。
【図４】本開示の実装形態による、コンセンサスノードとクライアントノードとの間の通信のための例示的な構成の図である。
【図５】本開示の実装形態による、コンセンサスノードおよびクライアントノードの通信を管理する例示的な方法の図である。
【発明を実施するための形態】
【００１２】
様々な図における同様の参照記号は同様の要素を示す。
【００１３】
本開示の実装形態は、コンセンサスノード間の通信と、コンセンサスノードとクライアントノードとの間の通信とを管理することを対象とする。より具体的には、本開示の実装形態は、クライアントノードがコンセンサスノード間で通信されるコンセンサスメッセージにアクセスできないように、コンセンサスノード間の通信、およびコンセンサスノードとクライアントノードとの間の通信のために、それぞれの認証局(CA)によって発行されたルート証明書を構成することを対象とする。
【００１４】
いくつかの実装形態では、活動は、コンセンサスノードによって、証明書署名要求(CSR)を生成することと、CSRを第1の認証局(CA)に送信することと、CSRに応答した第1のCAからのコンセンサスノードの第1の公開鍵証明書、および第1の1つまたは複数のCAによって発行された1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書を受信することと、CSRを第2のCAに送信することと、CSRに応答した第2のCAからのコンセンサスノードの第2の公開鍵証明書、および第2の1つまたは複数のCAによって発行された1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書を受信することと、コンセンサスノード上で、第1の公開鍵証明書および1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書を含む第1のトラストストアと、第2の公開鍵証明書および1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書を含む第2のトラストストアとを構成することとを含む。
【００１５】
本開示の、および上で紹介された実装形態のさらなる文脈を提供すると、コンセンサスネットワーク(たとえば、ピアツーピアノードからなる)、分散型台帳システム、または単にブロックチェーンとも呼ばれ得る、ブロックチェーンネットワークは、参加するエンティティが安全かつ変更不可能にトランザクションを行いデータを記録することを可能にする。ブロックチェーンは、パブリックブロックチェーン、プライベートブロックチェーン、またはコンソーシアムブロックチェーンとして提供され得る。本開示の実装形態は、参加するエンティティの間で公開されているパブリックブロックチェーンに関して、本明細書でさらに詳細に説明される。しかしながら、本開示の実装形態はあらゆる適切なタイプのブロックチェーンにおいて実現され得ることが企図される。
【００１６】
コンソーシアムブロックチェーンでは、コンセンサスプロセスがノードの認可されたセットによって制御され、1つまたは複数のノードがそれぞれのエンティティ(たとえば、企業)によって運営される。たとえば、10個のエンティティ(たとえば、会社)のコンソーシアムがコンソーシアムブロックチェーンシステムを運営することができ、それらの各々がコンソーシアムDLSの中の少なくとも1つのノードを運営する。したがって、コンソーシアムブロックチェーンシステムは、参加するエンティティに関して非公開のネットワークであると見なされ得る。いくつかの例では、ブロックが有効となりブロックチェーンに追加されるには、各エンティティ(ノード)がそれぞれのブロックに署名しなければならない。いくつかの例では、ブロックが有効となりブロックチェーンに追加されるには、エンティティ(ノード)の少なくともサブセット(たとえば、少なくとも7個のエンティティ)がそれぞれのブロックに署名しなければならない。例示的なコンソーシアムブロックチェーンシステムには、ニューヨーク州ニューヨークのJ.P. Morgan Chase & CO.によって開発されたQuorumがある。Quorumは、金融の使用事例のために特別に設計された、企業向けのパーミッションドブロックチェーンインフラストラクチャとして説明され得る。Quorumは、スイス、ツークのEthereum Foundationによって提供されるEthereumブロックチェーンの基本コードである、Go Ethereumから構築される。
【００１７】
一般に、コンソーシアムブロックチェーンシステムは、許可を得てコンソーシアムブロックチェーンシステムに参加しているエンティティ間のトランザクションをサポートする。トランザクションはコンソーシアムブロックチェーンシステム内のノードのすべてと共有され、それは、ブロックチェーンがすべてのノードにわたって複製されるからである。すなわち、すべてのノードがブロックチェーンに関して完全にコンセンサスのとれた状態にある。コンセンサス(たとえば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、コンソーシアムブロックチェーンネットワーク内でコンセンサスプロトコルが実装される。例示的なコンセンサスプロトコルには、限定はされないが、ビットコインネットワークにおいて実装されるプルーフオブワーク(POW)がある。
【００１８】
本開示の実装形態は、上記の背景に鑑みて本明細書においてさらに詳細に説明される。より具体的には、上で紹介されたように、本開示の実装形態は、クライアントノードがコンセンサスノード間で通信されるコンセンサスメッセージにアクセスできないように、コンセンサスノード間の通信、およびコンセンサスノードとクライアントノードとの間の通信のために、それぞれのCAによって発行されたルート証明書を構成することを対象とする。
【００１９】
図1は、本開示の実装形態を実行するために使用され得る例示的な環境100を図示する。いくつかの例では、例示的な環境100は、エンティティがパブリックブロックチェーン102に参加することを可能にする。例示的な環境100は、コンピューティングシステム106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は有線および/またはワイヤレス通信リンクを通じてアクセスされ得る。
【００２０】
図示される例では、コンピューティングシステム106、108は各々、ブロックチェーン104にトランザクションを記録するための、コンソーシアムブロックチェーンシステム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は、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)という3つのエンティティを含み、各エンティティがそれぞれのトランザクション管理システム208をもつ。
【００２２】
図示される例では、ホストされるサービスレイヤ204は、各トランザクション管理システム208のためのブロックチェーンインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、通信プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用してネットワーク(たとえば、図1のネットワーク110)を通じてそれぞれのブロックチェーンインターフェース210と通信する。いくつかの例では、各ブロックチェーンインターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンレイヤ206との間の通信接続を提供する。より具体的には、各ブロックチェーンインターフェース210は、それぞれのエンティティがブロックチェーンレイヤ206のコンソーシアムブロックチェーンシステム212に記録されるトランザクションを行うことを可能にする。いくつかの例では、ブロックチェーンインターフェース210とブロックチェーンレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して行われる。いくつかの例では、ブロックチェーンインターフェース210は、それぞれのトランザクション管理システム208のためのコンセンサスノードを「ホスト」する。たとえば、ブロックチェーンインターフェース210は、コンソーシアムブロックチェーンシステム212へのアクセスのためにアプリケーションプログラミングインターフェース(API)を提供する。
【００２３】
ブロックチェーンシステムは、コンセンサスノードおよびクライアントノードを含み得る。コンセンサスノードは、コンセンサスプロセスに参加することができる。クライアントノードは、ブロックチェーンシステムを使用できるが、コンセンサスプロセスに参加しない。いくつかの実装形態では、コンセンサスノードは、他の目的でブロックチェーンシステムを使用しながらコンセンサスプロセスに参加することができる。いくつかの実装形態では、コンセンサスノードは、ユーザがクライアントノードを使用してトランザクションをブロックチェーンに提出できるように、クライアントノードと通信することができる。コンセンサスノードはまた、クライアントノードからのトランザクションをブロックチェーンに追加するために、互いに通信してコンセンサスに達することができる。
【００２４】
いくつかの実装形態では、コンセンサスノード間の通信、およびコンセンサスノードとクライアントノードとの間の通信は、通信のセキュリティを確実にするために、トランスポートレイヤセキュリティ(TLS)プロトコルなどの、暗号プロトコルに基づいて実行され得る。
【００２５】
プライバシーを向上させ、様々なノードによってアクセスされ得るデータを管理するために、コンセンサスノード間の通信は、コンセンサスノードとクライアントノードとの間の通信から分離され得る。いくつかの実装形態では、この分離は、異なるノードの公開鍵証明書の異なるTLSトラストストアを形成することによって行われ得る。公開鍵証明書は、コンセンサスノード間の通信およびコンセンサスノードとクライアントノードとの間の通信のためにそれぞれの認証局(CA)によって発行され得る。
【００２６】
図3Aは、本開示の実装形態による、コンセンサスノード302a間の通信を構成する例示的なプロセス300aを図示する。コンセンサスノード302aは、ブロックチェーンネットワークに接続される、コンピュータ、スマートフォン、またはサーバなどの任意の適切な電子デバイスを使用して実装され得る。
【００２７】
306aにおいて、コンセンサスノード302aは、信用できる1つまたは複数のCA304aを特定する。いくつかの実装形態では、CAは公開鍵証明書を発行するエンティティであり得る。公開鍵証明書は、証明書の指定された対象による公開鍵の所有権を証明するために使用され得る。指定された対象者はCA自体であってよく、または自身の公開鍵の証明を望む他のエンティティであってよい。CAによって所有され自己署名される公開鍵は、ルート証明書になることができる。いくつかの場合、コンセンサスノード302aの少なくとも一部分が、CAとして特定され得る。そのような場合、コンセンサスノードは、公開鍵証明書を生成するために自身の公開鍵を自己署名することができる。いくつかの場合、TLSプロトコルに基づいて生成される公開鍵証明書は、TLS証明書と呼ばれ得る。
【００２８】
308aにおいて、CA304aは、公開鍵および自己署名された証明書を準備する。自己署名された証明書は、それらの対応する公開鍵のCAルート証明書であり得る。
【００２９】
310aにおいて、CA304aは、自己署名された証明書をコンセンサスノード302aに送信する。いくつかの実装形態では、自己署名された証明書は、対応する秘密鍵を使用して署名されるCA304aのデジタル署名を含み得る。したがって、コンセンサスノード302aは、CA304aの公開鍵を使用して、証明書がCA304aによって発行されることを検証することができる。
【００３０】
312aにおいて、コンセンサスノード302aは、証明書署名要求(CSR)を生成する。CSRは、TLS証明書を請求するときにCA304aに与えられる、符号化されたテキストのブロックである。いくつかの例では、CSRは、組織名、一般名(ドメイン名)、地域、および国などの、TLS証明書に含まれる情報を含み得る。CSRはまた、TLS証明書に含まれるべき公開鍵を含み得る。コンセンサスノード302aは、CSRを作成するときに秘密鍵を作成し、秘密鍵を使用して対応するCSRに署名することができる。
【００３１】
314aにおいて、コンセンサスノード302aは、CSRをCA304aに送信する。316aにおいて、CA304aは、CSRに応答してコンセンサスノード302aのための公開鍵証明書を生成する。CA304aは、コンセンサスノード302aのための公開鍵証明書を生成する前に、コンセンサスノード302aからのCSRに対応するデジタル署名が正しいかどうかを検証することができる。
【００３２】
318aにおいて、CA304aは、公開鍵証明書をコンセンサスノード302aに送信する。CA304aは、ブロックチェーンネットワークの中のコンセンサスノード302aのすべてに公開鍵証明書を送信することができる。したがって、各コンセンサスノード302aは、ネットワークの中のすべての他のコンセンサスノード302aの公開鍵証明書のコピーを有し得る。
【００３３】
320aにおいて、コンセンサスノード302aは、トラストストア、秘密鍵、および自己署名された証明書を構成する。トラストストアは、信用されるCA304aからのTLS証明書を記録するために使用され得る。信用されるCAからのTLS証明書を受信して検証することによって、コンセンサスノード302aは、証明された公開鍵を使用して、メッセージを暗号化し、ネットワークの中の他のコンセンサスノードと安全に通信することができる。いくつかの実装形態では、コンセンサスノード302aはまた、対応するコンセンサスノード302aの対応する秘密鍵を使用して、自己署名された公開鍵証明書を生成することができる。秘密鍵はまた、対応するコンセンサスノード302aの公開鍵を使用して暗号化されるブロックチェーンネットワークの中の他のノードからのメッセージを復号するために使用され得る。
【００３４】
いくつかの実装形態では、ブロックチェーンネットワークは、コンセンサスノード間の通信およびコンセンサスノードとクライアントノードとの間の通信が分離されるように構成され得る。すなわち、クライアントノードは、コンセンサスノード間で通信されるデータにアクセスできず、コンセンサスノードは、他のコンセンサスノードとそれらに接続されるクライアントノードとの間で通信されるデータにアクセスできない。いくつかの例では、コンセンサスを実行するコンセンサスノードは、CAの第1のセットからTLS証明書を要求することができ、互いに通信するコンセンサスノード/クライアントノードのペアは、CAの第1のセットとは異なるCAからのTLS証明書を要求することができ、またはそれらのデータの公開鍵暗号化を実行しない。
【００３５】
図3Bは、本開示の実装形態による、コンセンサスノードとクライアントノード302bとの間の通信を構成するための例示的なプロセス300bを図示する。
【００３６】
306bにおいて、コンセンサスノードおよびクライアントノード302bは、図3Aを参照して上で論じられる例示的なプロセス300aにおいて特定されるCA304aとは異なる1つまたは複数のCA304bを特定する。いくつかの実装形態では、各コンセンサスノード/クライアントノードのペアは、それらの通信が互いに分離され得るように、異なるCAを特定することができる。いくつかの実装形態では、各コンセンサスノード/クライアントノードのペアが通信する各クライアントノードおよびコンセンサスノードは、小規模なネットワークを形成し、コンセンサスのために他のクライアントノードまたはコンセンサスノード302aによって使用されない1つまたは複数のCAを特定することができる。いくつかの場合、コンセンサスノードとクライアントノード302bの少なくとも一部分が、CAとして自身を特定することができる。そのような場合、それらのコンセンサスノードは、例示的なプロセス300aの中の他のコンセンサスノードとの通信のために証明書がコンセンサスノード302aによって自己署名されない限り、公開鍵証明書を生成するためにそれらの公開鍵を自己署名することができる。
【００３７】
308bにおいて、CA304bは、公開鍵および自己署名された証明書を準備する。自己署名された証明書は、それらの対応する公開鍵のCAルート証明書であり得る。
【００３８】
310bにおいて、CA304bは、自己署名された証明書をコンセンサスノードおよびクライアントノード302bに送信する。いくつかの実装形態では、自己署名された証明書は、それぞれの秘密鍵を使用して署名されるCA304bのデジタル署名を含み得る。したがって、コンセンサスノードおよびクライアントノード302bは、CA304bの公開鍵を使用して、証明書がCA304bによって発行されることを検証することができる。
【００３９】
312bにおいて、コンセンサスノードおよびクライアントノード302bはCSRを生成する。コンセンサスノードおよびクライアントノード302bは、CSRを作成するときに秘密鍵を作成し、秘密鍵を使用して対応するCSRに署名することができる。
【００４０】
314bにおいて、コンセンサスノードおよびクライアントノード302bは、CSRをCA304bに送信する。316bにおいて、CA304bは、CSRに応答してコンセンサスノードおよびクライアントノード302bのための公開鍵証明書を生成する。CA304bは、コンセンサスノードのための公開鍵証明書を生成する前に、CSRに対応するデジタル署名が正しいかどうかを検証することができる。
【００４１】
318bにおいて、CA304bは、公開鍵証明書をコンセンサスノードおよびクライアントノード302bに送信する。いくつかの実装形態では、異なるCAは、小規模な証明書トラストストアを形成するために、公開鍵証明書を異なるコンセンサスノード/クライアントノードのペアに送信することができる。したがって、各クライアントノードのペアは、通信のプライバシーを確実にするために、異なるCAによって発行されるコンセンサスノードの公開鍵証明書を有し得る。
【００４２】
320bにおいて、コンセンサスノードおよびクライアントノード302bは、トラストストア、秘密鍵、および自己署名された証明書を構成する。異なるクライアントノードが、暗号化された通信のためにTLS証明書の異なるトラストストアを有することがあり、コンセンサスノードが、暗号化された通信のためのTLS証明書の固有のトラストストアを有することがあるので、異なる関係者によって実行される通信のデータプライバシーが保護され得る。
【００４３】
図4は、本開示の実装形態による、コンセンサスノードとクライアントノードとの間の通信のための、例示的なブロックチェーンシステム400および構成を図示する。高水準において、例示的なブロックチェーンシステム400は、ノード1 302、ノード2 304、ノード3 306、およびノード4 308という4つのコンセンサスノードを含む。3つのクライアントノード、クライアント1 310、クライアント2 312、およびクライアント3 314は、コンセンサスノードに接続される。クライアント1 310はノード1 310およびノード2 312に接続され、クライアント2 312はノード3 306に接続され、クライアント3 314はノード4 308に接続される。コンセンサスノードは、ユーザがクライアントノードからのトランザクションをコンセンサスノードに提出できるように、クライアントノードと通信することができる。コンセンサスノードは、クライアントノードからのトランザクションをブロックチェーンに追加するために、互いに通信してコンセンサスプロセスを実行することができる。
【００４４】
コンセンサスノード間の通信のために、ノード1 402、ノード2 404、ノード3 406、およびノード4 408は各々、トラストストアAのブロックチェーンレプリカを取得することができる。トラストストアAは、CAの第1のセットによって発行されるノード1 402、ノード2 404、ノード3 406、およびノード4 408のTLS証明書を含み得る。いくつかの実装形態では、コンセンサスノードは、対応する公開鍵証明書を自己署名するためのCAであり得る。ノード1 402、ノード2 404、ノード3 406、およびノード4 408はまた、それぞれの秘密鍵および自己署名された証明書を用いて構成され得る。したがって、ノード1 402、ノード2 404、ノード3 406、およびノード4 408の間の通信は、トラストストアAのTLS証明書に基づき得る。
【００４５】
クライアント1 410は、ノード1 402およびノード2 404との通信のために接続される。クライアント1 410、ノード1 402、およびノード2 404は各々、トラストストアBのブロックチェーンレプリカを取得することができる。トラストストアBは、CAの第2のセットによって発行される、クライアント1 410、ノード1 402、およびノード2 404のTLS証明書を含み得る。やはり、署名機関が、分離されるべき他の通信のためのTLS証明書に署名するために使用される機関とは異なる限り、TLS証明書が自己署名され得る。クライアント1 410、ノード1 402、およびノード2 404はまた、それぞれの秘密鍵および自己署名された証明書を用いて構成され得る。したがって、クライアント1 410とノード1 402との間の通信、およびクライアント1 410とノード2 404の間の通信は、トラストストアBのTLS証明書に基づき得る。
【００４６】
いくつかの実装形態では、ノード1 402およびノード2 404はトラストストアAとトラストストアBの両方を維持するが、それらは、トラストストアAのTLS証明書のみに基づいて互いに通信することができる。それらは、トラストストアBのTLS証明書に基づいて通信できない。それに対応して、クライアント1 410は、ノード1 402とノード2 404との間で通信されるコンセンサスメッセージを見ることができない。
【００４７】
クライアント2 412は、ノード3 406との通信のために接続される。クライアント2 412およびノード3 406は各々、トラストストアCのブロックチェーンレプリカを取得することができる。トラストストアCは、CAの第3のセットによって発行される、クライアント2 412およびノード3 406のTLS証明書を含み得る。クライアント2 412、およびノード3 406はまた、それぞれの秘密鍵および自己署名された証明書を用いて構成され得る。したがって、クライアント2 412とノード3 406の間の通信は、トラストストアCのTLS証明書に基づき得る。
【００４８】
クライアント3 414は、ノード4 408と接続される。クライアント3 414とノード4 408との間の通信は暗号化されない。したがって、クライアント3 414は、通信のための公開鍵証明書を維持する必要がない。しかしながら、クライアント3 414は、ノード4 408と通信するためにクライアント3 414を装う他のノードなどの、身元の乗っ取りの危険性を想定することができる。
【００４９】
図5は、本開示の実装形態による、コンセンサスノードおよびクライアントノードの通信を管理するための例示的なプロセス500を図示する。提示を明確にするために、以下の説明は概して、この説明では他の図面の文脈で例示的なプロセス500を説明する。しかしながら、例示的なプロセス500は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって、適宜実行され得ることが理解されるであろう。いくつかの実装形態では、例示的なプロセス500の様々なステップは、並列に、組合せで、ループで、または任意の順序で行われ得る。
【００５０】
502において、コンセンサスノードはCSRを生成する。いくつかの実装形態では、CSRを生成する前に、コンセンサスノードは、第1の1つまたは複数のCA、および第2の1つまたは複数のCAを特定することができる。コンセンサスノードはまた、第1の1つまたは複数のCAおよび第2の1つまたは複数のCAからルート証明書を受信し、第1の1つまたは複数のCAおよび第2の1つまたは複数のCAのそれぞれの公開鍵に基づいてルート証明書を検証することができる。いくつかの実装形態では、CSRは、第1の公開鍵証明書または第2の公開鍵証明書に含まれるべき公開鍵および情報を含む。いくつかの実装形態では、CSRは、秘密鍵を使用してコンセンサスノードによってデジタル署名される。
【００５１】
504において、コンセンサスノードはCSRを第1のCAに送信する。
【００５２】
506において、コンセンサスノードは、CSRに応答した第1のCAからのコンセンサスノードの第1の公開鍵証明書、および第1の1つまたは複数のCAによって発行された1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書を受信する。いくつかの実装形態では、第1の1つまたは複数の公開鍵証明書の一部分のうちの少なくとも1つが対応するコンセンサスノードによって自己署名され、または、第2の1つまたは複数の公開鍵証明書の一部分が対応するクライアントノードによって自己署名される。
【００５３】
508において、コンセンサスノードはCSRを第2のCAに送信する。いくつかの実装形態では、第1の1つまたは複数の公開鍵証明書の一部分のうちの少なくとも1つが対応するコンセンサスノードによって自己署名され、または、第2の1つまたは複数の公開鍵証明書の一部分が対応するクライアントノードによって自己署名される。
【００５４】
510において、コンセンサスノードは、CSRに応答した第2のCAからのコンセンサスノードの第2の公開鍵証明書、および第2の1つまたは複数のCAによって発行された1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書を受信する。
【００５５】
512において、コンセンサスノードは、第1のトラストストアおよび第2のトラストストアを構成する。第1のトラストストアは、第1の公開鍵証明書と、1つまたは複数の他のコンセンサスノードの第1の1つまたは複数の公開鍵証明書とを含む。第2のトラストストアは、第2の公開鍵証明書と、1つまたは複数のクライアントノードの第2の1つまたは複数の公開鍵証明書とを含む。
【００５６】
いくつかの実装形態では、コンセンサスノードは、コンセンサスノードの対応する秘密鍵を使用して、公開鍵の自己署名された証明書を生成することができる。コンセンサスノードはまた、コンセンサスノードの秘密鍵および自己署名された証明書を構成することができる。
【００５７】
いくつかの実装形態では、第1の公開鍵証明書、第1の1つまたは複数の公開鍵証明書、第2の公開鍵証明書、および第2の1つまたは複数の公開鍵証明書は、TLS証明書である。
【００５８】
本明細書で説明される実装形態および動作は、本明細書で開示される構造もしくはそれらのうちの1つまたは複数の組合せを含めて、デジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで実装され得る。動作は、1つまたは複数のコンピュータ可読記録デバイスに記録される、または他のソースから受信されるデータに対して、データ処理装置によって実行される動作として実施され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、前述の1つのプログラマブルプロセッサ、1つのコンピュータ、1つのシステムオンチップ、またはこれらの複数、または組合せを例として含む、データを処理するための装置、デバイス、および機械を包含し得る。装置は、専用論理回路、たとえば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含み得る。装置はまた、対象のコンピュータプログラムのための実行環境を作り出すコード、たとえば、プロセッサファームウェア、プロトロルスタック、データベース管理システム、オペレーティングシステム(たとえば、1つのオペレーティングシステムまたはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはこれらの1つまたは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００５９】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれてよく、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットを含む、任意の形式で展開されてよい。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに記録される1つまたは複数のスクリプト)を保持するファイルの一部分、対象のプログラムに専用の単一のファイル、または複数の協調的なファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記録するファイル)に記録され得る。コンピュータプログラムは、1つの場所に位置する、または、複数の場所に分散され通信ネットワークによって相互接続される、1つのコンピュータまたは複数のコンピュータ上で実行され得る。
【００６０】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受信する。コンピュータの不可欠な要素は、命令に従って活動を実行するためのプロセッサ、ならびに、命令およびデータを記録するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記録するための1つまたは複数のマスストレージデバイスも含み、または、そのマスストレージデバイスからデータを受信し、もしくはそこへデータを移し、もしくはその両方を行うように、動作可能に結合される。コンピュータは、別のデバイス、たとえば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記録デバイスに埋め込まれ得る。コンピュータプログラム命令およびデータを記録するのに適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および磁気光学ディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されても、またはそれに組み込まれてもよい。
【００６１】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、携帯電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマート眼鏡)、人体に埋め込まれたデバイス(たとえば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含み得る。モバイルデバイスは、様々な通信ネットワーク(以下で説明される)にワイヤレスに(たとえば、高周波(RF)信号を使用して)通信することができる。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含み得る。センサは、カメラ、マイクロフォン、近接センサ、GPSセンサ、モーションセンサ、加速度計、周辺光センサ、水分センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよびセルラー無線)、温度センサ、または他のタイプのセンサを含み得る。たとえば、カメラは、可動レンズまたは固定レンズ、フラッシュ、イメージセンサ、およびイメージプロセッサを伴う、前面カメラまたは後面カメラを含み得る。カメラは、顔認識および/または虹彩認識のための詳細を捉えることが可能なメガピクセルカメラであり得る。カメラは、データプロセッサ、およびメモリに記録されるまたはリモートでアクセスされる認証情報とともに、顔認識システムを形成することができる。顔認識システムまたは1つまたは複数のセンサ、たとえば、マイクロフォン、モーションセンサ、加速度計、GPSセンサ、またはRFセンサは、ユーザ認証のために使用され得る。
【００６２】
ユーザとの対話を提供するために、実装形態は、ディスプレイデバイスおよび入力デバイス、たとえば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびに、ユーザがそれによってコンピュータに入力を提供できるタッチスクリーン、キーボード、およびポインティングデバイスを有する、コンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは任意の形式の感覚的なフィードバック、たとえば視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバックであってよく、ユーザからの入力は、音響入力、発話入力、または触覚入力を含む、任意の形式で受け取られ得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信してそれからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【００６３】
実装形態は、有線またはワイヤレスデジタルデータ通信(またはそれらの組合せ)の任意の形式もしくは媒体、たとえば通信ネットワークによって相互接続されるコンピューティングデバイスを使用して実装され得る。相互接続されたデバイスの例は、一般に互いから離れており典型的には通信ネットワークを介して対話する、クライアントおよびサーバである。クライアント、たとえばモバイルデバイスは、たとえば、購入、売却、支払、贈与、送付、もしくは貸付のトランザクションの実行、またはこれらの認可を行うサーバと、またはサーバを通じて、自身でトランザクションを実行することができる。そのようなトランザクションは、活動と応答が時間的に近くなるようにリアルタイムであり得る。たとえば、ある個人は、活動および応答が実質的に同時に発生することを知覚し、その個人の活動に続く応答の時間差が1ミリ秒(ms)未満もしくは1秒(s)未満であり、または応答にシステムの処理制約を考慮した意図的な遅延がない。
【００６４】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せの、すべてもしくは一部分を含み得る。情報は、Long Term Evolution(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、または他のプロトコルもしくはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイス間で、音声データ、ビデオデータ、バイオメトリックデータ、または認証データ、または他の情報を送信することができる。
【００６５】
別個の実装形態として説明される特徴は、組合せで、単一の実装形態で実装され得るが、単一の実装形態として説明される特徴は、複数の実装形態で、別々に、または任意の適切な部分組合せで実装され得る。特定の順序で説明され特許請求される動作は、特定の順序が実行されなければならないこと、またはすべての図示される動作が実行されなければならないことを要求するものとして理解されるべきではない(いくつかの動作は任意選択であり得る)。適宜、マルチタスキングまたは並列処理(またはマルチタスキングと並列処理の組合せ)が実行され得る。
【符号の説明】
【００６６】
102  パブリックブロックチェーン
106  コンピューティングシステム
108  コンピューティングシステム
110  ネットワーク
202  エンティティレイヤ
204  ホストされたサービスレイヤ
206  パブリックブロックチェーンレイヤ
208  トランザクション管理システム
210  ブロックチェーンインターフェース
212  ブロックチェーンネットワーク
214  ノード
216  ブロックチェーン
302a  コンセンサスノード
302b  コンセンサスノードおよびクライアントノード
304  CA
402  ノード1
404  ノード2
406  ノード3
408  ノード4
410  クライアント1
412  クライアント2
414  クライアント3
【図１】
0006768947.tif 000002
【図２】
0006768947.tif 000003
【図３Ａ】
0006768947.tif 000004
【図３Ｂ】
0006768947.tif 000005
【図４】
0006768947.tif 000006
【図５】
0006768947.tif 000007