(57)【特許請求の範囲】
【請求項１】
ワークフローに基づくブロックチェーンネットワークを通じた非公開のデータトランザクションのためのコンピュータで実施される方法であって、
第1のコンセンサスノードによって、少なくとも2つのクライアントノード間でトランザクションデータを送信するためのワークフローのポリシーを取得するステップであって、
前記トランザクションデータが、前記少なくとも2つのクライアントノードのうちの第1のクライアントノードと第2のクライアントノードとの間の非公開のトランザクションに関わり、
前記ポリシーが、対応する秘密鍵を使用して前記少なくとも2つのクライアントノードの各々によってデジタル署名され、
前記ポリシーが、前記少なくとも2つのクライアントノード間の前記トランザクションデータのルーティング順序を含む、ステップと、
前記第1のコンセンサスノードによって、前記第1のクライアントノードによって提出される前記トランザクションデータを受信するステップであって、
前記トランザクションデータが、前記第1のクライアントノードの秘密鍵によってデジタル署名される、ステップと、
前記第1のコンセンサスノードによって、前記ポリシーに基づいて、第2のコンセンサスノードまたは前記第2のクライアントノードに前記トランザクションデータを転送するステップと
を備える、コンピュータで実施される方法。
【請求項２】
前記第1のコンセンサスノードによって、前記少なくとも2つのクライアントノードの前記ルーティング順序において最後のクライアントノードから、前記対応する秘密鍵を使用して前記少なくとも2つのクライアントノードの各々によってデジタル署名される前記トランザクションデータを受信するステップと、
前記第1のコンセンサスノードによって、ブロックチェーンのコンセンサスプロセスに基づいて、前記トランザクションデータが有効であると決定するステップと、
前記第1のコンセンサスノードによって、前記ブロックチェーンに前記トランザクションデータのハッシュされた値を記録するステップと
をさらに備える、請求項1に記載のコンピュータで実施される方法。
【請求項３】
前記少なくとも2つのクライアントノードのうちの前記第1のクライアントノードが、前記ルーティング順序において最初のクライアントノードである、請求項1に記載のコンピュータで実施される方法。
【請求項４】
前記第2のコンセンサスノードが、前記ルーティング順序において2番目のクライアントノードによって信用される、請求項1に記載のコンピュータで実施される方法。
【請求項５】
前記第1のコンセンサスノードが、前記少なくとも2つのクライアントノードのうちの前記第1のクライアントノードおよび前記少なくとも2つのクライアントノードのうちの前記第2のクライアントノードによって信用される、請求項1に記載のコンピュータで実施される方法。
【請求項６】
前記トランザクションデータが、前記少なくとも2つのクライアントノードのうちの前記第1のクライアントノードによってデジタル署名される、請求項1に記載のコンピュータで実施される方法。
【請求項７】
前記ポリシーが、前記少なくとも2つのクライアントノードと、前記少なくとも2つのクライアントノードによって信用されるコンセンサスノードとの各々のアドレスを含む、請求項1に記載のコンピュータで実施される方法。
【請求項８】
1つまたは複数のプロセッサに結合され、かつ、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から7のいずれか1項に記載の方法による動作を実行させる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項９】
コンピューティングデバイスと、
前記コンピューティングデバイスに結合され、かつ、前記コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、請求項1から7のいずれか1項に記載の方法による動作を実行させる命令を記憶したコンピュータ可読記憶デバイスと
を備える、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
ブロックチェーンシステム、コンセンサスネットワーク、分散型台帳システム(DLS)ネットワーク、またはブロックチェーンとも呼ばれ得るブロックチェーンネットワークは、参加するエンティティが安全にかつ変更不可能にデータを記憶することを可能にする。ブロックチェーンはトランザクションの台帳として記述されることが可能であり、ブロックチェーンの複数のコピーがブロックチェーンネットワークにわたって記憶される。例示的なタイプのブロックチェーンには、パブリックブロックチェーン、コンソーシアムブロックチェーン、およびプライベートブロックチェーンがあり得る。パブリックブロックチェーンは、そのブロックチェーンを使用してコンセンサスプロセスに参加することがすべてのエンティティに開かれている。コンソーシアムブロックチェーンは、コンセンサスプロセスがノードの事前に選択されたセットによって制御されるブロックチェーンである。プライベートブロックチェーンは、読取りパーミッションおよび書込みパーミッションを集中的に制御する特定のエンティティだけに提供される。
【０００２】
一部のブロックチェーンシステムは、ブロックチェーンネットワークを使用するコンセンサスノードおよびクライアントノード(またはユーザ)を含み得る。一方では、コンセンサスノードは、合意に達するために他のコンセンサスノードと通信する。他方では、コンセンサスノードは、新しいトランザクションを受け入れてブロックに追加するためにクライアントノードと通信する。いくつかの場合、クライアントノードは、合意のためにブロックチェーンに提出されたトランザクションデータがコンセンサスノードによって見られるようになることを望まないことがある。いくつかの場合、コンセンサスノードはまた、セキュリティレベルの異なるコンソーシアムシステムまたは他のコアシステムの事前に選択されたノードのネットワークと通信する。したがって、データのプライバシーおよびセキュリティを保護するために、異なるタイプの通信に対して境界が設定され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本開示の実装形態は、ワークフローに基づいてブロックチェーンネットワークを通じたクライアントノード間の非公開のトランザクションを管理することを対象とする。より具体的には、本開示の実装形態は、非公開のトランザクションデータを同期するためのブロックチェーンクライアントノード間の非公開の通信チャネルを構成することを対象とする。
【課題を解決するための手段】
【０００４】
いくつかの実装形態では、活動は、第1のコンセンサスノードによって、少なくとも2つのクライアントノード間でトランザクションデータを送信するためのワークフローのポリシーを取得するステップであって、ポリシーが対応する秘密鍵を使用して少なくとも2つのクライアントノードの各々によってデジタル署名され、ポリシーが少なくとも2つのクライアントノード間のトランザクションデータのルーティング順序を含む、ステップと、少なくとも2つのクライアントノードのうちの第1のものによって提出されるトランザクションデータを受信するステップであって、トランザクションデータが少なくとも2つのクライアントノードのうちの第1のものの秘密鍵によってデジタル署名される、ステップと、ポリシーに基づいて第2のコンセンサスノードまたは少なくとも2つのクライアントノードのうちの第2のクライアントノードにトランザクションデータを転送するステップとを含む。他の実装形態は、対応するシステムと、装置と、コンピュータ記憶デバイスに符号化される、方法の活動を実行するように構成されるコンピュータプログラムとを含む。
【０００５】
これらおよび他の実装形態は各々、以下の特徴のうちの1つまたは複数を任意選択で含み得る。少なくとも2つのクライアントノードのルーティング順序で最後のクライアントノードから、対応する秘密鍵を使用して少なくとも2つのクライアントノードの各々によってデジタル署名されるトランザクションデータを受信する。ブロックチェーンのコンセンサスプロセスに基づいて、トランザクションデータが有効であると決定する。トランザクションデータのハッシュされた値をブロックチェーンに記録する。少なくとも2つのクライアントノードのうちの第1のものが、ルーティング順序における最初のクライアントノードである。第2のコンセンサスノードが、ルーティング順序における2番目のクライアントノードによって信用される。第1のコンセンサスノードが、少なくとも2つのクライアントノードのうちの第1のものおよび少なくとも2つのクライアントノードのうちの第2のものによって信用される。トランザクションデータが、少なくとも2つのクライアントノードのうちの第1のものによってデジタル署名される。ポリシーが、少なくとも2つのクライアントノードおよび少なくとも2つのクライアントノードによって信用されるコンセンサスノードの各々のアドレスを含む。
【０００６】
本開示はまた、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実装形態に従って1つまたは複数のプロセッサに動作を実行させる命令が記憶された、1つまたは複数のプロセッサに結合される1つまたは複数の非一時的コンピュータ可読記憶媒体を提供する。
【０００７】
本開示はさらに、本明細書で提供される方法を実施するためのシステムを提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供される方法の実装形態に従って動作を実行させる命令が記憶された、1つまたは複数のプロセッサに結合されるコンピュータ可読記憶媒体とを含む。
【０００８】
本開示による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることを理解されたい。すなわち、本開示による方法は、本明細書で特に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
【０００９】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴および利点が、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本開示の実装形態を実行するために使用され得る例示的な環境の図である。
【図２】本開示の実装形態による例示的な概念のアーキテクチャの図である。
【図３】本開示の実装形態による、クライアントノード間の非公開の通信チャネルを伴う例示的なブロックチェーンシステムの図である。
【図４】本開示の実装形態による、非公開のトランザクションを管理する例示的な方法を示す図である。
【発明を実施するための形態】
【００１１】
様々な図における同様の参照記号は同様の要素を示す。
【００１２】
本開示の実装形態は、ワークフローに基づいてブロックチェーンネットワークを通じたクライアントノード間の非公開のトランザクションを管理することを対象とする。より具体的には、本開示の実装形態は、非公開のトランザクションデータを同期するためのブロックチェーンクライアントノード間の非公開の通信チャネルを構成することを対象とする。
【００１３】
いくつかの実装形態では、活動は、第1のコンセンサスノードによって、少なくとも2つのクライアントノード間でトランザクションデータを送信するためのワークフローのポリシーを取得するステップであって、ポリシーが対応する秘密鍵を使用して少なくとも2つのクライアントノードの各々によってデジタル署名され、ポリシーが少なくとも2つのクライアントノード間のトランザクションデータのルーティング順序を含む、ステップと、少なくとも2つのクライアントノードのうちの第1のものによって提出されるトランザクションデータを受信するステップであって、トランザクションデータが少なくとも2つのクライアントノードのうちの第1のものの秘密鍵によってデジタル署名される、ステップと、ポリシーに基づいて第2のコンセンサスノードまたは少なくとも2つのクライアントノードのうちの第2のクライアントノードにトランザクションデータを転送するステップとを含む。
【００１４】
本開示の、および上で紹介された実装形態のさらなる背景を提供すると、コンセンサスネットワーク(たとえば、ピアツーピアノードからなる)、分散型台帳システム、または単にブロックチェーンとも呼ばれ得る、ブロックチェーンネットワークは、参加するエンティティが安全かつ変更不可能にトランザクションを行いデータを記憶することを可能にする。ブロックチェーンは、パブリックブロックチェーン、プライベートブロックチェーン、またはコンソーシアムブロックチェーンとして提供され得る。本開示の実装形態は、参加するエンティティの間で公開されているパブリックブロックチェーンに関して、本明細書でさらに詳細に説明される。しかしながら、本開示の実装形態はあらゆる適切なタイプのブロックチェーンにおいて実現され得ることが企図される。
【００１５】
コンソーシアムブロックチェーンでは、コンセンサスプロセスはノードの認可されたセットによって制御され、1つまたは複数のノードはそれぞれのエンティティ(たとえば、事業体)によって運営される。たとえば、10個のエンティティ(たとえば、会社)のコンソーシアムがコンソーシアムブロックチェーンシステムを運営することができ、それらのエンティティの各々がコンソーシアムブロックチェーンの中の少なくとも1つのノードを運営する。したがって、コンソーシアムブロックチェーンシステムは、参加するエンティティに関して非公開のネットワークであると見なされ得る。いくつかの例では、ブロックが有効となりブロックチェーンに追加されるには、各エンティティ(ノード)がそれぞれのブロックに署名しなければならない。いくつかの例では、ブロックが有効となりブロックチェーンに追加されるには、エンティティ(ノード)の少なくとも部分集合(たとえば、少なくとも7つのエンティティ)がそれぞれのブロックに署名しなければならない。例示的なコンソーシアムブロックチェーンシステムには、ニューヨーク州ニューヨークのJ.P. Morgan Chase & Co.によって開発されたQuorumがある。Quorumは、金融の使用事例のために特別に設計された、事業体向けのパーミッションドブロックチェーンインフラストラクチャとして表現され得る。Quorumは、スイス、ツークのEthereum Foundationによって提供される、Ethereumブロックチェーンのためのベースコードである、Go Ethereumから構築される。
【００１６】
一般に、コンソーシアムブロックチェーンシステムは、許可をもってコンソーシアムブロックチェーンシステムに参加するエンティティ間のトランザクションをサポートする。ブロックチェーンはすべてのノードにわたって複製されるので、トランザクションはコンソーシアムブロックチェーンシステム内のノードのすべてと共有される。すなわち、すべてのノードがブロックチェーンに関して完全にコンセンサスのとれた状態にある。コンセンサス(たとえば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、コンソーシアムブロックチェーンネットワーク内でコンセンサスプロトコルが実装される。例示的なコンセンサスプロトコルには、限定はされないが、ビットコインネットワークにおいて実装されるプルーフオブワーク(POW)がある。
【００１７】
本開示の実装形態は、ワークフローに基づいてブロックチェーンネットワークを通じたクライアントノード間の非公開のトランザクションを管理することを対象とする。より具体的には、本開示の実装形態は、非公開のトランザクションデータを同期するためのブロックチェーンクライアントノード間の非公開の通信チャネルを構成することを対象とする。
【００１８】
図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)を提供する。
【００２２】
ブロックチェーンシステムは、コンセンサスノードおよびクライアントノードを含み得る。コンセンサスノードはコンセンサスプロセスに参加することができる。クライアントノードは、ブロックチェーンシステムを使用できるが、コンセンサスプロセスに参加しない。いくつかの実装形態では、コンセンサスノードは、他の目的でブロックチェーンシステムを使用しながらコンセンサスプロセスに参加することができる。いくつかの実装形態では、コンセンサスノードは、ユーザがクライアントノードを使用してトランザクションをブロックチェーンに提出できるように、クライアントノードと通信することができる。コンセンサスノードはまた、クライアントノードによってブロックチェーンに提出されるトランザクションを追加するために、互いに通信して合意に達することができる。
【００２３】
いくつかの実装形態では、クライアントノードのグループが、トランザクションデータをブロックチェーンネットワークに対して非公開に保つことを望むことがある。新しいトランザクションデータが生成されるとき、クライアントノードのグループが同じデータを有することを確実にするために、データ同期が実行され得る。トランザクションデータは、クライアントノードによって信用されるコンセンサスノードを通じてルーティングされ得る。クライアントノードおよびルーティングコンセンサスノードのグループはワークフローを形成することができ、ワークフローは、関与するすべてのクライアントノードのデジタル署名によって支持されるポリシーに基づいてトランザクションデータのルーティングを確立する。データ同期がワークフローに従って実行されるとき、トランザクションデータを受信する各クライアントノードは、デジタル署名をデータに追加することができる。各クライアントノードは次いで、ワークフローの中の最後のクライアントノードに達するまで、ワークフローを通じて次のクライアントノードへデジタル署名されたコピーを転送する。最後のクライアントノードは次いで、そのデジタル署名を追加し、合意のためにトランザクションデータをコンセンサスノードに提出する。合意に達した後で、トランザクションデータは、ブロックチェーンにハッシュで記録され得る。したがって、クライアントノードは、ワークフロー上の別のクライアントノードから受信された非公開のデータの信頼性を、ブロックチェーンに記録されたハッシュされたデータとそのデータを比較することによって検証することができる。
【００２４】
図3は、本開示の実装形態による、クライアントノード間の非公開の通信チャネルを伴う例示的なブロックチェーンシステム300を図示する。高水準において、例示的なブロックチェーンシステム300は、クライアントノードA302、クライアントノードB304、クライアントノードC306、およびクライアントノードD308、ならびにブロックチェーンネットワーク310を含む。ブロックチェーンネットワーク310は、コンセンサスノードA312、コンセンサスノードB314、およびコンセンサスノードC316を含む。
【００２５】
3つのワークフローも図3において示されている。例示の目的で、ワークフロー-AC320は実線の矢印によって接続されている。ワークフロー-AC320には、クライアントノードA302、クライアントノードA302によって信用されるコンセンサスノードA312、クライアントノードC306によって信用されるコンセンサスノードB314、およびクライアントノードC306が関与する。ワークフロー-AD322は破線の矢印で接続されている。ワークフロー-ADには、クライアントノードA302、クライアントノードA302によって信用されるコンセンサスノードA312、クライアントノードD308によって信用されるコンセンサスノードC316、およびクライアントノードD308が関与する。ワークフロー-BC324は点線の矢印で接続されている。ワークフロー-BC324には、クライアントノードB304、クライアントノードB304およびクライアントノードD308によって信用されるコンセンサスノードB314、ならびにクライアントノードD308が関与する。図3に図示されるクライアントノード、コンセンサスノード、およびワークフローの具体的な数は、例示が目的であることを理解されたい。例示的なブロックチェーンシステム300は、具体的な実装形態に応じて、図示されるものより多数もしくは少数のクライアントノード、コンセンサスノード、またはワークフローを含み得る。
【００２６】
ワークフローにおけるデータ送信は、スマートコントラクトに記憶されているポリシーに基づいて実行され得る。ポリシーは、スマートコントラクトのもとにあるクライアントノードおよびブロックチェーンネットワークに公開されていてよい。例としてワークフロー-AC320を使用すると、ポリシーは、クライアントノードA302、クライアントノードC306、クライアントノードA302によって信用されるコンセンサスノードA312、およびクライアントノードC306によって信用されるコンセンサスノードB314のアドレスを含むように作られ得る。ポリシーの例示的なコードは次のように表現され得る。
“Workflow_AC”: {
“client_A_addr”: “client_A_trust_consensus_node_addr”,
“client_C_addr”: “client_C_trust_consensus_node_addr”
}
【００２７】
ポリシーは、任意の関係者によって作られてよく、実行されるべき対応するワークロードにおけるすべてのクライアントノードのデジタル署名によって支持される。新しいトランザクションデータが生成されてクライアントノードA302によって記憶されるとき、クライアントノードA302は、自身に関連するワークフローポリシーを特定することができる。この例300では、クライアントノードA302は、ワークフロー-AC320のポリシーおよびワークフロー-AD324のポリシーを発見することができる。クライアントノードA302は次いで、ワークフロー-AC320のポリシーがクライアントノードA302およびクライアントノードC306の正しいデジタル署名を有するかどうかを、それらの対応する公開鍵を使用して検証することができる。クライアントノードA302はまた、ワークフロー-AD324のポリシーがクライアントノードA302およびクライアントノードD308の正しいデジタル署名を有するかどうかを検証することができる。
【００２８】
ワークフロー-AC320について、ポリシーのデジタル署名が有効である場合、クライアントノードA302は、トランザクションデータをデジタル署名し、ワークフローAC320のポリシーに基づいてトランザクションデータをコンセンサスノードA312のアドレスに送信することができる。コンセンサスノードA312がトランザクションデータを受信した後で、コンセンサスノードA312は、コンセンサスノードB314のアドレスにトランザクションデータを転送する。コンセンサスノードB314は、トランザクションデータをクライアントノードC306に転送する。トランザクションデータを受信した後で、クライアントノードC306は、クライアントノードA302の公開鍵を使用して、クライアントノードA302のデジタル署名を検証することができる。署名が正しい場合、クライアントノードC306は、トランザクションデータのコピーをその非公開データベースに記憶することができる。クライアントノードC306は、トランザクションデータをデジタル署名し、それをブロックチェーンネットワーク310に提出することができる。ブロックチェーンネットワーク310は、実際のトランザクションデータが公には見られないが、ワークフローAC320の中のクライアントノードによって検証され得るように、トランザクションデータをブロックチェーンにハッシュで記録することができる。
【００２９】
同様に、ワークフロー-AD322について、ポリシーのデジタル署名が有効である場合、クライアントノードA302は、トランザクションデータをデジタル署名し、ワークフローAD322のポリシーに基づいてトランザクションデータをコンセンサスノードA312のアドレスに送信することができる。コンセンサスノードA312がトランザクションデータを受信した後で、コンセンサスノードA312は、コンセンサスノードC316のアドレスにトランザクションデータを転送する。コンセンサスノードC316は次いで、トランザクションデータをクライアントノードD308に転送する。トランザクションデータを受信した後で、クライアントノードD308は、クライアントノードA302の公開鍵を使用して、クライアントノードA302のデジタル署名を検証することができる。署名が正しい場合、クライアントノードD308は、トランザクションデータのコピーをその非公開データベースに記憶することができる。クライアントノードD308は次いで、トランザクションデータをデジタル署名し、それをブロックチェーンネットワーク310に提出することができる。ワークフロー-BC324のデータ送信が同様に実行され得る。
【００３０】
図4は、本開示の実装形態による、非公開のトランザクションを管理する例示的な方法400を図示する。提示を明確にするために、以下の説明は全般に、この説明では他の図面の文脈で例示的なプロセス400を説明する。しかしながら、例示的なプロセス400は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって、適宜実行され得る。いくつかの実装形態では、例示的なプロセス400の様々なステップは、並列に、組合せで、ループで、または任意の順序で行われ得る。
【００３１】
402において、第1のコンセンサスノードは、少なくとも2つのクライアントノード間でトランザクションデータを送信するためのワークフローのポリシーを取得する。いくつかの例では、ポリシーは、対応する秘密鍵を使用して、少なくとも2つのクライアントノードの各々によってデジタル署名される。いくつかの例では、ポリシーは、少なくとも2つのクライアントノード間でのトランザクションデータのルーティング順序を含む。いくつかの実装形態では、少なくとも2つのクライアントノードのうちの第1のものは、ルーティング順序において最初のクライアントノードである。いくつかの実装形態では、トランザクションデータは、少なくとも2つのクライアントノードのうちの第1のものによってデジタル署名される。いくつかの実装形態では、ポリシーは、少なくとも2つのクライアントノードと、少なくとも2つのクライアントノードによって信用されるコンセンサスノードとの各々のアドレスを含む。
【００３２】
404において、第1のコンセンサスノードは、少なくとも2つのクライアントノードのうちの第1のものによって提出されるトランザクションデータを受信し、トランザクションデータは、少なくとも2つのクライアントノードのうちの第1のものの秘密鍵によってデジタル署名される。
【００３３】
406において、第1のコンセンサスノードは、ポリシーに基づいて、第2のコンセンサスノードまたは少なくとも2つのクライアントノードのうちの第2のクライアントノードにトランザクションデータを転送する。いくつかの実装形態では、第1のコンセンサスノードはさらに、少なくとも2つのクライアントノードのルーティング順序において最後のクライアントノードから、対応する秘密鍵を使用して少なくとも2つのクライアントノードの各々によってデジタル署名されるトランザクションデータを受信する。第1のコンセンサスノードはまた、ブロックチェーンのコンセンサスプロセスに基づいてトランザクションデータが有効であると決定し、ブロックチェーンにトランザクションデータのハッシュされた値を記録する。いくつかの実装形態では、第2のコンセンサスノードは、ルーティング順序において2番目のクライアントノードによって信用される。いくつかの実装形態では、第1のコンセンサスノードは、少なくとも2つのクライアントノードのうちの第1のものおよび少なくとも2つのクライアントノードのうちの第2のものによって信用される。
【００３４】
本明細書で説明される実装形態および動作は、本明細書で説明される構造もしくはそれらのうちの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)、または他のプロトコルもしくはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイス間で、音声データ、ビデオデータ、バイオメトリックデータ、または認証データ、または他の情報を送信することができる。
【００４１】
別個の実装形態として説明される特徴は、組合せで、単一の実装形態で実装され得るが、単一の実装形態として説明される特徴は、複数の実装形態で、別々に、または任意の適切な部分組合せで実装され得る。特定の順序で説明され特許請求される動作は、特定の順序が実行されなければならないこと、またはすべての図示される動作が実行されなければならないことを要求するものとして理解されるべきではない(いくつかの動作は任意選択であり得る)。適宜、マルチタスキングまたは並列処理(またはマルチタスキングと並列処理の組合せ)が実行され得る。
【符号の説明】
【００４２】
100  例示的な環境
102  コンソーシアムブロックチェーンシステム
106  コンピューティングシステム
108  コンピューティングシステム
110  ネットワーク
202  エンティティレイヤ
204  ホストされたサービスレイヤ
206  ブロックチェーンレイヤ
208  トランザクション管理システム
210  ブロックチェーンインターフェース
212  ブロックチェーンネットワーク
302  クライアントノードA
304  クライアントノードB
306  クライアントノードC
308  クライアントノードD
310  ブロックチェーンネットワーク
312  コンセンサスノードA
314  コンセンサスノードB
316  コンセンサスノードC
320  ワークフロー-AC
322  ワークフロー-AD
324  ワークフロー-BC
【図１】
0006810259.tif 000002
【図２】
0006810259.tif 000003
【図３】
0006810259.tif 000004
【図４】
0006810259.tif 000005