(57)【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、前記方法は、
ブロックチェーン内の第2のノードによって、前記ブロックチェーン内の第1のノードによって送信された第1のトランザクションを受信するステップと、
前記ブロックチェーン内の少なくとも1つの中間ノードによって、前記第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信するステップであって、前記少なくとも1つの第2のトランザクションは、前記第2のノードとは異なる前記少なくとも1つの中間ノードに前記第1のノードによって送信される、ステップと、
前記少なくとも1つの中間ノードから前記第2のノードに前記少なくとも1つの第2のトランザクションを送信するステップと、
前記第2のノードによって、受信トランザクションのうちの最先に受信されることになる最初に受信したトランザクションを実行するステップであって、前記受信トランザクションは、前記第1のトランザクションと前記少なくとも1つの第2のトランザクションとを含む、ステップと、
前記第2のノードによって、前記受信トランザクションの残りのトランザクションが前記最初に受信したトランザクションと同一であると決定すると、前記残りのトランザクションを破棄するステップと
を含む、コンピュータ実施方法。
【請求項２】
前記受信トランザクションの前記残りのトランザクションが前記最初に受信したトランザクションと同一であると決定することは、前記最初に受信したトランザクションのデジタル署名と一致している前記残りのトランザクションの各々のデジタル署名を識別することを含む、請求項1に記載のコンピュータ実施方法。
【請求項３】
前記ブロックチェーン内の前記第1のノードと前記ブロックチェーン内の前記第2のノードとは、異なるネットワークサービス提供部によって提供される異なるネットワークハブ内に存在する、請求項1に記載のコンピュータ実施方法。
【請求項４】
より高速なトランザクション伝送速度を提供する前記ブロックチェーン内のノードを決定するために、前記受信トランザクションについての伝送速度統計データを収集するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項５】
所与の伝送送信ノードについて、前記伝送速度統計データに基づいて、トランザクションが送信されることになる対象の優先ノードのセットを決定するステップをさらに含む、請求項4に記載のコンピュータ実施方法。
【請求項６】
ブロックチェーントランザクション加速化システムは、前記ブロックチェーン内の1つまたは複数のノードにおいて、または、前記ブロックチェーンによってアクセス可能なサーバにおいて実施される、請求項1に記載のコンピュータ実施方法。
【請求項７】
前記少なくとも1つの第2のトランザクションを送信するために使用する複数の中間ノードを決定するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項８】
命令で符号化された1つまたは複数のコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ブロックチェーン内の第2のノードによって、前記ブロックチェーン内の第1のノードによって送信された第1のトランザクションを受信することと、
前記ブロックチェーン内の少なくとも1つの中間ノードによって、前記第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信することであって、前記少なくとも1つの第2のトランザクションは、前記第2のノードとは異なる前記少なくとも1つの中間ノードに前記第1のノードによって送信される、ことと、
前記少なくとも1つの中間ノードから前記第2のノードに前記少なくとも1つの第2のトランザクションを送信することと、
前記第2のノードによって、受信トランザクションのうちの最先に受信されることになる最初に受信したトランザクションを実行することであって、前記受信トランザクションは、前記第1のトランザクションと前記少なくとも1つの第2のトランザクションとを含む、ことと、
前記第2のノードによって、前記受信トランザクションの残りのトランザクションが前記最初に受信したトランザクションと同一であると決定すると、前記残りのトランザクションを破棄することと
をさせる、1つまたは複数のコンピュータ可読記憶媒体。
【請求項９】
前記受信トランザクションの前記残りのトランザクションが前記最初に受信したトランザクションと同一であると決定することは、前記最初に受信したトランザクションのデジタル署名と一致している前記残りのトランザクションの各々のデジタル署名を識別することを含む、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１０】
前記ブロックチェーン内の前記第1のノードと前記ブロックチェーン内の前記第2のノードとは、異なるネットワークサービス提供部によって提供される異なるネットワークハブ内に存在する、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１１】
より高速なトランザクション伝送速度を提供する前記ブロックチェーン内のノードを決定するために、前記受信トランザクションについての伝送速度統計データを収集するように前記1つまたは複数のプロセッサによって実行可能な命令をさらに有する、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１２】
所与の伝送送信ノードについて、前記伝送速度統計データに基づいて、トランザクションが送信されることになる対象の優先ノードのセットを決定するように前記1つまたは複数のプロセッサによって実行可能な命令をさらに有する、請求項11に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１３】
ブロックチェーントランザクション加速化システムは、前記ブロックチェーン内の1つまたは複数のノードにおいて、または、前記ブロックチェーンによってアクセス可能なサーバにおいて実施される、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１４】
前記少なくとも1つの第2のトランザクションを送信するために使用する複数の中間ノードを決定するように前記1つまたは複数のプロセッサによって実行可能な命令をさらに有する、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１５】
システムであって、
1つまたは複数のプロセッサと、
命令で符号化された1つまたは複数のコンピュータ可読記憶媒体とを含み、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ブロックチェーン内の第2のノードによって、前記ブロックチェーン内の第1のノードによって送信された第1のトランザクションを受信することと、
前記ブロックチェーン内の少なくとも1つの中間ノードによって、前記第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信することであって、前記少なくとも1つの第2のトランザクションは、前記第2のノードとは異なる前記少なくとも1つの中間ノードに前記第1のノードによって送信される、ことと、
前記少なくとも1つの中間ノードから前記第2のノードに前記少なくとも1つの第2のトランザクションを送信することと、
前記第2のノードによって、受信トランザクションのうちの最先に受信されることになる最初に受信したトランザクションを実行することであって、前記受信トランザクションは、前記第1のトランザクションと前記少なくとも1つの第2のトランザクションとを含む、ことと、
前記第2のノードによって、前記受信トランザクションの残りのトランザクションが前記最初に受信したトランザクションと同一であると決定すると、前記残りのトランザクションを破棄することと
をさせる、システム。
【請求項１６】
前記受信トランザクションの前記残りのトランザクションが前記最初に受信したトランザクションと同一であると決定することは、前記最初に受信したトランザクションのデジタル署名と一致している前記残りのトランザクションの各々のデジタル署名を識別することを含む、請求項15に記載のシステム。
【請求項１７】
前記ブロックチェーン内の前記第1のノードと前記ブロックチェーン内の前記第2のノードとは、異なるネットワークサービス提供部によって提供される異なるネットワークハブ内に存在する、請求項15に記載のシステム。
【請求項１８】
より高速なトランザクション伝送速度を提供する前記ブロックチェーン内のノードを決定し、
所与の伝送送信ノードについて、伝送速度統計データに基づいて、トランザクションが送信されることになる対象の優先ノードのセットを決定するために、前記受信トランザクションについての前記伝送速度統計データを収集するように前記1つまたは複数のプロセッサによって実行可能な命令を有する、請求項15に記載のシステム。
【請求項１９】
ブロックチェーントランザクション加速化システムは、前記ブロックチェーン内の1つまたは複数のノードにおいて、または、前記ブロックチェーンによってアクセス可能なサーバにおいて実施される、請求項15に記載のシステム。
【請求項２０】
前記少なくとも1つの第2のトランザクションを送信するために使用する複数の中間ノードを決定するように前記1つまたは複数のプロセッサによって実行可能な命令をさらに有する、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化に関する。
【背景技術】
【０００２】
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称することができる分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でデータを記憶することを可能にする。DLSは、任意の特定のユーザケースを指すわけではなく、ブロックチェーンネットワークと一般には指す。例示的なタイプのブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、DLSを使用し、コンセンサスプロセスに関与するように、すべてのエンティティに対してオープンとなっている。プライベートブロックチェーンネットワークは、特定のエンティティに提供されており、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御する、限定されたエンティティのグループに提供されており、アクセス制御レイヤを含む。
【０００３】
従来のブロックチェーンシステムにおいては、トランザクション送信プロセスは、トランザクションを生成してトランザクションをブロックチェーンノードに送信するクライアントを含む。ブロックチェーンノードは、その後にトランザクションが一つずつ実行される一群のトランザクションに対するコンセンサスを取得する。実行結果を新規ブロックチェーンノードに書き込む。このプロセスは、ブロックチェーンノードにトランザクションを通信するクライアントによって主に成し遂げられるトランザクションネットワーク伝送を含む。既存のブロックチェーン環境においては、直接ネットワーク接続が通信のために使用される。
【０００４】
しかしながら、クライアントとブロックチェーンノードとの間の直接ネットワーク接続は最適足り得ない。その単純さゆえに、直接ネットワーク接続は非効率的なものとなる場合がある。ネットワークは、ネットワークの複雑度に対処するように状況にあわせて変化することができなくなる場合がある。例えば、ネットワークは、ネットワーク問題がノード間の通信を遅くする状況に対処することができなくなり得る。この非効率性のせいで、ネットワーク内の2つのネットワークノードがデータを送信する必要がある場合、確立された直接接続は最速の可能な接続ではなくなり得る。直接ネットワーク接続は、例えば、2つのノードがネットワークを跨ぐ場合または2つのノードが異なるネットワーク事業者に属する場合には、非効率的または遅いものとなり得る。一般的に、ブロックチェーン内のトランザクションの伝送時間はランダムまたは未知である。直接ネットワーク接続をこれらの問題に対処するために使用することはできるが、直接ネットワーク接続に対処するための効率的なソリューションが有利なものとなるであろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書の実施形態は、ブロックチェーンネットワークトランザクションを改善するためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信を加速化することを目的としている。
【０００６】
いくつかの実施形態においては、アクションは、ブロックチェーントランザクション加速化システムにおいて、ブロックチェーン内の第1のノードを介して送信された第1のトランザクションを受信するステップと、ブロックチェーントランザクション加速化システムにおいて、第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信するステップであって、少なくとも1つの第2のトランザクションは、第1のノードとは異なるブロックチェーン内の少なくとも1つの第2のノードに第1のノードによって送信される、ステップと、ブロックチェーントランザクション加速化システムによって、第1のトランザクションと少なくとも1つの第2のトランザクションとを含む受信トランザクションのうちの最初に受信したトランザクションを実行するステップと、ブロックチェーントランザクション加速化システムによって、受信トランザクションの残りのトランザクションが最初に受信したトランザクションと同一であると決定すると、残りのトランザクションを破棄するステップとを含む。他の実施形態は、対応する、システムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
【０００７】
これらの実施形態および他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含み得る。
【０００８】
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、受信トランザクションの残りのトランザクションが最初に受信したトランザクションと同一であると決定することは、最初に受信したトランザクションのデジタル署名と一致している残りのトランザクションの各々のデジタル署名を識別することを含む。
【０００９】
上記または下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、ブロックチェーン内の第1のノードとブロックチェーン内の少なくとも1つの第2のノードとは、異なるネットワークサービス提供部によって提供される異なるネットワークハブ内に存在する。
【００１０】
上記または下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、より高速なトランザクション伝送速度を提供するブロックチェーン内のノードを決定するために、受信トランザクションについての伝送速度統計データを収集するステップをさらに含む。
【００１１】
上記または下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、所与の伝送送信ノードについて、伝送速度統計データに基づいて、トランザクションが送信されることになる対象の優先ノードのセットを決定するステップをさらに含む。
【００１２】
上記または下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、ブロックチェーントランザクション加速化システムは、ブロックチェーン内の1つまたは複数のノードにおいて、または、ブロックチェーンによってアクセス可能なサーバにおいて実施される。
【００１３】
上記または下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、少なくとも1つの第2のトランザクションを送信するために使用する複数の第2のノードを決定するステップをさらに含む。
【００１４】
本明細書はまた、1つまたは複数のプロセッサに結合されているとともに命令を記憶している1つまたは複数の非一時的コンピュータ可読記憶媒体を提供しており、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供した方法の実施形態に従った動作を行わせる。
【００１５】
本明細書は、本明細書で提供した方法を実施するためのシステムをさらに提供している。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるとともに命令を記憶しているコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行されると、命令は、1つまたは複数のプロセッサに、本明細書で提供した方法の実施形態による動作を行わせる、コンピュータ可読記憶媒体とを含む。
【００１６】
本明細書による方法が本明細書に記載の態様と特徴との任意の組合せを含み得ることは諒解されよう。すなわち、本明細書による方法は、特に本明細書に記載の態様と特徴との組合せに限定されるわけではなく、提供した態様と特徴との任意の組合せも含む。
【００１７】
本明細書の1つまたは複数の実施形態の詳細を添付の図面および以下の説明に記載している。本明細書の他の特徴および利点が、説明および図面から、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００１８】
【図１】本明細書の実施形態を実行するために使用され得る環境の例を示す図である。
【図２】本明細書の実施形態による、概念的機構の例を示す図である。
【図３Ａ】本明細書の実施形態による、ブロックチェーン内の2つのノード間で直接送信されるトランザクションのための経路の例を示すブロック図である。
【図３Ｂ】本明細書の実施形態による、ブロックチェーントランザクション加速化システムにおいて複数の転送トランザクションを送信する際に使用される経路の例を示すブロック図である。
【図４】本明細書の実施形態による、ブロックチェーンネットワークにおいて複製トランザクションを使用するための例示的なプロセスを図示している図である。
【図５】本明細書の実施形態による、ブロックチェーン内のネットワーク加速化ノードを使用して送信されるトランザクションのためのブロックチェーントランザクション加速化システムにおいて使用される経路の例を示すブロック図である。
【図６】本明細書の実施形態による、ブロックチェーンネットワークにおいてトランザクションを送信するための加速化ノードを使用するためのプロセスの例を図示している図である。
【図７】本明細書の実施形態による、ブロックチェーントランザクション加速化システムの複数のブロックチェーン加速化ネットワークの例についてのブロック図である。
【図８】本明細書の実施形態による、複数のブロックチェーン加速化ネットワークを使用するためのプロセスの例を図示している図である。
【図９】本明細書の実施形態による、装置のモジュールの例を図示している図である。
【図１０】本明細書の実施形態による、装置のモジュールの例を図示している図である。
【図１１】本明細書の実施形態による、装置のモジュールの例を図示している図である。
【発明を実施するための形態】
【００１９】
様々な図面における類似の参照記号は類似の要素を示す。
【００２０】
本明細書の実施形態は、ブロックチェーンネットワークトランザクションを改善するためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信を加速化することを目的としている。
【００２１】
いくつかの実施形態においては、アクションは、ブロックチェーントランザクション加速化システムにおいて、ブロックチェーン内の第1のノードを介して送信された第1のトランザクションを受信するステップと、ブロックチェーントランザクション加速化システムにおいて、第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信するステップであって、少なくとも1つの第2のトランザクションは、第1のノードとは異なるブロックチェーン内の少なくとも1つの第2のノードに第1のノードによって送信される、ステップと、ブロックチェーントランザクション加速化システムによって、第1のトランザクションと少なくとも1つの第2のトランザクションとを含む受信トランザクションのうちの最初に受信したトランザクションを実行するステップと、ブロックチェーントランザクション加速化システムによって、受信トランザクションの残りのトランザクションが最初に受信したトランザクションと同一であると決定すると、残りのトランザクションを破棄するステップとを含む。
【００２２】
本明細書の実施形態についてのさらなる状況をあげるとすれば、上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)およびブロックチェーンネットワークとも称することができる分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でトランザクションを実施しデータを記憶することを可能にする。ブロックチェーンという用語は一般的に通貨ネットワークに関連深いが、ブロックチェーンは任意の特定のユースケースを指すわけではなくDLSを一般的に指すために本明細書では使用している。
【００２３】
ブロックチェーンは、トランザクションが変更不可能となる方法でトランザクションを記憶するデータ構造である。そのため、ブロックチェーン上に記録されるトランザクションは、信頼性のあるものおよび信頼できるものとなる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内のその直前にある前のブロックに連結される。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによって既に検証されているトランザクションは、ハッシュ化され、Merkleツリーに符号化される。merkleツリーは、ツリーのリーフノードにおけるデータがハッシュ化され、ツリーの各ブランチにおけるすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方へと進行し続け、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶している。ツリーに記憶されているトランザクションであることを意味するハッシュは、それがツリーの構造と一致しているかどうかを決定することによって素早く検証され得る。
【００２４】
ブロックチェーンは、トランザクションを記憶するための分散化または少なくとも部分的に分散化されたデータ構造である一方で、ブロックチェーンネットワークは、トランザクションをブロードキャストすること、検証すること、および有効性を確認することなどによって、1つまたは複数のブロックチェーンを管理、更新、および維持管理するコンピューティングノードのネットワークである。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
【００２５】
パブリックブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。例えば、数百、数千、さらには数百万のエンティティがパブリックブロックチェーンネットワークに協力し得るし、その各々がパブリックブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、パブリックブロックチェーンネットワークを、関与エンティティに対するパブリックネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加するために、大部分のエンティティ(ノード)はブロックごとに記帳する必要がある。例示的なパブリックブロックチェーンネットワークは、ブロックチェーンと称する分散型台帳を活用する特定のピア・ツー・ピア支払ネットワークを含む。しかしながら、上述したように、ブロックチェーンという用語は、任意の特定のブロックチェーンネットワークを特に指すわけではなく分散型台帳を一般的に指すために使用される。
【００２６】
一般に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてに共有され、グローバルブロックチェーンに記憶されている。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全ステータスコンセンサスとなる。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがパブリックブロックチェーンネットワークにおいて実施される。例示的なコンセンサスプロトコルは、プルーフ・オブ・ワーク(POW)(例えば、いくつかの通貨ネットワークにおいて実施される)、プルーフ・オブ・ステーク(POS)、およびプルーフ・オブ・オーソリティ(POA)を含むがこれらに限定されない。非限定的な例として、POWをここではさらに参照する。
【００２７】
一般に、プライベートブロックチェーンネットワークは、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する特定のエンティティに対して提供されるものである。エンティティは、どのノードがブロックチェーンネットワークに関与することができるかを制御する。それゆえ、プライベートブロックチェーンネットワークは、誰がネットワークに関与することができるかについての制約、およびそれらの関与のレベル(例えば、あるトランザクションに限定)についての制約を設定している、パーミッション型ネットワークと一般的には称される。(例えば、既存の関与者が新規エンティティの追加について表決する、監督機関が許可を制御することができるといった)様々なタイプのアクセス制御機構を使用することができる。
【００２８】
一般に、コンソーシアムブロックチェーンネットワークは、関与エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは権限を与えられたノードのセットによって制御され、1つまたは複数のノードがそれぞれのエンティティ(例えば、金融機関、保険会社)によって管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、コンソーシアムブロックチェーンネットワークを、関与エンティティに対するプライベートネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、各エンティティ(ノード)はブロックごとに記帳する必要がある。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、少なくともエンティティ(ノード)のサブセット(例えば、少なくとも7つのエンティティ)はブロックごとに記帳する必要がある。
【００２９】
関与エンティティ間でパブリックとなっているパブリックブロックチェーンネットワークを参照して、本明細書の実施形態をここではさらに詳細に説明している。しかしながら、本明細書の実施形態が任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることも考えられる。
【００３０】
上記の事情を考慮してここではさらに詳細に本明細書の実施形態を説明している。より詳細には、上述したように、本明細書の実施形態は、トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信を加速化することである。第1の例(図3A〜図4を参照して説明)においては、いくつかのトランザクションルートがより高速になり得るように、トランザクションの到達の速度を低減するためにトランザクションが繰り返され得る、このことが、トランザクションの総合的な実行効率を改善し得る。第2の例(図5〜図6を参照して説明)においては、ネットワーク加速化ノードが、トランザクションを転送するノードを加速化するためにブロックチェーンネットワークにおいて使用され得るし、このことが、トランザクション伝搬レートを改善し得る。第3の例(図7〜図8を参照して説明)においては、異なるブロックチェーンシステムのための統一的なネットワーク加速化サービスを提供し得るパブリックノード加速化ネットワークが確立され得る。パブリックノード加速化ネットワークの確立は、例えば、各ブロックチェーンシステムに専用の加速化ネットワークを実施することに関するコストを回避することによって、コストを低減し得る。
【００３１】
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を図示している。いくつかの例においては、例示的な環境100は、エンティティがブロックチェーンネットワーク102に関与することを可能にし得る。ブロックチェーンネットワーク102は、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークであり得る。例示的な環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。いくつかの例においては、ネットワーク110は、ブロックチェーンネットワーク102との通信およびブロックチェーンネットワーク102内の通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。
【００３２】
図示した例においては、コンピューティングシステム106、108は各々、ブロックチェーンネットワーク102内のノードとしての関与を可能にする任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスは、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含むがこれらに限定されない。いくつかの例においては、コンピューティングシステム106、108は、ブロックチェーンネットワーク102と相互接続するための1つまたは複数のコンピュータ実施サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(例えば、他の関与者)とのそのトランザクションを管理するために使用するトランザクション管理システムなどといった、第1のエンティティ(例えば、関与者A)のコンピュータ実施サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(例えば、他の関与者)とのそのトランザクションを管理するために使用するトランザクション管理システムなどといった、第2のエンティティ(例えば、関与者B)のコンピュータ実施サービスをホストすることができる。図1の例においては、ブロックチェーンネットワーク102を、ノードのピア・ツー・ピアネットワークとして表しており、コンピューティングシステム106、108は、ブロックチェーンネットワーク102に関与する、第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
【００３３】
図2は、本明細書の実施形態による、概念的機構200の例を図示している。例示的な概念的機構200は、関与者A、関与者B、および関与者Cにそれぞれ対応する関与者システム202、204、206を含む。各関与者(例えば、ユーザ、企業)は、少なくとも一部がブロックチェーン216に情報を変更不可能な形で記録する複数のノード214を含むピア・ツー・ピアネットワークとして提供されたブロックチェーンネットワーク212に関与する。単一のブロックチェーン216をブロックチェーンネットワーク212内に概略的に図示しているが、本明細書でさらに詳細に説明しているように、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって維持管理される。
【００３４】
図示した例においては、関与者システム202、204、206の各々は、関与者A、関与者B、および関与者Cによってまたはそれらの代わりにそれぞれ提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書で使用されており、ノードは、ブロックチェーンネットワーク212に接続されている個々のシステム(例えば、コンピュータ、サーバ)を一般的に指し、それぞれの関与者がブロックチェーンネットワークに関与することを可能にする。図2の例においては、関与者は、各ノード214に対応する。しかしながら、関与者がブロックチェーンネットワーク212内の複数のノード214を処理し得ることおよび/または複数の関与者がノード214を共有し得ることも考えられる。いくつかの例においては、関与者システム202、204、206は、あるプロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用して、および/またはリモートプロシージャコール(RPC)を使用して、ブロックチェーンネットワーク212と通信するまたはブロックチェーンネットワーク212を介して通信する。
【００３５】
ノード214は、ブロックチェーンネットワーク212内の関与についての様々な度合いを有し得る。例えば、いくつかのノード214がコンセンサスプロセス(例えば、ブロックをブロックチェーン216に追加するマイナーノードとして)関与し得る一方で、他のノード214はコンセンサスプロセスには関与しない。別の例としては、いくつかのノード214がブロックチェーン216の完全なコピーを記憶する一方で、他のノード214はブロックチェーン216の一部のコピーのみを記憶する。例えば、データアクセス権は、それぞれの関与者がそのそれぞれのシステムに記憶しているブロックチェーンデータに制限し得る。図2の例においては、関与者システム202、204、206は、ブロックチェーン216の完全なコピー216'、216''、216'''をそれぞれ記憶している。
【００３６】
ブロックチェーン(例えば、図2)のブロックチェーン216は、各ブロックがデータを記憶しているブロックのチェーンで構成される。例示的なデータは、2つ以上の関与者間のトランザクションを表すトランザクションデータを含む。トランザクションを非限定的な例として本明細書では使用しているが、任意の適切なデータがブロックチェーンに記憶され得ること(例えば、ドキュメント、画像、ビデオ、オーディオ)も考えられる。例示的なトランザクションは、価値のあるもの(例えば、資産、製品、サービス、および通貨)の交換を含み得るがこれらに限定されない。トランザクションデータは、ブロックチェーン内に変更不可能な形で記憶される。すなわち、トランザクションデータを変更することはできない。
【００３７】
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長のハッシュ値(文字列データとしても提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにおけるわずかな変化でさえも完全に異なるハッシュ値という結果になることを保証している。さらに、上述したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なく、ハッシュ値の長さは固定される。ハッシュ化は、ハッシュ機能によってトランザクションデータを処理してハッシュ値を生成することを含む。例示的なハッシュ機能は、256ビットハッシュ値を出力するセキュアなハッシュアルゴリズム(SHA)-256を含むがこれに限定されない。
【００３８】
複数のトランザクションのトランザクションデータがハッシュ化されブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供されると、それら自身がハッシュ化され別のハッシュを提供する。このプロセスは、すべてのトランザクションがブロックに記憶されるように、単一のハッシュ値が提供されるまで繰り返される。このようなハッシュ値は、Merkleルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションについての何らかの変化は、そのハッシュ値における変化、最終的に、Merkleルートハッシュにおける変化をもたらすことになる。
【００３９】
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに関与し、競合してブロックをブロックチェーンに追加する。そのようなノードをマイナー(またはマイナーノード)と称する。上記で記載したPOWを非限定的な例として使用する。
【００４０】
マイナーノードは、コンセンサスプロセスを実行して、トランザクションをブロックチェーンに追加する。複数のマイナーノードがコンセンサスプロセスに関与しているが、1つのマイナーノードのみがブロックをブロックチェーンに書き込むことができる。すなわち、マイナーノードは、コンセンサスプロセスにおいて競合してそれらのブロックをブロックチェーンに追加する。さらに詳細には、マイナーノードは、(例えば、存在するのであれば、ブロックに含めることができるトランザクションの数についての所定の制限まで)トランザクションプールから保留となっているトランザクションを定期的に収集する。トランザクションプールは、ブロックチェーンネットワーク内の関与者からのトランザクションメッセージを含む。マイナーノードは、ブロックを構築し、トランザクションをブロックに追加する。トランザクションをブロックに追加する前に、マイナーノードは、トランザクションのいずれかがブロックチェーンのブロックに既に含まれているかどうかをチェックする。あるトランザクションが別のブロックに既に含まれている場合には、そのトランザクションは破棄する。
【００４１】
マイナーノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、単一のハッシュ値がブロック内のすべてのトランザクションに提供される(Merkleルートハッシュ)まで、ハッシュ値がペアとなるように組み合わせてさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。マイナーはまた、ブロックチェーン内の最新のブロック(すなわち、ブロックチェーンに追加された最終ブロック)のハッシュ値を決定する。マイナーノードはまた、ノンス値およびタイムスタンプをブロックヘッダに追加する。マイニングプロセスにおいては、マイナーノードは、所要のパラメータを満たすハッシュ値を探し出すことを試みる。マイナーノードは、所要のパラメータを満たすハッシュ値を探し出すまでノンス値を変化し続ける。
【００４２】
ブロックチェーンネットワーク内のいずれのマイナーも、所要のパラメータを満たすハッシュ値を探し出すことを試み、このようにして、互いに競合する。最終的には、マイナーノードの1つが、所要のパラメータを満たすハッシュ値を探し出し、これをブロックチェーンネットワーク内の他のマイナーノードのすべてに公告する。他のマイナーノードは、ハッシュ値を検証し、正しいと決定された場合には、ブロック内の各トランザクションを検証し、ブロックを受諾し、ブロックをそれらのブロックチェーンのコピーに付け加える。このように、ブロックチェーンのグローバルな状態が、ブロックチェーンネットワーク内のすべてのマイナーノードにわたって一致することになる。上記で説明したプロセスはPOWコンセンサスプロトコルである。
【００４３】
非限定的な例を図2を参照して提供している。この例においては、関与者Aが、ある額の通貨を関与者Bに送ることを望んでいる。関与者Aは、トランザクションメッセージ(例えば、From、To、およびValueのフィールを含む)を生成し、ブロックチェーンネットワークにトランザクションメッセージを送信する、ブロックチェーンネットワークは、トランザクションメッセージをトランザクションプールに追加する。ブロックチェーンネットワーク内の各マイナーノードは、ブロックを作成し、(例えば、存在するのであれば、ブロックに追加することができるトランザクションの数の所定の制限まで)トランザクションプールからすべてのトランザクションを取り出し、トランザクションをブロックに追加する。このように、関与者Aによって発行されたトランザクションが、マイナーノードのブロックに追加される。
【００４４】
いくつかのブロックチェーンネットワークにおいては、暗号化がトランザクションのプライバシーを保持するために実施される。例えば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を理解することができないように、2つのノードがトランザクションをプライベートな状態を維持することを望む場合には、ノードはトランザクションデータを暗号化し得る。暗号化の例は、対称暗号化および非対称暗号化を含むがこれらに限定されない。対称暗号化とは、暗号化(平文から暗号文を生成すること)および復号(暗号文から平文を生成すること)の両方に関する単一の鍵を使用する暗号化プロセスを指す。対称暗号化においては、同一の鍵が複数のノードで利用可能であるため、各ノードがトランザクションデータを暗号化/復号し得る。
【００４５】
非対称暗号化は、各々が秘密鍵および公開鍵を含む鍵のペアを使用しており、秘密鍵はそれぞれのノードにのみに対して既知となっており、公開鍵はブロックチェーンネットワーク内の他のノードのいずれかまたはすべてに対して既知となっている。あるノードは、別のノードの公開鍵を使用してデータを暗号化し、暗号化されたデータは、他のノードの秘密鍵を使用して復号され得る。例えば、図2を再び参照すれば、関与者Aは、関与者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを関与者Bに送信し得る。関与者Bは、その秘密鍵を使用して、暗号化されたデータ(暗号文)を復号し、元のデータ(平文)を抽出し得る。ノードの公開鍵で暗号化されたメッセージのみが、ノードの秘密鍵を使用して復号され得る。
【００４６】
非対称暗号化は、トランザクション内の関与者がトランザクション内の他の関与者だけでなくトランザクションの有効性を確認することを可能にするデジタル署名を提供するために使用される。例えば、あるノードは、メッセージをデジタル的に署名し得るし、別のノードは、関与者Aのデジタル署名に基づいてメッセージがそのノードによって送信されたことを確認し得る。デジタル署名はまた、メッセージが送信中に改竄されていないことを保証するために使用され得る。例えば、図2を再び参照すれば、関与者Aは、メッセージを関与者Bに送信しようとしている。関与者Aは、メッセージのハッシュを生成し、その後、その秘密鍵を使用して、ハッシュを暗号化して、暗号化したハッシュとしてデジタル署名を提供する。関与者Aは、デジタル署名をメッセージに付け加え、デジタル署名付きのメッセージを関与者Bに送信する。関与者Bは、関与者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。関与者Bは、メッセージをハッシュ化し、ハッシュを比較する。ハッシュが同一である場合には、関与者Bは、メッセージが確かに関与者Aからのものであり改竄されていないことを確認することができる。
【００４７】
いくつかの実施形態においては、例えば、Node_Aが同一のトランザクションの複数のコピーを送信するならば、ブロックチェーン内のノード間のより高速な通信を実現することができる。例えば、トランザクションをNode_B(例えば、送信先ノード)に送信するNode_Aに加えて、Node_Aはまた、トランザクションの複製を少なくとも1つの他のノードに送信し得る。例えば、第3のノードが、より高速なネットワーク伝送を提供する(または、もたらす)ことが可能な場合があり得る。例えば、Node_Aから直接到来する伝送の前にネットワークNode_Bへの伝送の配信の最終的な完了を手がけることができるならば、より高速なネットワーク伝送を実現し得る。一般的に、第3のノードに送信されるトランザクションをNode_Bに配信することができるが、追加の中間ノードが存在し得る。このように、トランザクションの複製は、ブロックチェーンネットワークの中継および転送機能を使用し得る。トランザクションの複製はまた、同一のトランザクションの複製を伝えることによってブロックチェーンネットワークに対する繰り返し攻撃(例えば、マルウェアまたは不正アクセス)を阻止するのに役立つ。ブロックチェーンネットワークのこれらの機能の結果として、トランザクションは、可能な限り高速に送信先ノードに配送され得る。トランザクションのより高速な配信の利点は、送信先ノードにおけるトランザクションのより高速な実行をもたらすことにある。
【００４８】
図3Aは、ブロックチェーン内の2つのノード間で直接送信(または配信)されるトランザクションのための経路300の例を示すブロック図である。例えば、経路300が、Node_B304による実行のためにNode_B304にNode_A302によって送信されたトランザクションのために使用され得る。いくつかのケースにおいては、トランザクションが、Node_A302とNode_B304との間の直接通信306を使用して送信され得る。そのため、図3Aは、ブロックチェーン内の一方のノードから他方のノードへとトランザクションを送信するための従来の技法を示し得る。しかしながら、ブロックチェーンによって使用されるネットワークにおける不確実性に起因して、ブロックチェーン内のノード間の接続性は不利な状況を有し得る。例えば、ノードが同一のネットワーク上に存在しない場合、または、ブロックチェーンノードが異なる国にデプロイされている場合には、ネットワークの直接接続(例えば、直接通信306)は、トランザクションの考えられる高速な経路ではなくなり得る。
【００４９】
図3Bは、ブロックチェーントランザクション加速化システム320内の複数の転送トランザクションを送信する際に使用される経路の例を示すブロック図である。ブロックチェーントランザクション加速化システム320は、例えば、本明細書における他の図(図1から図2など)を参照して説明したコンポーネントを使用して、実施され得る。
【００５０】
ブロックチェーントランザクション加速化システム320は、(例えば、複数のトランザクション転送を用いないおよび図3Aを参照して説明した)単一の通信経路を使用するシステムに関する改善を提供し得る。例えばおよび図3Bに示しているように、Node_A302とNode_B304との間の直接通信306は、トランザクションのためにそのまま使用され得る。しかしながら、直接通信306を使用することに加えて、トランザクションは、複製されるとともに追加のノード308〜312に送信され得る。例えば、Node_B304へのトランザクションの配信を加速化するために、Node_A302はまた、通信経路314を介してNode_X308、Node_Y310、およびNode_Z312にトランザクションを送信し得る。トランザクションは、その後、通信経路316を介してNode_X308、Node_Y310、およびNode_Z312によって転送され得る。Node_A302がこのようにして同一のトランザクションの複数のコピー(現在の例においては、全部で4つのトランザクションインスタンス)を送信する際に、Node_A302は、どのトランザクションがNode_B304に届くことになる最初のトランザクションとなるかは把握していない。Node_B304は受信した最初のトランザクションを処理した後に複製トランザクションを破棄するように構成され得るため、トランザクションの到達順序は問題としていない。
【００５１】
受信ノード(および、現在の例におけるトランザクションの送信先ノード)として機能する、ノード_B304は、複数の同一のトランザクションを受信することになり得る。最初のトランザクションのみが実行されることになる。複製トランザクションであると決定された他のトランザクションは、ブロックチェーンシステムによって無効なトランザクションとして自動的に識別され得る。そのため、複製トランザクションが実行されることはない。
【００５２】
複製トランザクションは様々な方法で決定され得る。例えば、トランザクションは、トランザクションが同一のデジタル署名を有するならば複製トランザクションであると決定され得る。トランザクションを受信すると、例えば、トランザクションのデジタル署名は最近実行された(または最初に到達した)トランザクションと比較され得る。複製トランザクションを決定するほかの方法も(例えば、共通のブロックチェーン技術を使用して)使用され得る。
【００５３】
時間経過とともに、ノードごとに生じる伝送速度を記録および追跡するために統計データが収集および維持管理され得る。例えば、多くのノードは、Node_X308、Node_Y310、およびNode_Z312によってまたそれらを介してトランザクションをルーティングし得る。Node_Y310が時間経過とともにNode_X308およびNode_Z312より高速であると決定された場合には、例えば、その後、Node_Y310が優先ノードとなり得る。いくつかの実施形態においては、優先ノードのリストが維持管理され得るし、トランザクションが複数のノードを経由して送信される場合には、最速のノードがまず選択されることになり得る。時間経過とともに、より遅いノードがブロックチェーンシステムによって回避され得る。
【００５４】
いくつかの実施形態においては、選択されるノードは、速度に加えて様々な要因に基づいて選択され得る。例えば、いくつかのノードは、一日の様々な時間帯または曜日においてより高速となり得る。別の例においては、いくつかのノードは、追跡した伝送速度に加えて、所与のトランザクションのための予測伝送速度の指標であり得るそれらの地理的ロケーションに基づいて回避され得る。
【００５５】
いくつかの実施形態においては、異なる技法が、どのようにして多くの複製トランザクションを送信するかおよびどのノードが複製トランザクションを送信するために使用されることになるかを決定するために使用され得る。例えば、ブロックチェーンシステムは、別個の複製トランザクションを送信ノードにとってアクセス可能な各ハブに送信し得る。各ハブは、例えば、異なるサービス提供部に対応し得る。時間経過とともに、ブロックチェーンシステムは、最良かつ最速の提供部を識別するデータベースを構築し得る。いくつかの実施形態においては、サービス提供部にスコアを割り当て得るし、最高スコアは複製トランザクションをルーティングする際に最速のサービス提供部であった履歴を有するサービス提供部に割り当てられる。いくつかの実施形態においては、トランザクションは、多すぎるトラフィックの所為で単一のサービス提供部が飽和してしまわないように、いくつかの上位のスコアを有するサービス提供部を介して展開され得る。
【００５６】
図4は、ブロックチェーンネットワークにおいて複製トランザクションを使用するための例示的なプロセス400を図示している。プロセス400は、本明細書の実施形態に従って実行され得る。いくつかの実施形態においては、例示的なプロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。
【００５７】
プロセス400は、ブロックチェーン内の1つまたは複数のノードにおいて、または、ブロックチェーンによってアクセス可能なサーバにおいて実施されるブロックチェーントランザクション加速化システムの一部であり得る(および、そのようなシステムにおいて実施され得る)。例えば、図3Bを参照して説明したブロックチェーントランザクション加速化システム320は、プロセス400を実施し得る。
【００５８】
402において、ブロックチェーン内の第1のノードを介して送信された第1のトランザクションが、ブロックチェーントランザクション加速化システムにおいて受信される。例として、ブロックチェーントランザクション加速化システム320内では、直接通信306が、Node_A302とNode_B304との間のトランザクションを送信するために使用され得る。402から、方法400は404に進む。
【００５９】
404において、第1のトランザクションの複製である少なくとも1つの第2のトランザクションが、ブロックチェーントランザクション加速化システムにおいて受信される、ここで、少なくとも1つの第2のトランザクションは、第1のノードとは異なるブロックチェーン内の少なくとも1つの第2のノードに第1のノードによって送信される。例として、ブロックチェーントランザクション加速化システム320は、(既にNode_B304に送信された)トランザクションの複製を追加のノード308〜312のうちの1つまたは複数に送信し得る。トランザクションの複製は、通信経路314を使用して送信され得る。
【００６０】
いくつかの実施形態においては、ブロックチェーン内の第1のノードとブロックチェーン内の少なくとも1つの第2のノードとは、異なるネットワークサービス提供部によって提供される異なるネットワークハブ内に存在し得る。例えば、Node_A302とNode_B304とは、異なる地域または国などといった独立したおよび異なるネットワークハブ内に存在し得る、または、異なるネットワークサービス提供部を使用し得る。
【００６１】
いくつかの実施形態においては、方法400は、少なくとも1つの第2のトランザクションを送信するために使用する複数の第2のノードを決定するステップをさらに含み得る。例えば、ブロックチェーントランザクション加速化システム320は、トランザクションの複製が送信される追加のノード308〜312のうちの特定の1つを選択し得る。404から、方法400は406に進む。
【００６２】
406において、第1のトランザクションと少なくとも1つの第2のトランザクションとを含む受信トランザクションのうちの最初に受信したトランザクションが、ブロックチェーントランザクション加速化システムによって実行される。例えば、Node_B304は、通信経路306および通信経路316を介して届く第1のトランザクションを実行し得る。最初に届くトランザクションは、どの通信経路が最速であるかに依存し得る。406から、方法400は408に進む。
【００６３】
408において、ブロックチェーントランザクション加速化システムによって、受信トランザクションの残りのトランザクションが最初に受信したトランザクションと同一であると決定すると、残りのトランザクションが破棄される。例えば、Node_B304は、最初に受信したトランザクションの1つまたは複数の複製を受信し得る。ノード_B304は、残りの(最初に受信しなかった)トランザクションが複製トランザクションであると決定し得る。ノード_B304は、その後、複製トランザクションを破棄し得る。
【００６４】
いくつかの実施形態においては、受信トランザクションの残りのトランザクションが最初に受信したトランザクションと同一であると決定することは、最初に受信したトランザクションのデジタル署名と一致している残りのトランザクションの各々のデジタル署名を識別することを含む。例えば、Node_B304は、トランザクションのデジタル署名と比較して一致するデジタル署名が存在していると決定することによって、残りの(最初に受信しなかった)トランザクションが複製トランザクションであると決定し得る。408の後に、方法400は停止し得る。
【００６５】
いくつかの実施形態においては、方法400は、より高速なトランザクション伝送速度を提供するブロックチェーン内のノードを決定するために、受信トランザクションについての伝送速度統計データを収集するステップをさらに含み得る。例えば、時間経過とともに、ブロックチェーントランザクション加速化システム320は、追加のノード308〜312のうちの1つまたは複数が他より高速なトランザクション配信速度を提供していたと決定し得る。トランザクション配信速度の情報は、ブロックチェーントランザクション加速化システム320によって時間経過とともに記憶および追跡され得る。
【００６６】
いくつかの実施形態においては、方法400は、所与の伝送送信ノードについて、伝送速度統計データに基づいて、トランザクションが送信されることになる対象の優先ノードのセットを決定するステップをさらに含み得る。例えば、ブロックチェーントランザクション加速化システム320は、複製トランザクションを送信するために使用するために追加のノード308〜312のうちのどれかを選択する際に、最速のトランザクション配信ノードを識別する統計データを使用し得る。
【００６７】
いくつかのケースにおいては、ブロックチェーンネットワークノード間の直接接続が常にブロックチェーンネットワークノード間の最速のトランザクション経路とはなり得ない。例えば、ノードAがある国に位置し得るし、ノードBが異なる国に位置し得る。ノードのロケーションは、異なる国(または他の地域)に位置していることにより、ネットワークの不安定性を作り出し得るまたは寄与し得る。Node_AからNode_Bへと送信されるトランザクションは、例えば、異なるネットワーク提供部に関連付けられた要因を含む、複合的な要因を含み得る。結果として、Node_AとNode_Bとの間の直接接続は、遅くまたは不安定になり得る。トランザクション配信の速度および信頼性は、例えば、ネットワーク提供部が対処する大量のトラフィックによって、影響を受け得る。Node_AとNode_Bとの間の直接接続として同一のネットワークを使用する大量のデータが送信されると、例えば、その後、ブロックチェーンネットワークのトランザクション実行効率は悪影響を受けることになり得る。前述したように、図3A〜図4を参照すれば、トランザクション実行効率に関する同一の問題を、複数のトランザクションを送信することによって改善することができる。いくつかの実施形態においては、トランザクション実行効率を、ブロックチェーン内のネットワーク加速化ノードを使用して改善することができる。
【００６８】
図5は、ブロックチェーン内のネットワーク加速化ノードを使用して送信されるトランザクションのためのブロックチェーントランザクション加速化システム500において使用される経路の例を示すブロック図である。経路を矢印で示したように、Node_A502は、トランザクションの送信部であり、Node_B504は、トランザクションの意図した受信部である。ノード_A502およびNode_B504は、例えば、それぞれLocal_Network_1 506およびLocal_Network_2 508などといった、異なるネットワークエリアにあり得る。ノード_A502とNode_B504とは、例えば、ブロックチェーンネットワークの一部である通信チャネル510を使用して、直接通信することが可能であり得る。しかしながら、トランザクションのより高速な伝送が存在し得る場合があり得るし、高速通信を提供する通信経路512を使用して実現し得る。結果として、Node_A502からNode_B504へのトランザクションの伝送は、少なくともTransfer_Node_A'514およびTransfer_Node_B'516を含む転送ノードを使用し得る。いくつかの実施形態においては、Transfer_Node_A'514は、Transfer_Node_B'516を介してトランザクションを転送せずにトランザクションを直接Node_B504に転送し得る。
【００６９】
転送ノードは、ネットワークエリア内の複数のノードにサービスを提供し得る。例えば、Node_A502およびNode_C518などの1つまたは複数の標準ノードが、Transfer_Node_A'514に割り当てられ得る。各標準ノードは、同一のネットワークエリア内または異なるネットワークエリア内の複数の転送ノードへのアクセスを有し得る。しかしながら、現在の例においては、ノードA/A'とノードB/B'とは各々、それら自身のネットワークエリアに属している。この場合には、伝送速度は、A'とB'との間に高速ネットワーク通信を提供する転送ノードの使用に基づいて、より高速になり得る。
【００７０】
加速化ノードの使用は、ネットワーク加速化ノード間に高速リンクを効率的に作成することによって、トランザクションのネットワーク伝送レートを加速化し得る。ネットワーク加速化ノード間の高速リンクが、ブロックチェーンシステムの総合的なトランザクション実行効率を改善し得る。
【００７１】
加速化ノードは、例えば、コンテンツへの関与またはトランザクションの対処を有することがないように(または、実質的にないように)設計され得る。そのため、加速化ノードのグループは、国際的なブロックチェーンネットワークにおいて特に有用となり得る転送ネットワークとして機能し得る。いくつかの実施形態においては、加速化ノードは、パブリックエンティティに提供される第三者加速化ネットワークなどのサービスとして提供され得る。送信されるとともに加速化ノードの転送ネットワークを使用する任意の所与のトランザクションは、ネットワークのいくつかの一部分を使用し得る。例えば、所与のトランザクションは、最短または最速の所与のトランザクションの配信のための経路を提供する加速化ノードを含むわずかばかりの加速化ノードのみを使用し得る。
【００７２】
いくつかの実施形態においては、最短経路アルゴリズムが、所与のトランザクションのために使用されることになる加速化ノードを選択するために使用され得る。最短経路アルゴリズムは、各加速化ノードに関する情報と、伝送速度を含む、トランザクションを送信することに関連するその統計データとを使用し得る。最短経路アルゴリズムによって使用される情報のいくつかは、時刻情報および地理的情報を含み得るまたは時刻情報および地理的情報に基づき得る。例えば、国家Cにある加速化ノードは、あるブロックチェーンネットワークにおいて日中にトラフィックが存在しない夜間の時間帯の間は最速になり得る。
【００７３】
図6は、ブロックチェーンネットワークにおいてトランザクションを送信するための加速化ノードを使用するためのプロセス600の例を図示している。プロセス600は、本明細書の実施形態に従って実行され得る。いくつかの実施形態においては、例示的なプロセス600は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。
【００７４】
プロセス600は、ブロックチェーン内の1つまたは複数のノードにおいて、または、ブロックチェーンによってアクセス可能なサーバにおいて実施されるブロックチェーントランザクション加速化システムの一部であり得る(および、そのようなシステムにおいて実施され得る)。例えば、図5を参照して説明したブロックチェーントランザクション加速化システム500は、プロセス600を実施し得る。
【００７５】
602において、第1のノードによって生成された第1のトランザクションが、ブロックチェーントランザクション加速化システムを使用して、ブロックチェーン内の加速化ノードに送信される、ここで、記第1のトランザクションは、第1のトランザクションの意図した受信部である第2のノードに直接送信される代わりに加速化ノードに送信され、第1のノードと、第2のノードと、加速化ノードとは、異なるノードである。例えば、ブロックチェーントランザクション加速化システム500を使用して、トランザクションがNode_A502から加速化ノードであるTransfer_Node_A'514へと送信され得る。ブロックチェーントランザクション加速化システム500は、例えば、Node_B504に直接トランザクションを送信する代わりに、Transfer_Node_A'514を選択し得る。選択決定は、例えば、通信チャネル512が通信チャネル510より高速である(または、その可能性が高い)との知見に基づき得る。
【００７６】
いくつかの実施形態においては、ブロックチェーン内の第1のノードおよびブロックチェーン内の第2のノードは、異なるネットワークにある。例えば、Node_A502とNode_B504とは、異なるネットワークエリアである、Local_Network_1 506とLocal_Network_2 508とにそれぞれ存在し得る。
【００７７】
いくつかの実施形態においては、加速化ノードは、異なるネットワーク内の1つまたは複数の特定の加速化ノードにトランザクションを転送するように構成され得る。例として、Transfer_Node_A'514は、指定加速化ノードとしてブロックチェーントランザクション加速化システム500内に構成され得る。
【００７８】
いくつかの実施形態においては、方法600は、第2のノードに直接トランザクションを送信することから予想されるトランザクション配信時間より加速化ノードを使用したトランザクション配信時間が高速であると予想されると決定したことに基づいて、加速化ノードを選択するステップをさらに含み得る。例えば、ブロックチェーントランザクション加速化システム500は、加速化ノードとしてTransfer_Node_A'514を使用することがNode_B504に直接トランザクションを送信することより高速である(または、その可能性が高い)との知見に基づいてTransfer_Node_A'514を選択し得る。602から、方法600は604に進む。
【００７９】
604において、トランザクションが、ブロックチェーントランザクション加速化システムによって、加速化ノードから第2のノードへと転送される。例えば、Transfer_Node_A'514は、Node_B504に通信経路512を介してトランザクションを転送し得る。
【００８０】
いくつかの実施形態においては、加速化ノードから第2のノードへとトランザクションを転送することは、受信サイドの加速化ノードの使用を含み得る。例えば、Transfer_Node_A'514は、Local_Network_2 508内の加速化ノードであるTransfer_Node_B'516などの受信サイドの加速化ノードに通信経路512を介してトランザクションを転送し得る。受信サイドの加速化ノード(例えば、Transfer_Node_B'516)は、トランザクションを第2のノード(例えば、Node_B504)に転送し得る。604から、方法600は606に進む。
【００８１】
606において、トランザクションが、第2のノードによって行われる。例として、Node_B504は、受信トランザクションを実行し得る。606の後に、方法600は停止し得る。
【００８２】
いくつかの実施形態においては、方法600は、トランザクション配信時間統計データの使用と、トランザクション配信時間統計データに基づいた加速化ノードの選択とをさらに含み得る。例えば、ブロックチェーントランザクション加速化システム500は、より高速なトランザクション配信時間を提供するブロックチェーン内の加速化ノードを決定するために、(例えば、通信チャネル512を使用して)配信トランザクションに対する統計データを収集し得る。その後、ブロックチェーントランザクション加速化システム500は、より高速なトランザクション配信時間を有する加速化ノード、例えば、Transfer_Node_A'514を選択し得る。
【００８３】
いくつかの実施形態においては、トランザクションが、同一のトランザクションの複数のコピーを送信することおよび加速化ノードを使用することを含む、上記で説明した技法の組合せを使用して送信され得る。例えば、送信ノードは、トランザクションのコピーを意図した受信ノードに送信し得る。トランザクションの配信時間を低減するために、送信ノードはまた、標準ノード(非加速化ノード)および加速化ノードを含む1つまたは複数の他のノードにトランザクションのコピーを送信し得る。いくつかの実施形態においては、提供される加速化ノードのネットワークはまた、トランザクションの伝送時間を改善するために使用される。
【００８４】
図7は、ブロックチェーントランザクション加速化システム700の複数のブロックチェーン加速化ネットワーク702の例についてのブロック図である。例えば、複数のブロックチェーン加速化ネットワーク702は、ブロックチェーン704を含む異なるブロックチェーンシステムのための統一的なネットワーク加速化サービスを提供するパブリックノード加速化ネットワークとして機能し得る。複数のブロックチェーン加速化ネットワーク702は、各ブロックチェーンシステムに専用の加速化ネットワークを確立するコストを低減または削減し得る。
【００８５】
ブロックチェーン704の所与のブロックチェーン内のノード708は、複数のブロックチェーン加速化ネットワーク702内の加速化ノード706と通信し得る。ネットワークの不確実性に起因して、加速化ネットワーク内のトランジットノードとして機能する加速化ノード706の使用は、ノード間の直接通信より効率的であり得る。したがって、ブロックチェーンシステムは、複数のブロックチェーン加速化ネットワーク702によって提供される情報転送の高速ネットワークを頼りにし得る。
【００８６】
異なるブロックチェーンシステムについては、ノード間の通信のための要件が同一であってもよく、そのため、複数のブロックチェーンシステムが同一の複数のブロックチェーン加速化ネットワーク702を再利用し得る。このことは、複数のブロックチェーン加速化ネットワーク702の再利用可能性を改善するとともに、ブロックチェーンシステム内のネットワークについての構築コストを低減または削減し得る。ブロックチェーンシステムが多数の通信要件を有し得るため節約を思い付き得る。ネットワークの不確実性に起因して、ノード間の直接通信効率がネットワーク加速化ノードを使用した間接通信より低速になる場合がある。
【００８７】
図8は、複数のブロックチェーン加速化ネットワークを使用するためのプロセス800の例を図示している。プロセス800は、本明細書の実施形態に従って実行され得る。いくつかの実施形態においては、例示的なプロセス800は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。
【００８８】
プロセス800は、ブロックチェーン内の1つまたは複数のノードにおいて、または、ブロックチェーンによってアクセス可能なサーバにおいて実施されるブロックチェーントランザクション加速化システムの一部であり得る(および、そのようなシステムにおいて実施され得る)。例えば、図7を参照して説明したブロックチェーントランザクション加速化システム700は、プロセス800を実施し得る。
【００８９】
802において、アクセスが、ブロックチェーントランザクション加速化システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速化ネットワークに対して提供される。ブロックチェーンは、例えば、第1のブロックチェーン704aおよび第2のブロックチェーン704bを含み得る。複数のブロックチェーン加速化ネットワークは、複数の加速化ノードを含む。各加速化ノードは、複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにとってアクセス可能である。例えば、ブロックチェーントランザクション加速化システム700において、アクセスが、ブロックチェーン704にとってアクセス可能な複数のブロックチェーン加速化ネットワーク702に対して提供される。複数のブロックチェーン加速化ネットワーク702は、各々がブロックチェーン704内の少なくとも1つのノード708にとってアクセス可能である加速化ノード706を含む。802から、方法800は804に進む。
【００９０】
804において、転送予定のトランザクションが、複数のブロックチェーンの第1のブロックチェーン内の第1のノードから第1の加速化ノードにおいて受信される。例として、転送予定のトランザクション710が、第1のブロックチェーン704a内の第1のノード708aから第1の加速化ノード706aにおいて受信される。804から、方法800は806に進む。
【００９１】
806において、転送予定のトランザクションが、第1の加速化ノードによって第2のノードに転送される。例えば、トランザクション710が、第1の加速化ノード706aによって第2のノードに転送され得る。第2のノードは、例えば、第2のブロックチェーン704b内のノード708bであり得る。別の例においては、第2のノードは、第2の加速化ノード706bであり得る。第1のブロックチェーン704a内の第1のノード708aと、第2のブロックチェーン704b内の第2のノード708bとは、異なるネットワーク内に存在し得る。806の後に、方法800は停止し得る。
【００９２】
いくつかの実施形態においては、方法800は、加速化ノードを選択するべく、配信トランザクションに対する統計データの使用をさらに含み得る。例えば、ブロックチェーンシステムは、ブロックチェーン704によって送信および受信されるとともに複数のブロックチェーン加速化ネットワーク702を使用する配信トランザクションに対する統計データを収集し得る。統計データは、より高速なトランザクション配信時間を提供する複数のブロックチェーン加速化ネットワーク702内の加速化ノード706を決定するために使用され得る。最速のトランザクション配信時間を有するものとして加速化ノード706が識別された後に、例えば、ブロックチェーントランザクション加速化システム700は、トランザクションを転送するために加速化ノード706を選択し得る。
【００９３】
いくつかの実施形態においては、方法800は、ブロックチェーンが複数のブロックチェーン加速化ネットワークに加入することを可能にするステップをさらに含み得る。例えば、複数のブロックチェーン加速化ネットワーク702に加入する要求が第3のブロックチェーン704cから受信され得る。複数のブロックチェーン加速化ネットワーク702へのアクセスが、その後、第3のブロックチェーン704cに提供され得る。
【００９４】
いくつかの実施形態においては、方法400、600、および800の一部を組み合わせて使用され得る。例えば、ブロックチェーントランザクション加速化システム420、500、および700は、ブロックチェーン内のトランザクションの配信を加速するために複製トランザクションと加速化ノードとの組合せを使用する1つの集団的ブロックチェーントランザクション加速化システムであり得るまたはそのようなシステムとして機能し得る。集団的ブロックチェーントランザクション加速化システムによってどの技法を使用するかの決定は、他の要因のうち、ネットワークの健全性およびトラフィックについての知見などのリアルタイム情報に基づき得る。
【００９５】
図9は、本明細書の実施形態による、装置900のモジュールの例を図示している。装置900は、トランザクションの再送信を使用してブロックチェーンネットワークにおいて(コンソーシアムネットワークまたは他のブロックチェーンタイプのネットワークなどにおいて)トランザクション配信を加速化することを可能にする装置の例示的な実施形態であり得る。装置900は、上記で説明した実施形態に対応し得るし、装置900は、ブロックチェーントランザクション加速化システムにおいて、ブロックチェーン内の第1のノードを介して送信された第1のトランザクションを受信するための第1の受信部または第1の受信ユニット902と、ブロックチェーントランザクション加速化システムにおいて、第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信するための第2の受信部または第2の受信ユニット904であって、少なくとも1つの第2のトランザクションは、第1のノードとは異なるブロックチェーン内の少なくとも1つの第2のノードに第1のノードによって送信される、第2の受信部または第2の受信ユニット904と、ブロックチェーントランザクション加速化システムによって第1のトランザクションと少なくとも1つの第2のトランザクションとを含む受信トランザクションのうちの最初に受信したトランザクションを実行するための実行部または実行ユニット906と、ブロックチェーントランザクション加速化システムによって受信トランザクションの残りのトランザクションが最初に受信したトランザクションと同一であると決定すると、残りのトランザクションを破棄するための廃棄部または破棄ユニット908とを含む。
【００９６】
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【００９７】
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
【００９８】
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
【００９９】
図9を再び参照すれば、トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信を加速化することを可能にする内部の機能モジュールおよび装置の構造を図示するものとして理解できよう。実行装置は、トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信を加速化することを可能にするように構成される装置の例であり得る。
【０１００】
図10は、本明細書の実施形態による、装置1000のモジュールの例を図示している。装置1000は、加速化ノードを使用してブロックチェーンネットワークにおいて(コンソーシアムネットワークまたは他のブロックチェーンタイプのネットワークなどにおいて)トランザクションの配信を加速化することを可能にするように構成される装置の例示的な実施形態であり得る。装置1000は、上記で説明した実施形態に対応し得るし、装置1000は、ブロックチェーントランザクション加速化システムを使用して第1のノードによって生成された第1のトランザクションをブロックチェーン内の加速化ノードに送信するための送信部または送信ユニット1002であって、第1のトランザクションは、第1のトランザクションの意図した受信部である第2のノードに直接送信される代わりに加速化ノードに送信され、第1のノードと、第2のノードと、加速化ノードとは、異なるノードである、送信部または送信ユニット1002と、ブロックチェーントランザクション加速化システムによって加速化ノードから第2のノードへとトランザクションを転送するための転送部または転送ユニット1004と、ブロックチェーントランザクション加速化システムによって第2のノードによるトランザクションを実行するための実行部または実行ユニット1006を含む。
【０１０１】
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１０２】
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
【０１０３】
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
【０１０４】
図10を再び参照すれば、加速化ノードを使用してブロックチェーンネットワークにおけるトランザクションの配信を加速化することを可能にする内部の機能モジュールおよび装置の構造を図示するものとして理解できよう。実行装置は、加速化ノードを使用してブロックチェーンネットワークにおけるトランザクションの配信を加速化することを可能にするように構成される装置の例であり得る。
【０１０５】
図11は、本明細書の実施形態による、装置1100のモジュールの例を図示している。装置1100は、(コンソーシアムネットワークまたは他のブロックチェーンタイプのネットワークなどにおいて)グローバル加速化ノードを使用してブロックチェーントランザクション速度を改善するように構成される装置の例示的な実施形態であり得る。装置1100は、上記で説明した実施形態に対応し得るし、装置1100は、ブロックチェーントランザクション加速化システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速化ネットワークに対するアクセスを提供するための提供部または提供ユニット1102であって、複数のブロックチェーン加速化ネットワークは、複数の加速化ノードを含み、各加速化ノードは、複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにとってアクセス可能である、提供部または提供ユニット1102と、複数のブロックチェーンの第1のブロックチェーン内の第1のノードから第1の加速化ノードにおいて、転送予定のトランザクションを受信するための受信部または受信ユニット1104と、第1の加速化ノードによって第2のノードにトランザクションを転送するための転送部または転送ユニット1106とを含む。
【０１０６】
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１０７】
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
【０１０８】
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
【０１０９】
図11を再び参照すれば、グローバル加速化ノードを使用してブロックチェーントランザクション速度を改善する内部の機能モジュールおよび装置の構造を図示するものとして理解できよう。実行装置は、グローバル加速化ノードを使用してブロックチェーントランザクション速度を改善するように構成される装置の例であり得る。
【０１１０】
本明細書において説明した発明特定事項ならびにアクションおよび処理の実施形態は、本明細書において開示した構造およびそれらの構造的均等物を含む、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアまたはファームウェアの形で、コンピュータハードウェアの形で、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、データ処理装置による実行のためにまたはデータ処理装置の処理を制御するために、コンピュータプログラムキャリア上に符号化された、例えばコンピュータプログラム命令の1つまたは複数のモジュールといった1つまたは複数のコンピュータプログラムとして実装され得る。キャリアは、有形非一時的コンピュータ記憶媒体であり得る。あるいはまたは加えて、キャリアは、データ処理装置による実行に適した受信機装置への伝送のために情報を符号化するために生成された、人為的に生成した伝搬信号、例えば、機械生成された電気信号、光信号、または電磁気信号であり得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得るもしくは一部であり得る。コンピュータ記憶媒体は伝搬信号ではない。
【０１１１】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを含む。データ処理装置は、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理ユニット)を含み得る。装置はまた、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
【０１１２】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも称するもしくはそのようなものとして説明した、コンピュータプログラムは、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境における実行に適した他のユニットとして、といったことを含む任意の形式で、デプロイされ得る。環境は、1つまたは複数のロケーションにおいてデータ通信ネットワークによって相互通信される1つまたは複数のコンピュータを含み得る。
【０１１３】
コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、必ずしも必要ではない。コンピュータプログラムは、例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトといった、他のプログラムまたはデータを保持するファイルの一部に、当該プログラム専用の単一のファイルに、または、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイルといった、複数の協調ファイルに、記憶され得る。
【０１１４】
本明細書において説明したプロセスおよびロジックフローは、1つまたは複数のコンピュータプログラムを実行し、入力データを処理して出力を生成することによって処理を行う、1つまたは複数のコンピュータによって行われ得る。プロセスおよびロジックフローはまた、例えばFPGA、ASIC、またはGPUといった特殊用途ロジック回路によって、または、特殊用途ロジック回路と1つまたは複数のプログラマブルコンピュータとの組合せによって、実装され得る。
【０１１５】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊用途マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理ユニットに基づき得る。一般的に、中央処理ユニットは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含み得る。中央処理ユニットおよびメモリは、特殊用途ロジック回路によって補完され得る、またはそれに組み込まれ得る。
【０１１６】
一般的に、コンピュータはまた、1つまたは複数のマスストレージデバイスを含むことになる、または、1つまたは複数のマスストレージデバイスからデータを受信もしくは1つまたは複数のマスストレージデバイスにデータを送信することが動作可能なように結合されることになる。マスストレージデバイスは、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスク、またはソリッドステートドライブであり得る。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要はない。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスといった別のデバイスに組み込まれ得る。
【０１１７】
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するための、例えばLCD(液晶ディスプレイ)モニタといった、表示デバイスと、コンピュータに入力を提供することを可能にする、例えば、キーボードおよび例えば、マウス、トラックボール、またはタッチパッドなどのポインティングデバイスといった、入力デバイスとを有するコンピュータ上で実装され得る、または、そのようなコンピュータと通信するように構成され得る。同様に、他の種類のデバイスがユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することおよびユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、または、例えばスマートフォンもしくは電子タブレットといったユーザデバイス上で動作するアプリとのインタラクションを行うことによって、ユーザとのインタラクションを行い得る。また、コンピュータは、メッセージングアプリケーションを動作する例えばスマートフォンといったパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザとのインタラクションを行い得る。
【０１１８】
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成される」という用語を使用している。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータのシステムとは、処理においてシステムに処理またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされているシステムを意味する。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると装置に処理またはアクションを行わせる命令を含む1つまたは複数のプログラムを意味する。特定の処理またはアクションを行うように構成される特殊用途ロジック回路とは、処理またはアクションを行う電子ロジックを有する回路を意味する。
【０１１９】
本明細書は多くの特定の実施形態の詳細を含んでいるが、これらを、特許請求の範囲そのものによって定義される主張しているものについての範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に固有のものであり得る特徴の説明として解釈すべきである。別個の実施形態に即して本明細書において説明したある特徴もまた、組み合わせることで単一の実施形態で実現され得る。反対に、単一の実施形態に即して説明した様々な特徴もまた、別々に複数の実施形態でまたは任意のサブコンビネーションで実現され得る。さらに、ある組合せで動作するものとして特徴を上記で説明している場合があるが、たとえ最初はそのように主張していたとしても、いくつかのケースにおいては、主張した組合せのうちの1つまたは複数の特徴をその組合せから削除し得るし、主張したものをサブコンビネーションまたはサブコンビネーションの変形とし得る。
【０１２０】
同様に、処理を特定の順序で図面に図示するとともに特許請求の範囲に記載しているが、このことを、示した特定の順序でもしくは一連の順序でそのような処理を行う必要があると理解すべきではないし、または、望ましい結果を達成するために図示した処理のすべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理および並行処理が有利となり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージ化され得ると理解されたい。
【０１２１】
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ得るし、それでも望ましい結果を達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために示した特定の順序または一連の順序を必ずしも必要とするわけではない。いくつかのケースにおいては、マルチタスク処理およびパラレル処理が有利となり得る。
【符号の説明】
【０１２２】
110  ネットワーク
202  関与者A
204  関与者B
206  関与者C
302  Node_A
304  Node_B
308  Node_X
310  Node_Y
312  Node_Z
502  Node_A
504  Node_B
506  Local_Network_1
508  Local_Network_2
512  高速接続
514  Transfer_Node_A'
516  Transfer_Node_B'
518  Node_C
702  複数のブロックチェーン加速化ネットワーク
704a  Blockchain_A
704b  Blockchain_B
704c  Blockchain_C
710  トランザクション
902  第1の受信部
904  第2の受信部
906  実行部
908  廃棄部
1002  送信部
1004  転送部
1006  実行部
1102  提供部
1104  受信部
1106  転送部
【図１】
0006892514.tif 000002
【図２】
0006892514.tif 000003
【図３Ａ】
0006892514.tif 000004
【図３Ｂ】
0006892514.tif 000005
【図４】
0006892514.tif 000006
【図５】
0006892514.tif 000007
【図６】
0006892514.tif 000008
【図７】
0006892514.tif 000009
【図８】
0006892514.tif 000010
【図９】
0006892514.tif 000011
【図１０】
0006892514.tif 000012
【図１１】
0006892514.tif 000013