(57)【特許請求の範囲】
【請求項１】
ブロックチェーンノード間の通信のための方法であって、ブロックチェーンネットワーク内のブロックチェーンノードが、サービスに参加しているサービスノードを含み、複数のサービスノードが同じサービスに参加している場合、前記複数のサービスノードがマッピング関係を有し、前記方法が、
第1のブロックチェーンノードによって、第2のブロックチェーンノードによって送信される通信要求を受信するステップと、
前記第1のブロックチェーンノードによって、前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとのマッピング関係を有するかどうかを判定するステップと、
前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとの前記マッピング関係を有する場合、前記第1のブロックチェーンノードによって、前記第2のブロックチェーンノードとの通信接続を確立するステップ、または
前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとの前記マッピング関係を有さない場合、前記第1のブロックチェーンノードによって、前記第2のブロックチェーンノードとの通信接続を確立することを拒否するステップと
を含む、方法。
【請求項２】
前記ブロックチェーンノードがコンセンサスノードをさらに含み、
サービスノードごとに、サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行するコンセンサスノードが前記サービスノードとのマッピング関係を有し、および/または
サービスノードごとに、前記サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行する複数の異なるコンセンサスノードがマッピング関係を有する、
請求項1に記載の方法。
【請求項３】
第1のブロックチェーンノードによって、第2のブロックチェーンノードによって送信される通信要求を前記受信するステップが、具体的には、
前記第1のブロックチェーンノードによって、前記第2のブロックチェーンノードの証明書を含む、前記第2のブロックチェーンノードによって送信される通信要求を受信するステップを含む、請求項1または2に記載の方法。
【請求項４】
前記第2のブロックチェーンノードの前記証明書が前記第2のブロックチェーンノードのノード識別子を含み、
前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとのマッピング関係を有するかどうかを前記判定するステップが、具体的には、
前記第2のブロックチェーンノードの前記証明書から前記ノード識別子を取得するステップと、
前記取得されたノード識別子に基づいて、前記取得されたノード識別子が前記第1のブロックチェーンノードのノード識別子とのマッピング関係を有するかどうかを判定するステップと
を含む、請求項3に記載の方法。
【請求項５】
前記第2のブロックチェーンノードへの通信接続を前記確立するステップが、具体的には、
前記第2のブロックチェーンノードによって、前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとの前記マッピング関係を有することに基づいて前記第1のブロックチェーンノードによって送信された検証要求を受信するステップと、
前記第2のブロックチェーンノードが、前記検証要求に基づいて、前記第1のブロックチェーンノードが前記第2のブロックチェーンノードとのマッピング関係を有するかどうかを判定し、
前記第1のブロックチェーンノードが前記第2のブロックチェーンノードとの前記マッピング関係を有する場合、前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとの通信接続を確立し、
前記第1のブロックチェーンノードが前記第2のブロックチェーンノードとのマッピング関係を有さない場合、前記第2のブロックチェーンノードが前記第1のブロックチェーンノードとの通信接続を確立することを拒否する
ように、前記検証要求を前記第2のブロックチェーンノードに送信するステップと
を含む、請求項1または2に記載の方法。
【請求項６】
ブロックチェーンノード間の通信のための装置であって、ブロックチェーンネットワーク内のブロックチェーンノードが、サービスに参加しているサービスノードを含み、複数のサービスノードが同じサービスに参加している場合、前記複数のサービスノードがマッピング関係を有し、
前記装置が第1のブロックチェーンノードに適用され、前記装置が、
第2のブロックチェーンノードによって送信される通信要求を受信するように構成される受信モジュールと、
前記第2のブロックチェーンノードが前記装置とのマッピング関係を有するかどうかを判定し、前記第2のブロックチェーンノードが前記装置との前記マッピング関係を有する場合、前記第2のブロックチェーンノードとの通信接続を確立し、または、前記第2のブロックチェーンノードが前記装置との前記マッピング関係を有さない場合、前記第2のブロックチェーンノードとの通信接続を確立することを拒否するように構成される判定および処理モジュールと
を備える、装置。
【請求項７】
前記ブロックチェーンノードがコンセンサスノードをさらに含み、
サービスノードごとに、前記サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行するコンセンサスノードが前記サービスノードとのマッピング関係を有し、および/または、
サービスノードごとに、前記サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行する複数の異なるコンセンサスノードがマッピング関係を有する、
請求項6に記載の装置。
【請求項８】
前記受信モジュールが、前記第2のブロックチェーンノードの証明書を含む、前記第2のブロックチェーンノードによって送信される通信要求を受信する、請求項6または7に記載の装置。
【請求項９】
前記第2のブロックチェーンノードの前記証明書が前記第2のブロックチェーンノードのノード識別子を含み、
前記判定および処理モジュールが、前記第2のブロックチェーンノードの前記証明書から前記ノード識別子を取得し、かつ前記取得されたノード識別子に基づいて前記取得されたノード識別子が前記装置のノード識別子とのマッピング関係を有するかどうかを判定する、請求項8に記載の装置。
【請求項１０】
前記第2のブロックチェーンノードが、
前記第2のブロックチェーンノードが前記装置との前記マッピング関係を有することに基づいて前記装置によって送信された検証要求を受信し、
前記検証要求に基づいて、前記装置が前記第2のブロックチェーンノードとのマッピング関係を有するかどうかを判定し、
前記装置が前記第2のブロックチェーンノードとの前記マッピング関係を有する場合、前記第2のブロックチェーンノードが前記装置との通信接続を確立し、または
前記装置が前記第2のブロックチェーンノードとの前記マッピング関係を有さない場合、前記第2のブロックチェーンノードが前記装置との通信接続を確立することを拒否する
ように、前記判定および処理モジュールが前記検証要求を前記第2のブロックチェーンノードに送信する、
請求項6または7に記載の装置。
【請求項１１】
第1のブロックチェーンノードに適用される、ブロックチェーンノード間の通信のためのデバイスであって、1つまたは複数のプロセッサとメモリとを備え、前記メモリがプログラムを記憶し、ブロックチェーンネットワーク内のブロックチェーンノードがサービスに参加しているサービスノードを含み、複数のサービスノードが同じサービスに参加している場合、前記複数のサービスノードがマッピング関係を有し、前記プログラムが、
第2のブロックチェーンノードによって送信される通信要求を受信するステップと、
前記第2のブロックチェーンノードが前記デバイスとのマッピング関係を有するかどうかを判定するステップと、
前記第2のブロックチェーンノードが前記デバイスとの前記マッピング関係を有する場合、前記第2のブロックチェーンノードとの通信接続を確立するステップと、
前記第2のブロックチェーンノードが前記デバイスとの前記マッピング関係を有さない場合、前記第2のブロックチェーンノードとの通信接続を確立することを拒否するステップと
を実行するために前記1つまたは複数のプロセッサによって実行される、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によりその全体において本明細書に組み込まれる、2017年7月26日に出願した、中国特許出願第201710616370.1号に対する優先権を主張するものである。
【０００２】
本出願は、情報技術の分野に関し、詳細には、ブロックチェーンノード間の通信のための方法および装置に関する。
【背景技術】
【０００３】
ブロックチェーン技術の支流として、コンソーシアムブロックチェーン技術は、ますます広く適用されている。コンソーシアムブロックチェーンネットワーク内のブロックチェーンノードは、サービスノードとコンセンサスノードとを含む。サービスノードは、サービスに参加し、コンセンサスノードは、サービスノードによって送信されるサービスデータを受信し、サービスデータに対してコンセンサス検証を実行することに関与する。
【０００４】
前述のサービスノードは、実際には、コンソーシアムブロックチェーンネットワークに参加する各施設のサービスサーバであり、コンソーシアムブロックチェーンネットワーク内の別のノードと通信するために使用されるソフトウェア(ソフトウェアは、本出願において通信プログラムと呼ばれる)は、サーバ上にインストールされる。2つのノードが固定されたサービス関係を有する場合、2つのノードは、サービス関係(サービス関係は、本出願においてマッピング関係と呼ばれる)を別個にローカルに記憶することができる。
【０００５】
図1は、コンソーシアムブロックチェーンネットワークを示すアーキテクチャ図である。図1に示すように、黒丸は、コンソーシアムノードであり、白丸は、サービスノードである。異なるサービスノードは、異なるアプリケーション(APP)のためのサービスを提供する。サービスノードは、APPによって生成されたサービスデータを、コンセンサス検証のためにコンセンサスノードに送信する。サービスノードがケータリングアプリケーションに対応するサーバであり、別のサービスノードが支払いアプリケーションに対応するサーバであると仮定する。ユーザは、ケータリングアプリケーションに対応するAPPを介して注文した後に、支払いアプリケーションを介して支払うことができ、2つのサービスノードは、同じサービスに参加し、コンソーシアムブロックチェーンネットワークを用いて図1に示すサービス関係を登録することができる。
【０００６】
コンソーシアムブロックチェーンネットワークにおいて、各サービスノードは、その参加サービスのサービスデータを記憶し、サービスデータは、通常ユーザのプライベートデータを含む。既存の技術に基づいて、より安全な通信方法が必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本出願の実装形態は、サービスノード内に記憶されるサービスデータ内のユーザのプライベートデータが漏洩しやすいという問題を解決するために、ブロックチェーンノード間の通信のための方法および装置を提供する。
【課題を解決するための手段】
【０００８】
前述の技術的問題を解決するために、本出願の実装形態は、以下に説明するように実施される。
【０００９】
本出願の実装形態は、ブロックチェーンノード間の通信のための方法を提供し、ブロックチェーンネットワーク内のブロックチェーンノードは、サービスノードを含む。同じサービスに参加しているサービスノードは、マッピング関係を有し、方法は、以下、すなわち第2のブロックチェーンノードによって送信される通信要求を第1のブロックチェーンノードによって受信するステップと、第2のブロックチェーンノードが第1のブロックチェーンノードとのマッピング関係を有するかどうかを判定するステップと、そうである場合第2のブロックチェーンノードとの通信接続を確立するステップ、またはそうではない場合第2のブロックチェーンノードとの通信接続を確立することを拒否するステップとを含む。
【００１０】
本出願の実装形態は、ブロックチェーンノード間の通信のための装置を提供し、ブロックチェーンネットワーク内のブロックチェーンノードは、サービスノードを含む。同じサービスに参加しているサービスノードは、マッピング関係を有し、装置は、以下、すなわち第2のブロックチェーンノードによって送信される通信要求を受信するように構成される受信モジュールと、第2のブロックチェーンノードが装置とのマッピング関係を有するかどうかを判定し、そうである場合第2のブロックチェーンノードとの通信接続を確立し、またはそうではない場合第2のブロックチェーンノードとの通信接続を確立することを拒否するように構成される判定および処理モジュールとを含む。
【００１１】
本出願の実装形態は、ブロックチェーンノード間の通信のためのデバイスを提供し、デバイスは、1つまたは複数のプロセッサと、メモリとを含む。メモリは、プログラムを記憶し、プログラムは、以下のステップ、すなわち第2のブロックチェーンノードによって送信される通信要求を受信するステップと、第2のブロックチェーンノードがデバイスとのマッピング関係を有するかどうかを判定するステップと、そうである場合第2のブロックチェーンノードとの通信接続を確立するステップ、またはそうではない場合第2のブロックチェーンとの通信接続を確立すること拒否するステップとを実行するために1つまたは複数のプロセッサによって実行され、ブロックチェーンネットワーク内のブロックチェーンノードは、サービスノードを含み、同じサービスに参加しているサービスノードはマッピング関係を有する。
【００１２】
本出願の実装形態において、本出願の実装形態において提供される前述の技術的解決策から、2つのサービスノード間で通信接続が確立される前に、通信を実行することを要求するサービスノードが、通信を実行することを要求するサービスノードの身元を検証することがわかる。サービスノードが通信を実行することを要求するときで、かつ通信を実行することを要求するサービスノードが同じサービスに参加しているときにのみ、2つのサービスノード間で通信接続が確立されることが可能である。したがって、同じサービスに参加していないサービスノード間では通信接続が確立されず、サービスノードは、通信プログラムを介してサービスに参加しているサービスノード内に格納されているサービスデータを盗むことができず、それによりサービスデータ内のプライベートデータのセキュリティを確実にする。
【００１３】
本出願の実装形態における技術的解決策または既存の技術における技術的解決策をより明確に説明するために、以下は、実装形態または既存の技術を説明するために必要とされる添付図面について簡単に説明する。明らかに、以下の説明における添付図面は、本出願のいくつかの実装形態を単に示し、当業者は、創造的努力なしにこれらの添付図面から他の図面を依然として導出することができる。
【図面の簡単な説明】
【００１４】
【図１】コンソーシアムブロックチェーンネットワークを示すアーキテクチャ図である。
【図２】本出願の一実装形態による、ブロックチェーンノード間の通信のための方法を示すフローチャートである。
【図３】別のコンソーシアムブロックチェーンネットワークを示す概略アーキテクチャ図である。
【図４】本出願の一実装形態による、ブロックチェーンノード間の通信のための装置を示す概略図である。
【図５】本出願の一実装形態による、ブロックチェーンノード間の通信のためのデバイスを示す概略図である。
【図６】本開示の一実装形態による、ブロックチェーンノード間の通信のためのコンピュータ実装方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
コンソーシアムブロックチェーンネットワークにおいて、サービスに参加しているサービスノードによって生成されるサービスデータは、ユーザのプライベートデータを含む。したがって、ユーザのプライベートデータがサービスに参加していないサービスノードに漏洩するのを防ぐために、各サービスノードは、コンソーシアムブロックチェーンネットワークにおいてその参加しているサービスのサービスデータのみを記憶する。
【００１６】
したがって、サービスのための実際のアプリケーション、たとえばサービスに参加していないサービスノードAは、通信プログラムを介してサービスに参加しているサービスノードBとの通信接続を確立することができ、サービスノードB内に記憶されたサービスデータを盗むために(データベースクラッキングのような)技術的手段を使用することができる。すなわち、通信プログラムを介して通信接続を確立する各サービスノードは、サービスノードとの通信接続を確立する別のサービスノード内に記憶されたサービスデータを取得するために技術的手段を使用することができる。サービスデータは、ユーザのプライベートデータを含む可能性があるので、本出願は、より安全な通信技術解決策を提供する。
【００１７】
当業者に本出願における技術的解決策をよりよく理解させるために、以下は、本出願の実装形態における添付図面を参照して本出願の実装形態における技術的解決策について明確かつ完全に説明する。明らかに、説明されている実装形態は、本出願の実装形態のすべてではなく、単にいくつかである。創造的努力なしに本出願の実装形態に基づいて当業者によって取得されるすべての他の実装形態は、本出願の保護範囲内に入るものとする。
【００１８】
本出願の実装形態において提供される技術的解決策について、添付図面を参照して以下に詳細に説明する。
【００１９】
図2は、本出願の一実装形態による、ブロックチェーンノード間の通信のための方法を示すフローチャートである。方法は、以下のステップを含む。
【００２０】
S200。第1のブロックチェーンノードが、第2のブロックチェーンノードによって送信される通信要求を受信する。
【００２１】
本出願の1つまたは複数の実装形態のアプリケーションシナリオは、ブロックチェーンネットワークであり、ブロックチェーンノードは、サービスノードを含む。サービスノードは、サービスに参加する施設のサーバであることができ、サービスノードは、サービスを実行するために、インストールされた通信プログラムを介してデータを交換する。同じサービスに参加しているサービスノードは、図1に示すサービス関係を有する。本出願において、サービスノード間のサービス関係は、ブロックチェーンノード間のマッピング関係である。したがって、サービスノード間のマッピング関係は、実際にはサービスノード間のサービス関係である。
【００２２】
本出願のこの実装形態において、第1のブロックチェーンノードは、通信接続を確立することを要求されるブロックチェーンノードであり、第2のブロックチェーンノードは、通信接続を確立することを要求するブロックチェーンノードである。
【００２３】
S202。第2のブロックチェーンノードが第1のブロックチェーンノードとのマッピング関係を有するかどうかを判定し、そうである場合ステップS204を実行し、そうではない場合ステップS206を実行する。
【００２４】
S204。第2のブロックチェーンノードとの通信接続を確立する。
【００２５】
S206。第2のブロックチェーンノードとの通信接続を確立することを拒否する。
【００２６】
第1のブロックチェーンノードと第2のブロックチェーンノードの両方がサービスノードであるとき、通信要求を受信する第1のブロックチェーンノードは、通信要求を送信する第2のブロックチェーンノードを検証する。第1のブロックチェーンノードが第2のブロックチェーンノードとのマッピング関係を有する場合、それは第1のブロックチェーンノードおよび第2のブロックチェーンノードが同じサービスに参加し、第1のブロックチェーンノードが第2のブロックチェーンノードとの通信接続を確立することができることを示す。しかしながら、第1のブロックチェーンノードが第2のブロックチェーンノードとのマッピング関係を有さない場合、それは第1のブロックチェーンノードおよび第2のブロックチェーンノードが異なるサービスに参加し、第1のブロックチェーンノードが第2のブロックチェーンノードとの通信接続を確立することを拒否することができることを示す。前述の実行ロジックは、各ブロックチェーンノード上にインストールされた通信プログラムにおいて事前設定されることが可能であることが留意されるべきである。
【００２７】
さらに、ブロックチェーンノードは、コンセンサスノードを含むことができ、コンセンサスノードは、サービスに参加しているサービスノードによって生成されるサービスデータに対してコンセンサス検証を実行することに関与する。サービスノードごとに、サービスノードによって生成されるサービスデータに対してコンセンサス検証を実行するコンセンサスノードは、サービスノードとのマッピング関係を有することができる。加えて、サービスノードごとに、サービスノードによって生成されるサービスデータに対してコンセンサス検証を実行する異なるコンセンサスノードもマッピング関係を有することができる。
【００２８】
したがって、第1のブロックチェーンノードと第2のブロックチェーンノードの両方がコンセンサスノードであるとき、または第1のブロックチェーンノードがサービスノードであり、第2のブロックチェーンノードがコンセンサスノードであるとき(もしくは、第1のブロックチェーンノードがコンセンサスノードであり、第2のブロックチェーンノードがサービスノードであるとき)、第1のブロックチェーンノードは、第1のブロックチェーンノードが第2のブロックチェーンノードとの通信接続を確立すべきかどうかを判定するために、第2のブロックチェーンノードが第1のブロックチェーンノードとのマッピング関係を有するかどうかを検証することができる。
【００２９】
明らかに、同じサービスに参加しているサービスノード内に記憶されたサービスデータは同じサービスのサービスデータであり、2つのサービスノード間でのプライベートデータ漏洩のリスクは存在しない。同様に、同じサービスに対するコンセンサス検証を実行するコンセンサスノードは互いからサービスデータを盗む必要はなく、サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行するコンセンサスノードもまたサービスノード内に記憶されたサービスデータを盗む必要はない。したがってマッピング関係を有するブロックチェーンノード(サービスノードまたはコンセンサスノードに関係なく)間で通信接続が確立されることが可能であり、プライベートデータ漏洩のリスクは存在しない。
【００３０】
各ブロックチェーンノード(サービスノードまたはコンセンサスノードに関係なく)は、ブロックチェーンノードとのマッピング関係を有するブロックチェーンノードのリストを構成することができ、すなわちブロックチェーンノードが信頼するブロックチェーンノードは、ブロックチェーンノードとの通信接続を確立することができることが留意されるべきである。
【００３１】
加えて、第1のブロックチェーンノードが、第2のブロックチェーンノードが第1のブロックチェーンノードとのマッピング関係を有すると判定すると、第1のブロックチェーンノードは、第1のブロックチェーンノードが第2のブロックチェーンノードとのマッピング関係を有するかどうかを第2のブロックチェーンノードが検証要求に基づいて判定するように、第2のブロックチェーンノードに検証要求を送信することができる。そうである場合、第2のブロックチェーンノードは、第1のブロックチェーンノードとの通信接続を確立し、またはそうではない場合、第2のブロックチェーンノードは、第1のブロックチェーンノードとの通信接続を確立することを拒否する。
【００３２】
そのように、第1のブロックチェーンノードが、第2のブロックチェーンノードが信頼されていると判定するように、通信接続を確立する必要がある2つのブロックチェーンノード間の双方向検証が実施されることが可能である。第2のブロックチェーンノードは、第1のブロックチェーンノードが信頼されていると判定し、通信セキュリティは、さらに強化される。
【００３３】
確かに、第1のブロックチェーンノードは、第2のブロックチェーンノードによって送信される通信要求を受信した後、検証要求を第2のブロックチェーンノードに送信することができる。第2のブロックチェーンノードは、第1のブロックチェーンノードとの通信を確立するかどうかを判定するために同じ方法を使用することができる。
【００３４】
図2に示す方法において、2つのサービスノード間で通信接続が確立される前に、通信を実行するように要求するサービスノードは、通信を実行することを要求するサービスノードの身元を確認する。サービスノードが通信を実行することを要求するときで、かつ通信を実行することを要求するサービスノードが同じサービスに参加しているときにのみ、2つのサービスノード間で通信接続が確立されることが可能である。したがって、同じサービスに参加していないサービスノード間では通信接続が確立されず、サービスに参加していないサービスノードは、通信プログラムを介してサービスに参加しているサービスノード内に格納されているサービスデータを盗むことができず、それによりサービスデータ内のプライベートデータのセキュリティを確実にする。
【００３５】
加えて、既存のブロックチェーンネットワークにおいて、特に既存のコンソーシアムブロックチェーンネットワークにおいて、ブロックチェーン間の通信は、通常トランスポート層セキュリティ(TLS)プロトコルに基づく。一般に、各ブロックチェーンノードは、信頼された認証局(CA)によって発行された証明書を保持し、証明書は、ブロックチェーンノード(サーバ)の属性情報(例えば、サーバが属する国、州、市、および施設の名前、ならびにサーバのドメイン名)に加えて、CAの署名を含む。TLSプロトコルに基づいて、通信接続を確立することを必要とする2つのブロックチェーンノードは、それらの身元がCAによって認証されていることを検証するためにそれらの証明書を交換することを必要とし(証明書は、CA署名を含む)、2つのブロックチェーンノードは、それらの身元が有効である場合、通信接続を確立することができる。明らかに、既存のTLSプロトコルは、有効な身元を有するが、マッピング関係を有さないブロックチェーンノード間の通信接続の確立を防ぐことができない。
【００３６】
本出願の1つまたは複数の実装形態は、TLSプロトコルに基づいて実装されることが可能である。しかしながら、ブロックチェーンノードごとに、ブロックチェーンノードがCAに証明書を申し込むとき、ブロックチェーンノードは、CAがブロックチェーンノードのノード識別子をブロックチェーンノードの証明書に追加することができるように、ブロックチェーンノードのノード識別子をCAに提供すべきである。ブロックチェーンノードのノード識別子は、ブロックチェーンノードの一意の識別子であり、ブロックチェーンノードの番号であることが可能である。
【００３７】
したがって、各ブロックチェーンノードは、ブロックチェーンノードとのマッピング関係を有するブロックチェーンノードのノード識別子を記憶することができる。図1に示すステップS200において、第1のブロックチェーンノードは、第2のブロックチェーンノードの証明書を含む第2のブロックチェーンノードによって送信される通信要求を受信することができる。ステップS202において、第1のブロックチェーンノードは、第2のブロックチェーンノードの証明書からノード識別子を取得することができ、取得されたノード識別子が第1のブロックチェーンノードのノード識別子とのマッピング関係を有するかどうかを判定することができる。
【００３８】
図3は、別のコンソーシアムブロックチェーンネットワークを示す概略アーキテクチャ図である。図3に示すように、複数のサービスおよびコンセンサス検証グループがコンソーシアムブロックチェーンネットワーク内に存在することができ、コンセンサス検証グループは、異なるサービスを検証することに関与する。このアーキテクチャにおいて、サービスノードに対してCAによって発行される証明書は、サービスノードが参加するサービスのサービス識別子をさらに含むことができ、コンセンサスノードに対してCAによって発行される証明書は、コンセンサスノードが属するコンセンサス検証グループのグループ識別子をさらに含むことができる。
【００３９】
各サービスノードは、その参加サービスのサービス識別子をさらに記憶することができ、各コンセンサスノードは、コンセンサスノードを含むコンセンサス検証グループのグループ識別子をさらに記憶することができる。したがって、サービスノードは、サービスノードと通信することを要求するブロックチェーンノードの証明書に基づいて、ブロックチェーンノードがサービスノードとのマッピング関係を有するかどうかを判定することができ、コンセンサスノードは、コンセンサスノードと通信することを要求するブロックチェーンノードの証明書に基づいて、ブロックチェーンノードがコンセンサスノードとのマッピング関係を有するかどうかを判定することができる。この場合、第1のブロックチェーンノードが検証を実行するたびに、第1のブロックチェーンノードは、第2のブロックチェーンノードの証明書内のサービス識別子またはグループ識別子が存在するかどうかを判定するために、第1のブロックチェーンノード内に記憶されたサービス識別子およびグループ識別子を詳しく検討することが留意されるべきである。
【００４０】
さらに、CAがブロックチェーンネットワーク内の2つ以上のブロックチェーンノードに対して証明書を発行するとき、CAは、ブロックチェーンノードを含むブロックチェーンネットワークのネットワーク識別子をブロックチェーンノードの証明書に追加することができる。したがって、第2のブロックチェーンノードの証明書内のネットワーク識別子が第1のブロックチェーンノードを含むブロックチェーンネットワークのネットワーク識別子と異なると判定したとき、第1のブロックチェーンノードは、さらなる検証を実行することなく、第2のブロックチェーンノードとの通信接続を確立することを拒否することができる。
【００４１】
本出願のこの実装形態において、ブロックチェーンノードの証明書は、ブロックチェーンネットワーク内のブロックチェーンノードの身元を示すための(前述のノード識別子、サービス識別子、グループ識別子、およびネットワーク識別子のような)より多くのフィールドを含むことができることがわかる。
【００４２】
最後に、本出願の1つまたは複数の実装形態は、TLSプロトコルに基づかなくてもよいが、通信プロトコルが指定され、ブロックチェーンネットワークに対応する通信プログラムに組み込まれることが留意されるべきである。通信プロトコルは、通信プロトコルが図2に示すステップを実施することができるという条件で、本出願において限定されない。
【００４３】
図2に示すブロックチェーンノード間の通信のための方法に基づいて、本出願の一実装形態は、図4に示すように、ブロックチェーンノード間の通信のための装置をさらに提供する。ブロックチェーンネットワーク内のブロックチェーンノードは、サービスノードを含み、同じサービスに参加しているサービスノードはマッピング関係を有する。本装置は、以下、すなわち第2のブロックチェーンノードによって送信される通信要求を受信するように構成される受信モジュール401と、第2のブロックチェーンノードが装置とのマッピング関係を有するかどうかを判定し、そうである場合第2のブロックチェーンノードとの通信接続を確立し、またはそうではない場合第2のブロックチェーンノードとの通信接続を確立することを拒否するように構成される判定および処理モジュール402とを含む。
【００４４】
ブロックチェーンノードは、コンセンサスノードをさらに含む。サービスノードごとに、サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行するコンセンサスノードは、サービスノードとのマッピング関係を有し、および/または、サービスノードごとに、サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行するコンセンサスノードはマッピング関係を有する。
【００４５】
受信モジュール401は、第2のブロックチェーンノードの証明書を含む第2のブロックチェーンノードによって送信される通信要求を受信する。
【００４６】
第2のブロックチェーンノードの証明書は、第2のブロックチェーンノードのノード識別子を含む。
【００４７】
判定および処理モジュール402は、第2のブロックチェーンノードの証明書からノード識別子を取得し、取得されたノード識別子に基づいて、取得されたノード識別子が装置のノード識別子とのマッピング関係を有するかどうかを判定する。
【００４８】
判定および処理モジュール402は、第2のブロックチェーンノードが、検証要求に基づいて、装置が第2のブロックチェーンノードとのマッピング関係を有するかどうかを判定し、そうである場合第2のブロックチェーンノードが装置との通信接続を確立し、そうではない場合第2のブロックチェーンノードが装置との通信接続を確立することを拒否するように、検証要求を第2のブロックチェーンノードに送信する。
【００４９】
図2に示すモジュール訓練方法に基づいて、本出願の一実装形態は、ブロックチェーンノード間の通信のためのデバイスをさらに提供する。デバイスは、1つまたは複数のプロセッサと、メモリとを含み、メモリは、プログラムを記憶し、プログラムは、以下のステップ、すなわち第2のブロックチェーンノードによって送信される通信要求を受信するステップと、第2のブロックチェーンノードがデバイスとのマッピング関係を有するかどうかを判定するステップと、そうである場合第2のブロックチェーンノードとの通信接続を確立するステップ、またはそうではない場合第2のブロックチェーンノードとの通信接続を確立することを拒否するステップとを実行するために1つまたは複数のプロセッサによって実行される。
【００５０】
ブロックチェーンネットワーク内のブロックチェーンノードは、サービスノードを含み、同じサービスに参加しているサービスノードはマッピング関係を有する。
【００５１】
本出願における実装形態について、すべて漸進的な方法で説明する。実装形態における同じまたは同様の部分について、これらの実装形態に対して相互参照がなされることが可能である。各実装形態は、他の実装形態間の違いに焦点を当てている。特に、図5に示すブロックチェーンノード間の通信のためのデバイスは、方法の実装形態と基本的に類似しており、したがって簡単に説明される。関連する部分について、方法の実装形態における関連する説明を参照されたい。
【００５２】
1990年代において、技術の改善は、ハードウェアの改善(例えば、ダイオード、トランジスタ、またはスイッチのような回路構造の改善)とまたはソフトウェアの改善(方法手順の改善)との間で明確に区別されることが可能である。しかしながら、技術の発展に伴い、多くの方法手順の改善は、ハードウェア回路構造の直接の改善とみなされることが可能である。設計者はほとんどすべて、対応するハードウェア回路構造を取得するために、改善された方法手順をハードウェア回路にプログラムする。したがって、方法手順の改善がハードウェアエンティティモジュールを使用することによって実装されることが可能ではないとは言えない。例えば、プログラマブル論理デバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))は、一種の集積回路である。PLDの論理機能は、ユーザによって実行される構成要素プログラミングによって決定される。設計者は、チップ製造業者に専用集積回路チップを設計および製造することを要求することなく、デジタルシステムを単一のPLDに「統合する」ためにプログラミングを実行する。加えて、集積回路チップを手動で製造する代わりに、プログラミングは、プログラム開発中に使用されるソフトウェアコンパイラと同様の「論理コンパイラ」ソフトウェアによって主に実施される。コンパイル前の元のコードはまた、ハードウェア記述言語(HDL)と呼ばれる指定されたプログラミング言語で記述される。Advanced Boolean Expression Language(ABEL)、Altera Hardware Description Language(AHDL)、Confluence、Cornell University Programming Language(CUPL)、HDCal、Java Hardware Description Language(JHDL)、Lava、Lola、MyHDL、PALASM、およびRuby Hardware Description Language(RHDL)のような複数のHDLが存在してもよい。現在、very-high-speed Integrated Circuit Hardware Description Language(VHDL)およびVerilogが最も一般的に使用される。当
業者は、論理的方法手順を実施するハードウェア回路が容易に取得されることが可能であるように、前述のハードウェア記述言語を使用することによって方法手順が論理的にプログラムされ、集積回路にプログラムされることのみを必要とすることも理解すべきである。
【００５３】
コントローラは、任意の適切な方法において実装されることが可能である。例えば、コントローラは、マイクロプロセッサ、プロセッサ、(マイクロ)プロセッサによって実行されることが可能であるコンピュータ可読プログラムコード(例えば、ソフトウェアまたはファームウェア)を記憶するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブル論理コントローラ、または組み込みマイクロコントローラであることが可能である。コントローラの例は、限定はしないが、以下のマイクロコントローラ、すなわちARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicone Labs C8051F320を含む。メモリコントローラは、メモリの制御ロジックの一部としても実装されることが可能である。当業者は、コントローラがコンピュータ可読プログラムコードのみの方法において実装されることが可能であり、コントローラが論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、組み込みマイクロコントローラなどの形態において同じ機能をさらに実装することを可能にするように、方法におけるステップが論理的にプログラムされることが可能であることも知る。したがって、コントローラは、ハードウェア構成要素とみなされることが可能であり、コントローラ内に含まれ、様々な機能を実装するように構成される装置も、ハードウェア構成要素内の構造とみなされることが可能である。代替的には、様々な機能を実装するように構成される装置は、方法を実施するソフトウェアモジュールと、ハードウェア構成要素内の構造の両方とみなされることが可能である。
【００５４】
前述の実装形態において説明したシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用することによって実装されることが可能であり、または特定の機能を有する製品を使用することによって実装されることが可能である。典型的な実装デバイスは、コンピュータである。コンピュータは、たとえばパーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであることが可能である。
【００５５】
説明の容易さのために、上記の装置について、機能を様々なユニットに分割することによって説明している。確かに、本出願が実施されるとき、ユニットの各機能は1つまたは複数のソフトウェアおよび/またはハードウェアにおいて実装されることが可能である。
【００５６】
当業者は、本出願の1つまたは複数の実装形態が方法、システム、またはコンピュータプログラム製品として提供されることが可能であることを理解すべきである。したがって、本出願の1つまたは複数の実装形態は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、またはソフトウェアとハードウェアの組合せを用いる実装形態の形態を使用することができる。加えて、本出願の1つまたは複数の実装形態は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(限定はしないが、ディスクメモリ、CD-ROM、光メモリなどを含む)上に実装されるコンピュータプログラム製品の形態を使用することができる。
【００５７】
本出願について、本出願の1つまたは複数の実装形態に基づく方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明している。フローチャートおよび/もしくはブロック図内の各プロセスおよび/もしくは各ブロック、ならびにフローチャートおよび/もしくはブロック図内のプロセスおよび/もしくはブロックの組合せを実装するために、コンピュータプログラム命令が使用されることが可能であることが理解されるべきである。これらのコンピュータプログラム命令は、コンピュータ、または任意の他のプログラム可能データ処理デバイスのプロセッサによって実行される命令が、フローチャート内の1つもしくは複数の手順および/またはブロック図内の1つもしくは複数のブロックにおける特定の機能を実装するための装置を生成するように、機械を生成するために汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または任意の別のプログラム可能データ処理デバイスのプロセッサに提供されることが可能である。
【００５８】
これらのコンピュータプログラム命令は、コンピュータ可読メモリ内に記憶された命令が命令装置を含む人工物を生成することができるように、特定の方法で動作するようにコンピュータまたは任意の他のプログラム可能データ処理デバイスに命令することができるコンピュータ可読メモリ内に記憶されることが可能である。命令装置は、フローチャート内の1つもしくは複数の手順および/またはブロック図内の1つもしくは複数のブロックにおける特定の機能を実装する。
【００５９】
これらのコンピュータプログラム命令は、一連の動作およびステップがコンピュータまたは別のプログラム可能デバイス上で実行され、それによってコンピュータ実施処理を生成するように、コンピュータまたは別のプログラム可能データ処理デバイスにロードされることが可能である。したがって、コンピュータまたは別のプログラム可能デバイス上で実行される命令は、フローチャート内の1つもしくは複数の手順および/またはブロック図内の1つもしくは複数のブロックにおける特定の機能を実装するためのステップを提供する。
【００６０】
典型的な構成において、コンピュータデバイスは、1つまたは複数の中央処理装置(CPU)と入力/出力インターフェースとネットワークインターフェースとメモリとを含む。
【００６１】
メモリは、非永続的メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/またはコンピュータ可読媒体内にある別の形態、たとえば読み出し専用メモリ(ROM)またはフラッシュメモリ(フラッシュRAM)を含むことができる。メモリは、コンピュータ可読媒体の一例である。
【００６２】
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報を記憶することができる永続的、非永続的、可動(movable)、および非可動(unmovable)媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであることが可能である。コンピュータ記憶媒体の例は、限定はしないが、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別のタイプのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリもしくは別のメモリ技術、コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)もしくは他の光記憶装置、カセット磁気テープ、テープ/ディスク記憶装置もしくは別の磁気記憶デバイス、またはコンピューティングデバイスがアクセスすることができる情報を記憶するように構成されることが可能な任意の他の非伝送媒体を含む。本出願において説明するように、コンピュータ可読媒体は、変調データ信号および搬送波のような一時的コンピュータ可読媒体(一時的媒体)を含まない。
【００６３】
「含む」、「備える」、またはそれらの任意の変形である用語は、要素のリストを含むプロセス、方法、商品、またはデバイスが、それらの要素を含むだけでなく、明示的に挙げられていない他の要素も含むか、またはそのようなプロセス、方法、商品、またはデバイスに固有の要素もさらに含むように、非排他的な包含をカバーすることを意図していることがさらに留意されるべきである。より多くの制約なしで、「...を含む」という文によって記述された要素は、要素を含むプロセス、方法、商品、またはデバイス内の別の同一の要素をさらに含む。
【００６４】
当業者は、本出願の1つまたは複数の実装形態が方法、システム、またはコンピュータプログラム製品として提供されることが可能であることを理解すべきである。したがって、本出願は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、またはソフトウェアとハードウェアの組合せを用いる実装形態の形態を使用することができる。加えて、本出願は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(限定はしないが、ディスクメモリ、CD-ROM、光メモリなどを含む)上に実装されるコンピュータプログラム製品の形態を使用することができる。
【００６５】
本出願について、コンピュータ、たとえばプログラムモジュールによって実行されるコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。本出願は、通信ネットワークを使用することによって接続されるリモート処理デバイスによってタスクが実行される分散型コンピューティング環境においても実施されることが可能である。分散型コンピューティング環境において、プログラムモジュールは、記憶デバイスを含むローカルとリモートの両方のコンピュータ記憶媒体内に配置されることが可能である。
【００６６】
前述の説明は、本出願の単なる実装形態であり、本出願を限定することを意図していない。当業者は、本出願に対して様々な修正および変更をすることができる。本出願の要旨および原理から逸脱することなくなされるいかなる修正、同等の置き換え、または改善もまた、本出願の特許請求の範囲内に入るものとする。
【００６７】
図6は、本開示の一実装形態による、ブロックチェーンノード間の通信のためのコンピュータ実施方法600の一例を示すフローチャートである。提示の明確さのために、以下の説明は、本明細書における他の図の文脈において方法600を一般的に説明する。しかしながら、方法600は、必要に応じて、たとえば任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行されることが可能であることが理解されよう。いくつかの実装形態において、方法600の様々なステップは、並列に、組み合わせて、ループで、または任意の順序で実行されることが可能である。
【００６８】
一般に、ブロックチェーン内の2つのノード間で通信接続が確立される前に、接続を実行することを要求されたノードの一方または両方は、通信接続を確立して通信を生じさせる前に、他のノードの身元を検証することができる。具体的には、ブロックチェーン内のノードのうちの少なくともいくつかは、サービスノードとみなされてもよく、サービスノードは、サービスに参加している施設のサーバであることが可能であり、サービスノードは、サービスを実行するために、インストールされた通信プログラムを介してデータを交換する。同じサービスに参加しているサービスノードは、サービス関係を有しているとみなされてもよく、サービス関係は、2つのサービスノード間のマッピング関係に対応する。ブロックチェーン内の2つのノードが同じサービスに参加しているとき、2つのノードは、マッピング関係を有しているとみなされ、通信接続が確立されることを可能にしてもよい。2つのノードが同じサービスに参加していない場合、通信接続は、拒否されることが可能であり、同じサービスに属していないノード間での無許可のデータの共有を潜在的に回避する。
【００６９】
場合によっては、ブロックチェーンノードは、コンセンサスノードを含んでもよく、コンセンサスノードは、サービスに参加しているサービスノードによって生成されるサービスデータに対するコンセンサス検証を実行することに関与する。サービスノードごとに、サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行するコンセンサスノードは、サービスノードとのマッピング関係を有するとみなされることが可能である。加えて、サービスノードごとに、サービスノードによって生成されるサービスデータに対するコンセンサス検証を実行する異なるコンセンサスノードもマッピング関係を有するとみなされることが可能である。
【００７０】
方法600の例示されているものに向かうと、602において、ブロックチェーンネットワーク内の第1のノードは、ブロックチェーンネットワーク内の第2のノードから通信要求を受信する。602から、方法600は、604に進む。
【００７１】
604において、第2のノードが第1のノードとのマッピング関係を有するかどうかに関する判定がなされる。第2のノードが第1のノードとのマッピング関係を有すると判定された場合、方法600は、606に進む。そうではなく、第2のノードが第2のノードとのマッピング関係を有さないと判定された場合、方法600は、608に進む。
【００７２】
第2のノードが第1のノードとのマッピング関係を有するかどうかを判定することは、様々な方法において実行されてもよい。一例において、第1のノードおよび第2のノードが同じサービスに参加しているかまたは異なるサービスに参加しているかに関して一般的な判定がなされることが可能である。2つのノードが同じサービスに参加している場合、一種のマッピング関係であるサービス関係がノード間に存在し、マッピング関係は、存在すると判定される。2つのノードが同じサービスに参加しておらず、異なる重複しないサービスに参加している場合、ノード間のマッピング関係は、存在しないと判定される。
【００７３】
前述のように、第1のノードと第2のノードの両方が共通のサービスノードに関連付けられたコンセンサスノードである場合、第1のノードがサービスノードであり、第2のノードが第1のノードのコンセンサスノードであるとき、または第1のノードが第2のノードのコンセンサスノードであるとき、ノード間にマッピング関係が存在すると判定される。
【００７４】
場合によっては、サービスノードとコンセンサスノードの両方を含むブロックチェーン内の特定のノードは、そのノードとのマッピング関係を有するノードのリストを設定する、生成する、維持する、または他の方法でアクセスを有することができる。言い換えれば、特定のブロックチェーンノードは、マッピング関係に基づいて信頼関係が存在するブロックチェーン内の他のノードを識別する情報を記憶または使用することができる。一例において、特定のノードは、特定のノードとのマッピング関係を有する各ノードのノード識別子を記憶することができる。各ノードのためのノード識別子は、それらのノードに対して発行されるデジタル証明書に含まれてもよく、または他の方法でそれに関連付けられてもよい。例えば、ブロックチェーンノードが認証局(CA)にデジタル証明書を申し込むとき、ブロックチェーンノードは、CAがブロックチェーンノードのノード識別子をブロックチェーンノードのデジタル証明書に追加することができるように、ノードのノード識別子をCAに提供することができる。ブロックチェーンノードのノード識別子は、ブロックチェーンノードの一意の識別子であることが可能であり、いくつかの事例において、ブロックチェーンノードの番号であってもよい。したがって、特定のノードは、特定のノードがマッピング関係を有する他のノードのうちの少なくともいくつかの一意のノード識別子を記憶することができる。それらの事例において、マッピング関係が存在するかどうかを決定することは、(要求内に含まれる要求ノードのデジタル証明書などからの)要求ノードのノード識別子を取得することと、取得されたノード識別子が特定のノードとのマッピング関係を有するノードに関連付けられているかどうかを判定することとを含む。
【００７５】
依然として他の事例において、CAは、サービスノードのためのデジタル証明書を発行してもよく、デジタル証明書は、サービスノードが参加しているサービスのサービス識別子を含む。コンセンサスノードも、CAによって、コンセンサスノードが属するコンセンサス検証グループのグループ識別子を含むことができるデジタル証明書を発行されてもよい。各サービスノードは、その参加サービスのサービス識別子を記憶することができ、または他の方法でそれに関連付けられることが可能であり、各コンセンサスノードは、コンセンサスノードを含むコンセンサス検証グループのグループ識別子を記憶することができる。その情報を使用して、サービスノードは、通信接続を要求しているブロックチェーンノードがサービスノードとのマッピング関係を有するかどうかを判定することができ、コンセンサスノードは、コンセンサスノードと通信することを要求しているブロックチェーンノードの証明書に基づいて、ブロックチェーンノードがコンセンサスノードとのマッピング関係を有するかどうかを判定することができる。この場合、第1のブロックチェーンノードが検証を実行するたびに、第1のブロックチェーンノードは、第2のブロックチェーンノードの証明書内のサービス識別子またはグループ識別子が存在するかどうかを判定するために、第1のブロックチェーンノード内に記憶されたサービス識別子およびグループ識別子を詳しく検討することが留意されるべきである。
【００７６】
依然としてさらに、CAがブロックチェーンネットワーク内の2つ以上のブロックチェーンノードに対して証明書を発行するとき、CAは、ブロックチェーンノードを含むブロックチェーンネットワークのネットワーク識別子をブロックチェーンノードの証明書に追加することができる。したがって、第2のブロックチェーンノードの証明書内のネットワーク識別子が第1のブロックチェーンノードを含むブロックチェーンネットワークのネットワーク識別子と異なると判定したとき、第1のブロックチェーンノードは、さらなる検証を実行することなく、第2のブロックチェーンノードとの通信接続を確立することを拒否することができる。
【００７７】
一実施形態において、ブロックチェーンノードの証明書は、ブロックチェーンネットワーク内のブロックチェーンノードの身元を示すための(ノード識別子、サービス識別子、グループ識別子、およびネットワーク識別子のような)より多くのフィールドを含むことができる。
【００７８】
608において、第1のノードと第2のノードとの間にマッピング関係が存在しないと判定した後、第1のノードは、判定に基づいて第2のノードとの通信を確立することを拒否することができる。608の後、方法600は、停止することができる。
【００７９】
前述のように、第1のノードと第2のノードとの間にマッピング関係が存在すると判定されたとき、方法600は、606において続く。606において、ブロックチェーンの通信プロトコルが双方向検証を必要とするかどうかに関して判定がなされる。そうではない場合、方法600は、610において続き、そこで、第1のノードは、判定されたマッピング関係に基づいて、第1のノードから第2のノードへの通信接続を確立することができる。610の後、方法600は、停止することができる。しかしながら、双方向検証が必要とされる場合、方法600は、612に進む。
【００８０】
612において、第1のノードは、第1のノードからの検証要求を第2のノードに送信することができる。要求に応答して、第2のノードは、614において、第1のノードが第2のノードとのマッピング関係を有するかどうかに関する判定を実行する。そうである場合、第2のノードは、616において、第1のノードとの通信接続を確立することができ、そうではない場合第2のノードは、618において、試みられた第1のノードとの通信接続を拒否することができる。双方向検証を要求することによって、ブロックチェーン内の通信セキュリティは、改善および強化されることが可能であり、通信接続を確立する前に通信が双方向で許可されることを保証する。616または618の後、方法600は停止することができる。
【００８１】
既存のコンソーシアムブロックチェーンネットワークのような既存のブロックチェーンネットワークにおいて、ブロックチェーンノード間の通信は、トランスポート層セキュリティ(TLS)プロトコルに基づくことができる。一般に、各ブロックチェーンノードは、信頼できるCAによって発行されるデジタル証明書を保持し、デジタル証明書は、ブロックチェーンノード(サーバの)属性情報(例えば、サーバが属する国、州、市、および施設の名前、ならびにサーバのドメイン名)に加えて、CAの署名を含む。TLSプロトコルに基づいて、通信接続を確立することを必要とする2つのブロックチェーンノードは、それらの身元がCAによって認証されていることを検証するためにそれらのデジタル証明書を交換することを必要とする(証明書は、CA署名を含む)。2つのブロックチェーンノードは、それらの身元が有効な場合、通信接続を確立することができる。
【００８２】
説明した解決策の実装形態は、重要な技術的利点を提供する。同じサービスに参加しているサービスノードに記憶されているサービスデータは、同じサービスのサービスデータであるので、それらのサービスノードが同じサービスに参加している場合、2つのサービスノード間でのプライベートデータ漏洩のリスクは存在しない。同様に、同じサービスに対するコンセンサス検証を実行するコンセンサスノードは、互いからサービスデータを盗む必要はなく、サービスノードによって生成されたサービスデータに対するコンセンサス検証を実行するコンセンサスノードも、サービスノード内に記憶されたサービスデータを盗む必要はない。したがって、プライベートデータ漏洩のリスクなしにマッピング関係を有するブロックチェーンノード(サービスノードまたはコンセンサスノードに関係なく)間で通信接続が確立されることが可能である。
【００８３】
説明した解決策は、ノード間の通信接続を確立する前に、ブロックチェーン内のノード間に満足な関係が存在することを保証することができる。そうすることで、許可されるノード間接続を既存のマッピング関係を有するそれらのノードに制限することによって、ブロックチェーン内の通信セキュリティが向上される。既存のマッピング関係は、共通のサービスへのノードの参加に基づいてもよく、そのサービスに関連付けられたサービスデータは、各ノードにすでに利用可能である。同じサービスに参加していないサービスノード間では通信接続が確立されず、実際に拒否されるので、特定のサービスに参加していないサービスノードは、その特定のサービスに参加しているサービスノード内に記憶されたサービスデータを盗むまたは傍受するために使用されることが不可能であり、それによりサービスのサービスデータ内のプライベートデータのセキュリティを保証する。
【００８４】
本明細書において説明される実施形態および動作は、デジタル電子回路において、または本明細書において開示された構造もしくはそれらの1つもしくは複数の組合せを含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて実装されることが可能である。動作は、1つもしくは複数のコンピュータ可読記憶媒体上に記憶された、または他のソースから受信されるデータに対する、データ処理装置によって実行される動作として実施されることが可能である。データ処理装置、コンピュータ、またはコンピューティングデバイスは、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記のものの複数のもの、もしくは組合せを例として含む、データを処理するための装置、デバイス、および機械を包含してもよい。本装置は、専用論理回路、たとえば中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含むことができる。本装置は、問題のコンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(例えば、オペレーティングシステム、またはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つもしくは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャのような、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００８５】
コンピュータプログラム(例えば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、任意の形態のプログラミング言語において書かれることが可能であり、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくは、コンピューティング環境における使用に適した他のユニットとしてを含む、任意の形態において展開されることが可能である。プログラムは、他のプログラムもしくはデータ(例えば、マークアップ言語ドキュメント内に格納された1つまたは複数のスクリプト)を保持するファイルの一部において、問題のプログラム専用の単一のファイルにおいて、または複数の連携ファイル(coordinated files)(例えば、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)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せのすべてまたは一部を含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE802、インターネットプロトコル(IP)、または他のプロトコル、もしくはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信されることが可能である。通信ネットワークは、接続されたコンピューティングデバイス間で、音声、ビデオ、生体認証、もしくは認証データ、または他の情報を送信することができる。
【００９１】
別々の実装形態として説明した特徴は、単一の実装形態において組み合わせて実装されてもよく、単一の実装形態として説明した特徴は、複数の実装形態において別々に、または任意の適切な部分的組合せにおいて実装されてもよい。特定の順序で説明し、特許請求した動作は、特定の順序が実行されなければならないこと、またはすべての例示された動作が実行されなければならないことを必要とするものとして理解されるべきではない(いくつかの動作は、任意選択であることが可能である)。必要に応じて、マルチタスクまたは並列処理(またはマルチタスクと並列処理の組合せ)が実行されることが可能である。
【符号の説明】
【００９２】
401  受信モジュール
402  判定および処理モジュール
【図１】
0006765543.tif 000002
【図２】
0006765543.tif 000003
【図３】
0006765543.tif 000004
【図４】
0006765543.tif 000005
【図５】
0006765543.tif 000006
【図６】
0006765543.tif 000007