(57)【要約】  ブロックチェーントランザクション加速システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスが与えられ、複数のブロックチェーン加速ネットワークは、複数の加速ノードを含み、各加速ノードは、複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能である。転送すべきトランザクションは、第1の加速ノードにおいて、複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから受信される。トランザクションは、第1の加速ノードによって第2のノードに転送される。
2020516108.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーントランザクション加速システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスを与えるステップであって、前記複数のブロックチェーン加速ネットワークが、複数の加速ノードを含み、各加速ノードが、前記複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能である、ステップと、
第1の加速ノードにおいて、前記複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから、転送すべきトランザクションを受信するステップと、
前記第1の加速ノードによって、第2のノードに前記トランザクションを転送するステップと
を含む、コンピュータ実装方法。
【請求項２】
前記第2のノードが、前記複数のブロックチェーンの第2のブロックチェーン内のノードである、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記第2のノードが、前記複数のブロックチェーン加速ネットワーク内の第2の加速ノードである、請求項1に記載のコンピュータ実装方法。
【請求項４】
前記第1のブロックチェーン内の前記第1のノードと、第2のブロックチェーン内の前記第2のノードとが、異なるネットワーク内に存在する、請求項1に記載のコンピュータ実装方法。
【請求項５】
配信されたトランザクションに関する統計を収集して、より高速なトランザクション配信時間を実現する前記複数のブロックチェーン加速ネットワーク内の加速ノードを決定するステップと、
前記ブロックチェーントランザクション加速システムによる使用のために、より高速なトランザクション配信時間を有する加速ノードを選択するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項６】
前記ブロックチェーントランザクション加速システムが、前記複数のブロックチェーンおよび前記複数のブロックチェーン加速ネットワーク内で実装される、請求項1に記載のコンピュータ実装方法。
【請求項７】
前記複数のブロックチェーン加速ネットワークに加入するための要求を第3のブロックチェーンから受信するステップと、
前記複数のブロックチェーン加速ネットワークへのアクセスを前記第3のブロックチェーンに与えるステップと
をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項８】
命令で符号化された、1つまたは複数のコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、
ブロックチェーントランザクション加速システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスを与えることであって、前記複数のブロックチェーン加速ネットワークが、複数の加速ノードを含み、各加速ノードが、前記複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能であること、
第1の加速ノードにおいて、前記複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから、転送すべきトランザクションを受信すること、および
前記第1の加速ノードによって、第2のノードに前記トランザクションを転送すること
を行わせる、1つまたは複数のコンピュータ可読記憶媒体。
【請求項９】
前記第2のノードが、前記複数のブロックチェーンの第2のブロックチェーン内のノードである、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１０】
前記第2のノードが、前記複数のブロックチェーン加速ネットワーク内の第2の加速ノードである、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１１】
前記第1のブロックチェーン内の前記第1のノードと、第2のブロックチェーン内の前記第2のノードとが、異なるネットワーク内に存在する、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１２】
配信されたトランザクションに関する統計を収集して、より高速なトランザクション配信時間を実現する前記複数のブロックチェーン加速ネットワーク内の加速ノードを決定し、
前記ブロックチェーントランザクション加速システムによる使用のために、より高速なトランザクション配信時間を有する加速ノードを選択する
ように、前記1つまたは複数のコンピュータによって実行可能な命令をさらに有する、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１３】
前記ブロックチェーントランザクション加速システムが、前記複数のブロックチェーンおよび前記複数のブロックチェーン加速ネットワーク内で実装される、請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１４】
前記複数のブロックチェーン加速ネットワークに加入するための要求を第3のブロックチェーンから受信し、
前記複数のブロックチェーン加速ネットワークへのアクセスを前記第3のブロックチェーンに与える
ように、前記1つまたは複数のコンピュータによって実行可能な命令をさらに有する、請求項9に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１５】
1つまたは複数のプロセッサと、
命令で符号化された、1つまたは複数のコンピュータ可読記憶媒体であって、前記命令は、前記1つまたは複数のプロセッサによって実行されるときに、前記1つまたは複数のプロセッサに、
ブロックチェーントランザクション加速システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスを与えることであって、前記複数のブロックチェーン加速ネットワークが、複数の加速ノードを含み、各加速ノードが、前記複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能であること、
第1の加速ノードにおいて、前記複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから、転送すべきトランザクションを受信すること、および
前記第1の加速ノードによって、第2のノードに前記トランザクションを転送すること
を行わせる、1つまたは複数のコンピュータ可読記憶媒体と
を備える、システム。
【請求項１６】
前記第2のノードが、前記複数のブロックチェーンの第2のブロックチェーン内のノードであり、
前記複数のブロックチェーン加速ネットワークに加入するための要求を第3のブロックチェーンから受信し、
前記複数のブロックチェーン加速ネットワークへのアクセスを前記第3のブロックチェーンに与える
ように、前記1つまたは複数のコンピュータによって実行可能な命令をさらに有する、請求項15に記載のシステム。
【請求項１７】
前記第2のノードが、前記複数のブロックチェーン加速ネットワーク内の第2の加速ノードである、請求項15に記載のシステム。
【請求項１８】
前記第1のブロックチェーン内の前記第1のノードと、第2のブロックチェーン内の前記第2のノードとが、異なるネットワーク内に存在する、請求項15に記載のシステム。
【請求項１９】
配信されたトランザクションに関する統計を収集して、より高速なトランザクション配信時間を実現する前記複数のブロックチェーン加速ネットワーク内の加速ノードを決定し、
前記ブロックチェーントランザクション加速システムによる使用のために、より高速なトランザクション配信時間を有する加速ノードを選択する
ように、前記1つまたは複数のコンピュータによって実行可能な命令をさらに有する、請求項15に記載のシステム。
【請求項２０】
前記ブロックチェーントランザクション加速システムが、前記複数のブロックチェーンおよび前記複数のブロックチェーン加速ネットワーク内で実装される、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン技術に関する。
【背景技術】
【０００２】
分散型台帳システム(DLS：Distributed Ledger System)は、コンセンサスネットワークおよび/またはブロックチェーンネットワークとも呼ばれ、参加エンティティがデータをセキュアかつ不変に記憶することを可能にする。DLSは、いかなる特定の使用ケースも参照することなく、一般にブロックチェーンネットワークと呼ばれる。例示的なタイプのブロックチェーンネットワークには、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークが含まれ得る。パブリックブロックチェーンネットワークは、あらゆるエンティティがDLSを使用し、コンセンサスプロセスに参加するように開かれている。プライベートブロックチェーンネットワークは、読取り許可および書込み許可を中央制御する特定のエンティティのために提供される。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御するエンティティの選択グループのために提供され、アクセス制御層を含む。
【０００３】
従来型ブロックチェーンシステムでは、トランザクション送信プロセスが、トランザクションを生成し、トランザクションをブロックチェーンノードに送るクライアントを含む。ブロックチェーンノードは、トランザクションのバッチに対するコンセンサスを取得し、その後、トランザクションが1つずつ実行される。実行結果は、新しいブロックチェーンノードに書き込まれる。このプロセスは、クライアントがブロックチェーンノードにトランザクションを通信することによって主に達成されるトランザクションネットワーク伝送を含む。既存のブロックチェーン環境では、直接ネットワーク接続が通信のために使用される。
【０００４】
しかしながら、クライアントとブロックチェーンノードとの間の直接ネットワーク接続は、最適未満であり得る。その単純さに起因して、直接ネットワーク接続は非効率であり得る。ネットワークは、ネットワークの複雑さに対処することに適応できないことがあり得る。たとえば、ネットワークは、ネットワーク問題がノード間の通信を遅くする状況に対処できないことがある。この非効率さが理由で、1つのネットワーク内の2つのネットワークノードがデータを送信する必要があるとき、確立された直接接続が最速の可能な接続ではないことがある。たとえば、2つのノードがクロスボーダネットワーク内に存在するとき、または2つのノードが異なるネットワークオペレータに属するとき、直接ネットワーク接続は非効率となり、または低速となり得る。一般に、ブロックチェーン内のトランザクションの伝送時間はランダムであり、または未知である。これらの問題に対処するために直接ネットワーク接続が使用され得るが、直接ネットワーク接続に対処するためのより効率的な解決策が有利となるはずである。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書の実装例は、ブロックチェーンネットワークトランザクションを改善するためのコンピュータ実装方法を含む。より具体的には、本明細書の実装例は、グローバル加速ノードを使用してブロックチェーントランザクション速度を改善することを対象とする。
【０００６】
いくつかの実装例では、アクションが、ブロックチェーントランザクション加速システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスを与えることであって、複数のブロックチェーン加速ネットワークが、複数の加速ノードを含み、各加速ノードが、複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能である、与えること、第1の加速ノードにおいて、複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから、転送すべきトランザクションを受信すること、および第1の加速ノードによって、第2のノードにトランザクションを転送することを含む。
【０００７】
他の実装例には、コンピュータ記憶デバイス上に符号化された、方法のアクションを実行するように構成された、対応するシステム、装置、およびコンピュータプログラムが含まれる。
【０００８】
任意選択で、これらおよび他の実装例は、以下の特徴のうちの1つまたは複数を含み得る。
【０００９】
第2のノードが、のブロックチェーンの第2のブロックチェーン内のノードである、以下の特徴のうちのいずれかと組合せ可能な第1の特徴。
【００１０】
第2のノードが、複数のブロックチェーン加速ネットワーク内の第2の加速ノードである、前述の特徴または以下の特徴のうちのいずれかと組合せ可能な第2の特徴。
【００１１】
第1のブロックチェーン内の第1のノードと、第2のブロックチェーン内の第2のノードとが、異なるネットワーク内に存在する、前述の特徴または以下の特徴のうちのいずれかと組合せ可能な第3の特徴。
【００１２】
配信されたトランザクションに関する統計を収集して、より高速なトランザクション配信時間を実現する複数のブロックチェーン加速ネットワーク内の加速ノードを決定すること、およびブロックチェーントランザクション加速システムによる使用のために、より高速なトランザクション配信時間を有する加速ノードを選択することをさらに含む、前述の特徴または以下の特徴のうちのいずれかと組合せ可能な第4の特徴。
【００１３】
ブロックチェーントランザクション加速システムが、複数のブロックチェーンおよび複数のブロックチェーン加速ネットワーク内で実装される、前述の特徴または以下の特徴のうちのいずれかと組合せ可能な第5の特徴。
【００１４】
複数のブロックチェーン加速ネットワークに加入するための要求を第3のブロックチェーンから受信すること、および複数のブロックチェーン加速ネットワークへのアクセスを第3のブロックチェーンに与えることをさらに含む、前述の特徴または以下の特徴のうちのいずれかと組合せ可能な第6の特徴。
【００１５】
本明細書はまた、1つまたは複数のプロセッサに結合され、命令が記憶された、1つまたは複数の非一時的コンピュータ可読記憶媒体であって、命令は、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに、本明細書において提供される方法の実装例に従って動作を実行させる、1つまたは複数の非一時的コンピュータ可読記憶媒体を提供する。
【００１６】
本明細書は、本明細書において提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、命令が記憶されたコンピュータ可読記憶媒体とを含み、命令は、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに、本明細書において提供される方法の実装例に従って動作を実行させる。
【００１７】
本明細書による方法が、本明細書において説明される態様および特徴の任意の組合せを含み得ることを理解されたい。すなわち、本明細書による方法は、本明細書において具体的に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せをも含む。
【００１８】
本明細書の1つまたは複数の実装例の詳細は、添付の図面および以下の説明において説明される。説明および図面、ならびに特許請求の範囲から、本明細書の他の特徴および利点が明らかとなるであろう。
【図面の簡単な説明】
【００１９】
【図１】本明細書の実装例を実行するために使用され得る環境の一例を示す図である。
【図２】本明細書の実装例による概念アーキテクチャの一例を示す図である。
【図３Ａ】本明細書の実装例による、ブロックチェーン内の2つのノード間で直接的に送られるトランザクションについての経路の一例を示すブロック図である。
【図３Ｂ】本明細書の実装例による、ブロックチェーントランザクション加速システム内の複数の転送されるトランザクションを送る際に使用される経路の一例を示すブロック図である。
【図４】本明細書の実装例による、ブロックチェーンネットワーク内で重複トランザクションを使用するための例示的プロセスを示す図である。
【図５】本明細書の実装例による、ブロックチェーン内のネットワーク加速ノードを使用して送られるトランザクションのためのブロックチェーントランザクション加速システム内で使用される経路の一例を示すブロック図である。
【図６】本明細書の実装例による、ブロックチェーンネットワーク内のトランザクションを送るための加速ノードを使用するためのプロセスの一例を示す図である。
【図７】本明細書の実装例による、ブロックチェーントランザクション加速システムの複数のブロックチェーン加速ネットワークの一例のブロック図である。
【図８】本明細書の実装例による、複数のブロックチェーン加速ネットワークを使用するためのプロセスの一例を示す図である。
【図９】本明細書の実装例による、装置のモジュールの一例を示す図である。
【図１０】本明細書の実装例による、装置のモジュールの一例を示す図である。
【図１１】本明細書の実装例による、装置のモジュールの一例を示す図である。
【発明を実施するための形態】
【００２０】
様々な図面内の同様の参照符号は、同様の要素を示す。
【００２１】
本明細書の実装例は、ブロックチェーンネットワークトランザクションを改善するためのコンピュータ実装方法を含む。より具体的には、本明細書の実装例は、グローバル加速ノードを使用してブロックチェーントランザクション速度を改善することを対象とする。
【００２２】
いくつかの実装例では、アクションが、ブロックチェーントランザクション加速システムにおいて、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスを与えることであって、複数のブロックチェーン加速ネットワークが複数の加速ノードを含み、各加速ノードが複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能であること、第1の加速ノードにおいて、複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから、転送すべきトランザクションを受信すること、および第1の加速ノードによって第2のノードにトランザクションを転送することを含む。
【００２３】
本明細書の実装例についてのより詳しい状況を与えるために、上記で紹介したように、(たとえば、ピアツーピアノードから構成される)コンセンサスネットワークとも呼ばれることのある分散型台帳システム(DLS)と、ブロックチェーンネットワークとが、参加エンティティが安全かつ不変にトランザクションを実行し、データを記憶することを可能にする。ブロックチェーンという用語は一般に通貨ネットワークに関連付けられるが、本明細書では、ブロックチェーンは、何らかの特定の使用ケースを参照することなく、一般にはDLSを指すために使用される。
【００２４】
ブロックチェーンは、トランザクションが不変である方式でトランザクションを記憶するデータ構造である。したがって、ブロックチェーン上に記録されたトランザクションは信頼性が高く、信頼できる。ブロックチェーンは1つまたは複数のブロックを含む。チェーン内の各ブロックは、以前のブロックの暗号ハッシュを含めることによって、チェーン内の各ブロックの直前の以前のブロックにリンクされる。各ブロックはまた、タイムスタンプ、それ自体の暗号ハッシュ、および1つまたは複数のトランザクションをも含む。トランザクションは、ブロックチェーンネットワークのノードによって既に検証されており、マークルツリー内にハッシュおよび符号化される。マークルツリーは、ツリーのリーフノードでのデータがハッシュされ、ツリーの各ブランチ内のすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方に続行し、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶する。ツリー内に記憶されたトランザクションであると称されるハッシュが、ツリーの構造と一致するかどうかを判定することによって迅速に検証され得る。
【００２５】
ブロックチェーンは、トランザクションを記憶するための非集中データ構造または少なくとも部分的に非集中化されたデータ構造であるが、ブロックチェーンネットワークは、トランザクションをブロードキャスト、検証、および確認することなどによって1つまたは複数のブロックチェーンを管理、更新、および維持するコンピューティングノードのネットワークである。上記で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
【００２６】
パブリックブロックチェーンネットワークでは、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。たとえば、数百、数千、さらには数百万のエンティティがパブリックブロックチェーンネットワークを共に操作し得、そのそれぞれが、パブリックブロックチェーンネットワーク内の少なくとも1つのノードを操作する。したがって、パブリックブロックチェーンネットワークは、参加エンティティに関連して公衆ネットワークと見なされ得る。いくつかの例では、大部分のエンティティ(ノード)は、ブロックを有効にし、ブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加するために、ブロックごとに署名しなければならない。例示的パブリックブロックチェーンネットワークには、ブロックチェーンと呼ばれる分散型台帳を活用する特定のピアツーピア支払いネットワークが含まれる。しかしながら、前述のように、ブロックチェーンという用語は、何らかの特定のブロックチェーンを具体的に参照することなく、一般には分散型台帳を指すために使用される。
【００２７】
一般には、パブリックブロックチェーンネットワークはパブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてと共有され、グローバルブロックチェーン内に記憶される。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完璧状態コンセンサスにある。コンセンサス(たとえば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、コンセンサスプロトコルがパブリックブロックチェーンネットワーク内で実装される。例示的コンセンサスプロトコルには、限定はしないが、(たとえば、何らかの通貨ネットワーク内で実装される)proof-of-work(POW)、proof-of-stake(POS)、およびproof-of-authority(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のエンティティのトランザクションを管理するために使用するトランザクション管理システムなどの第1のエンティティ(たとえば、参加者A)のコンピュータ実装サービスをホストし得る。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(たとえば、他の参加者)との間の第2のエンティティのトランザクションを管理するために使用するトランザクション管理システムなどの第2のエンティティ(たとえば、参加者B)のコンピュータ実装サービスをホストし得る。図1の例では、ブロックチェーンネットワーク102はノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、それぞれ、ブロックチェーンネットワーク102に参加する第1のエンティティおよび第2のエンティティのノードを提供する。
【００３４】
図2は、本明細書の実装例による概念アーキテクチャ200の一例を示す。例示的概念アーキテクチャ200は、参加者A、参加者B、および参加者Cにそれぞれ対応する参加者システム202、204、206を含む。各参加者(たとえば、ユーザ、企業)は、複数のノード214を含むピアツーピアネットワークとして提供されるブロックチェーンネットワーク212に参加し、複数のノード214のうちの少なくとも一部が、ブロックチェーン216内に情報を不変に記録する。単一のブロックチェーン216がブロックチェーンネットワーク212内に概略的に示されているが、本明細書においてさらに詳細に説明されるように、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。
【００３５】
図示される例では、各参加者システム202、204、206が、それぞれ参加者A、参加者B、および参加者Cによって提供され、またはそれぞれ参加者A、参加者B、および参加者Bの代わりに提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書では、ノードとは、一般に、ブロックチェーンネットワーク212に接続され、それぞれの参加者がブロックチェーンネットワークに参加することを可能にする個々のシステム(たとえば、コンピュータ、サーバ)を指す。図2の例では、参加者は各ノード214に対応する。しかしながら、参加者がブロックチェーンネットワーク212内の複数のノード214を操作し得、かつ/または複数の参加者がノード214を共有し得ることが企図される。いくつかの例では、参加者システム202、204、206は、プロトコル(たとえば、HyperText Transfer Protocol Secure (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つのトランザクションのハッシュ値が与えられ、それ自体がハッシングされて別のハッシュが与えられる。ブロック内に記憶すべきすべてのトランザクションについて単一のハッシュ値が与えられるまで、このプロセスが反復される。このハッシュ値はマークルルートハッシュと呼ばれ、ブロックのヘッダ内に記憶される。トランザクションのいずれかの変化の結果、そのハッシュ値が変化し、最後にはマークルルートハッシュが変化する。
【００４０】
コンセンサスプロトコルを通じてブロックがブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードがコンセンサスプロトコルに参加し、ブロックチェーンに追加されるブロックを得るために競合する。そのようなノードはマイナー(またはマインダノード)と呼ばれる。上記で紹介したPOWが非限定的な例として使用される。
【００４１】
マイナーノードは、コンセンサスプロセスを実行して、ブロックチェーンにトランザクションを追加する。複数のマイナーノードがコンセンサスプロセスに参加するが、ただ1つのマイナーノードがブロックチェーンにブロックを書き込み得る。すなわち、マイナーノードは、ブロックチェーンに追加されるマイナーノードのブロックを得るためにコンセンサスプロセスにおいて競合する。さらに詳細には、マイナーノードは、トランザクションプールから保留のトランザクションを周期的に収集する(たとえば、ブロック内に含まれ得るトランザクション数に関する事前定義された限度がある場合、その限度まで)。トランザクションプールは、ブロックチェーンネットワーク内の参加者からのトランザクションメッセージを含む。マイナーノードはブロックを構築し、トランザクションをブロックに追加する。ブロックにトランザクションを追加する前に、マイナーノードは、トランザクションのいずれかがブロックチェーンのブロック内に既に含まれているかどうかをチェックする。トランザクションが別のブロック内に既に含まれている場合、トランザクションは廃棄される。
【００４２】
マイナーノードはブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシングし、ブロック内のすべてのトランザクションについて単一のハッシュ値が与えられるまで、ハッシュ値を対に組み合わせ、別のハッシュ値を生成する(マークルルートハッシュ)。このハッシュがブロックヘッダに追加される。マイナはまた、ブロックチェーン内の最も最近のブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。マイナーノードはまた、ナンス値、およびタイムスタンプをブロックヘッダに追加する。マイニングプロセスにおいて、マイナーノードは、必要とされるパラメータを満たすハッシュ値を見つけようと試みる。マイナーノードは、必要とされるパラメータを満たすハッシュ値を見つけるまで、ナンス値を変更し続ける。
【００４３】
ブロックチェーンネットワーク内のあらゆるマイナは、必要とされるパラメータを満たすハッシュ値を見つけようと試み、このようにして互いに競合する。最終的に、マイナーノードのうちの1つが、必要とされるパラメータを満たすハッシュ値を見つけ、これをブロックチェーンネットワーク内のすべての他のマイナーノードに公示する。他のマイナーノードはハッシュ値を検証し、正しいと判定された場合、ブロック内の各トランザクションを検証し、ブロックを受け入れ、ブロックチェーンのそのコピーにブロックを付加する。このようにして、ブロックチェーンのグローバル状態が、ブロックチェーンネットワーク内のすべてのマイナーノードにわたって一致する。前述のプロセスはPOWコンセンサスプロトコルである。
【００４４】
図2を参照しながら非限定的な例が与えられる。この例では、参加者Aは、ある量の通貨を参加者Bに送ることを望む。参加者Aは、トランザクションメッセージ(たとえば、From、To、およびValue値フィールドを含む)を生成し、トランザクションメッセージをブロックチェーンネットワークに送り、ブロックチェーンネットワークは、トランザクションプールにトランザクションメッセージを追加する。ブロックチェーンネットワーク内の各マイナーノードはブロックを生成し、トランザクションプールからすべてのトランザクションを取り(たとえば、ブロックに追加され得るトランザクション数に関する事前定義された限度がある場合、その限度まで)、ブロックにトランザクションを追加する。このようにして、参加者Aによって発行されたトランザクションが、マイナーノードのブロックに追加される。
【００４５】
いくつかのブロックチェーンネットワークでは、トランザクションのプライバシーを維持するために暗号が実装される。たとえば、2つのノードが、ブロックチェーンネットワークの他のノードがトランザクションの詳細を認識し得ないようにトランザクションをプライベートに保ちたい場合、ノードはトランザクションデータを暗号化し得る。例示的暗号には、限定はしないが、対称暗号化、および非対称暗号化が含まれる。対称暗号化とは、暗号化(プレーンテキストから暗号テキストを生成すること)と、暗号化解除(暗号テキストからプレーンテキストを生成すること)の両方について単一の鍵を使用する暗号化プロセスを指す。対称暗号化では、複数のノードに対して同一の鍵が利用可能であり、したがって各ノードはトランザクションデータを暗号化/暗号化解除し得る。
【００４６】
非対称暗号化は、秘密鍵および公開鍵をそれぞれ含む鍵の対を使用し、秘密鍵はそれぞれのノードだけに知られており、公開鍵はブロックチェーンネットワーク内の任意またはすべての他のノードに知られている。ノードは、別のノードの公開鍵を使用してデータを暗号化し得、暗号化データが、他のノードの秘密鍵を使用して暗号化解除され得る。たとえば、再び図2を参照すると、参加者Aは参加者Bの公開鍵を使用してデータを暗号化し、暗号化データを参加者Bに送り得る。参加者Bは、参加者Bの秘密鍵を使用して暗号化データ(暗号テキスト)を暗号化解除し、元のデータ(プレーンテキスト)を抽出し得る。ノードの公開鍵で暗号化されたメッセージは、ノードの秘密鍵を使用して暗号化解除され得るだけである。
【００４７】
非対称暗号化はデジタル署名を提供するために使用され、デジタル署名により、トランザクションの参加者が、トランザクションの他の参加者、ならびにトランザクションの有効性を確認することが可能となる。たとえば、ノードがメッセージにデジタルに署名し得、別のノードが、参加者Aのデジタル署名に基づいて、メッセージがノードによって送られたことを確認し得る。デジタル署名はまた、メッセージが転送中に改ざんされていないことを補償するためにも使用され得る。たとえば、再び図2を参照すると、参加者Aが参加者Bにメッセージを送ることになっている。参加者Aは、メッセージのハッシュを生成し、次いで参加者Aの秘密鍵を使用して、ハッシュを暗号化し、デジタル署名を暗号化ハッシュとして提供する。参加者Aはメッセージにデジタル署名を付加し、デジタル署名付きのメッセージを参加者Bに送る。参加者Bは、参加者Aの公開鍵を使用してデジタル署名を暗号化解除し、ハッシュを抽出する。参加者Bはメッセージをハッシングし、ハッシュを比較する。ハッシュが同一である場合、参加者Bは、メッセージが実際に参加者Aからのものであり、改ざんされなかったことを確認し得る。
【００４８】
いくつかの実装例では、たとえばNode_Aが同一のトランザクションの複数のコピーを送信する場合、ブロックチェーン内のノード間のより高速な通信が実現され得る。たとえば、Node_AがNode_B(たとえば、宛先ノード)にトランザクションを送ることに加えて、Node_Aはまた、トランザクションの複製を少なくとも1つの他のノードに送り得る。たとえば、第3のノードが、より高速なネットワーク伝送を実現する(または第3のノードがより高速なネットワーク伝送となる)ことができ得る。たとえば、Node_Aから直接来る伝送の前に第3のノードがネットワークNode_Bへの伝送の配信の最終的な完了を開始し得る場合、より高速なネットワーク伝送が行われ得る。一般に、第3のノードに送られるトランザクションがNode_Bに配信され得るが、追加の中間ノードが可能である。このようなトランザクションの複製は、ブロックチェーンネットワークの再生特徴および転送特徴を利用し得る。トランザクションの複製はまた、同一のトランザクションの複製を伝播することによる、ブロックチェーンネットワークに対する繰り返されるアタック(たとえば、マルウェアまたは無許可アクセス)を防止する助けになり得る。ブロックチェーンネットワークのこれらの特徴の結果として、トランザクションは、可能な限り高速に宛先ノードに配信され得る。トランザクションのより高速な配信の得られる利点は、宛先ノードでのトランザクションのより高速な実行である。
【００４９】
図3Aは、ブロックチェーン内の2つのノード間で直接的に送られる(または配信される)トランザクションについての経路300の一例を示すブロック図である。たとえば、経路300は、Node_B304による実行のためにNode_A302によってNode_B304に送られるトランザクションのために使用され得る。いくつかのケースでは、トランザクションは、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にもトランザクションを送り得る。次いでトランザクションは、Node_X308、Node_Y310、およびNode_Z312によって通信経路316を介して転送され得る。Node_A302がこのようにして同一のトランザクションの複数のコピー(この例では、合計で4つのトランザクションインスタンス)を送るとき、Node_A302は、どのトランザクションがNode_B304に達する最初のトランザクションとなるかを知らない。Node_B304は、受信される最初のトランザクションを処理した後、重複トランザクションを無視するように構成され得るので、トランザクション到着順序は問題ではない。
【００５２】
レシーバノード(および、この例ではトランザクションの宛先ノード)として働くNode_B304は、複数の同一のトランザクションを受信し得る。最初のトランザクションだけが実行される。重複トランザクションと判定される他のトランザクションは、ブロックチェーンシステムによって自動的に無効トランザクションと識別され得る。したがって、重複トランザクションは実行されない。
【００５３】
重複トランザクションは様々な方式で判定され得る。たとえば、トランザクションが同一のデジタル署名を有する場合、トランザクションは重複トランザクションと判定され得る。トランザクションが受信されたとき、たとえば、トランザクションのデジタル署名が、最近実行された(または最初に到着する)トランザクションと比較され得る。重複トランザクションを判定する他の方式(たとえば、一般のブロックチェーン技術を使用する)も使用され得る。
【００５４】
経時的に、ノードごとに行われる伝送速度を記録および追跡するために、統計が収集され、維持され得る。たとえば、多くのノードが、Node_X308、Node_Y310、およびNode_Z312を通じてトランザクションをルーティングし得る。たとえばNode_Y310がNode_X308およびNode_Z312よりも経時的に高速であると判定される場合、Node_Y310が好ましいノードとなり得る。いくつかの実装例では、好ましいノードのリストが維持され得、トランザクションが複数のノードを通じて送られるとき、最速のノードが最初に選択され得る。経時的に、低速のノードがブロックチェーンシステムによって回避され得る。
【００５５】
いくつかの実装例では、選択されるノードは、速度に加えて様々な要素に基づいて選ばれ得る。たとえば、あるノードは、1日の異なる時刻、または週の異なる曜日でより高速であり得る。別の例では、あるノードが、その地理的位置に基づいて回避され得、その地理的位置が、追跡される伝送速度に加えて、所与のトランザクションについての予測される伝送速度の指標となり得る。
【００５６】
いくつかの実装例では、どれほどの重複トランザクションを送るべきか、重複トランザクションを送るためにどのノードを使用すべきかを判断するために様々な技法が使用され得る。たとえば、ブロックチェーンシステムは、送信側ノードにとってアクセス可能な各ハブに別々の重複トランザクションを送り得る。たとえば、各ハブは、異なるサービスプロバイダ(Provider)に対応し得る。経時的に、ブロックチェーンシステムは、最良かつ最速のプロバイダを識別するデータベースを構築し得る。いくつかの実装例では、サービスプロバイダにスコアが割り当てられ得、最高のスコアが、重複トランザクションをルーティングする際に最速のサービスプロバイダであるという履歴を有するサービスプロバイダに割り当てられる。いくつかの実装例では、過剰なトラフィックで単一のサービスプロバイダを飽和させないように、トランザクションが、いくつかのより高いスコアのサービスプロバイダにわたって拡散され得る。
【００５７】
図4は、ブロックチェーンネットワーク内で重複トランザクションを使用するための例示的プロセス400を示す。プロセス400は、本明細書の実装例に従って実行され得る。いくつかの実装例では、例示的プロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行され得る。
【００５８】
プロセス400は、ブロックチェーン内の1つまたは複数のノード内、またはブロックチェーンによってアクセス可能なサーバ内で実装されるブロックチェーントランザクション加速システムの部分であり(かつブロックチェーントランザクション加速システム内で実装され)得る。たとえば、図3Bを参照しながら説明したブロックチェーントランザクション加速システム320がプロセス400を実装し得る。
【００５９】
402において、ブロックチェーン内の第1のノードを通じて送られた第1のトランザクションが、ブロックチェーントランザクション加速システム内で受信される。一例として、ブロックチェーントランザクション加速システム320内で、Node_A302とNode_B304との間でトランザクションを送るために直接的通信306が使用され得る。402から、方法400は404に進む。
【００６０】
404において、第1のトランザクションの複製である少なくとも1つの第2のトランザクションがブロックチェーントランザクション加速システム内で受信され、少なくとも1つの第2のトランザクションが、第1のノードによって、第1のノードとは異なるブロックチェーン内の少なくとも1つの第2のノードに送られる。一例として、ブロックチェーントランザクション加速システム320は、(既にNode_B304に送られた)トランザクションの複製を、追加のノード308〜312のうちの1つまたは複数に送り得る。トランザクションの複製は、通信経路314を使用して送られ得る。
【００６１】
いくつかの実装例では、ブロックチェーン内の第1のノードおよびブロックチェーン内の少なくとも1つの第2のノードは、異なるネットワークサービスプロバイダによって提供される異なるネットワークハブ内にあり得る。たとえば、Node_A302およびNode_B304は、異なる領域や国などの中の、または異なるネットワークサービスプロバイダを使用する、別々の異なるネットワークハブ内にあり得る。
【００６２】
いくつかの実装例では、方法400は、少なくとも1つの第2のトランザクションを送るために使用する複数の第2のノードを決定することをさらに含み得る。たとえば、ブロックチェーントランザクション加速システム320は、トランザクションの複製が送られる、追加のノード308〜312のうちの特定のノードを選択し得る。404から、方法400は406に進む。
【００６３】
406において、第1のトランザクションおよび少なくとも1つの第2のトランザクションを含む、受信されたトランザクションの中の最初に受信されたトランザクションが、ブロックチェーントランザクション加速システムによって実行される。たとえば、Node_B304は、通信経路306および通信経路316を介して到着する第1のトランザクションを実行し得る。最初に到着するトランザクションは、どの通信経路が最速であるかに依存し得る。406から、方法400は408に進む。
【００６４】
408において、受信されたトランザクションのうちの残りのトランザクションが最初に受信されたトランザクションと同一であるとブロックチェーントランザクション加速システムによって判定したとき、残りのトランザクションが廃棄される。たとえば、Node_B304は、最初に受信されたトランザクションの1つまたは複数の複製を受信し得る。Node_B304は、残りの(最初に受信されたのではない)トランザクションが重複トランザクションであると判定し得る。次いで、Node_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はトランザクションのセンダ(Sender)であり、Node_B504はトランザクションの所期の受信側である。Node_A502およびNode_B504は、たとえばそれぞれLocal_Network_1 506およびLocal_Network_2 508などの異なるネットワークエリア内にあり得る。Node_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に送られ得、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が、通信経路512を介してNode_B504にトランザクションを転送し得る。
【００８１】
いくつかの実装例では、加速ノードから第2のノードにトランザクションを転送することは、受信側加速ノードの使用を含み得る。たとえば、Transfer_Node_A'514は、通信経路512を介して、Local_Network_2 508内の加速ノードであるTransfer_Node_B'516などの受信側加速ノードにトランザクションを転送し得る。受信側加速ノード(たとえば、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は加速ノード706を含み、それぞれは、ブロックチェーン704内の少なくとも1つのノード708にとってアクセス可能である。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つの集合的ブロックチェーントランザクション加速システムであり、または1つの集合的ブロックチェーントランザクション加速システムとして働き得る。集合的ブロックチェーントランザクション加速システムによってどの技法を使用するかという判断は、他の要素の中でもとりわけ、ネットワークヘルスおよびトラフィックの知識などのリアルタイム情報に基づき得る。
【００９６】
図9は、本明細書の実装例による、装置900のモジュールの一例を示す図である。装置900は、(コンソーシアムまたは他のブロックチェーン型ネットワーク内などで)トランザクション再送信を使用してブロックチェーンネットワーク内のトランザクション配信を加速することを可能にするように構成された装置の例示的実装であり得る。装置900は前述の実装に対応し得、装置900は、ブロックチェーントランザクション加速システム内で、ブロックチェーン内の第1のノードを通じて送られた第1のトランザクションを受信するための第1のレシーバまたは第1の受信ユニット902と、ブロックチェーントランザクション加速システム内で、第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信するための第2のレシーバまたは第2の受信ユニット904であって、第1のノードによってブロックチェーン内の少なくとも1つの第2のノードに送られた少なくとも1つの第2のトランザクションが第1のノードとは異なる、第2のレシーバまたは第2の受信ユニット904と、ブロックチェーントランザクション加速システムによって、第1のトランザクションおよび少なくとも1つの第2のトランザクションを含む受信されたトランザクションの中の最初に受信されたトランザクションを実行するためのエクセキュータ(Executor)または実行ユニット906と、受信されたトランザクションの残りのトランザクションが最初に受信されたトランザクションと同一であるとブロックチェーントランザクション加速システムによって判定したとき、残りのトランザクションを廃棄するためのディスカーダ(Discarder)または廃棄ユニット908とを含む。
【００９７】
前の実装において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装され得、または一定の機能を有する製品を使用することによって実装され得る。典型的な実装デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラーフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、Eメール受信および送信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【００９８】
装置内の各ユニットの機能および役割の実装プロセスについて、前の方法での対応するステップの実装プロセスへの参照が行われ得る。簡単のためにここでは詳細は省略する。
【００９９】
装置実装は、基本的には方法実装に対応するので、関連する部分について、方法実装での関連する説明への参照が行われ得る。前述の装置実装は一例に過ぎない。別々の部分として説明したユニットは、物理的に別々であり、もしくは別々ではないことがあり、ユニットとして表示される部分は、物理単位であり、もしくは物理単位ではないことがあり、ある位置に位置し得、またはいくつかのネットワークユニット上に分散し得る。モジュールの一部またはすべてが、本明細書の解決策の目的を達成するために実際の必要に基づいて選択され得る。当業者は創造的労力なしに本願の実装を理解し、実装し得る。
【０１００】
再び図9を参照すると、トランザクション再送信を使用してブロックチェーンネットワーク内のトランザクション配信を加速することを可能にする装置の内部機能モジュールおよび構造を示すと解釈し得る。実行装置は、トランザクション再送信を使用してブロックチェーンネットワーク内のトランザクション配信を加速することを可能にするように構成された装置の一例であり得る。
【０１０１】
図10は、本明細書の実装例による、装置1000のモジュールの一例を示す。装置1000は、(コンソーシアムまたは他のブロックチェーン型ネットワーク内などで)加速ノードを使用してブロックチェーンネットワーク内のトランザクションの配信を加速することを可能にするように構成された装置の例示的実装であり得る。装置1000は前述の実装に対応し得、装置1000は、ブロックチェーントランザクション加速システムを使用して、第1のノードによって生成された第1のトランザクションをブロックチェーン内の加速ノードに送るためのセンダまたは送信ユニット1002であって、第1のトランザクションが第1のトランザクションの所期の受信側である第2のノードに直接送られる代わりに加速ノードに送られ、第1のノード、第2のノード、および加速ノードが異なるノードである、センダ(Sender)または送信ユニット1002と、ブロックチェーントランザクション加速システムによって加速ノードから第2のノードにトランザクションを転送するためのフォワーダ(Forwarder)または転送ユニット1004と、第2のノードによるトランザクションをブロックチェーントランザクション加速システムによって実行するためのエクセキュータまたは実行ユニット1006とを含む。
【０１０２】
前の実装において示されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装され得、または一定の機能を有する製品を使用することによって実装され得る。典型的な実装デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラーフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、Eメール受信および送信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１０３】
装置内の各ユニットの機能および役割の実装プロセスについて、前の方法での対応するステップの実装プロセスへの参照が行われ得る。簡単のためにここでは詳細は省略する。
【０１０４】
装置実装は、基本的には方法実装に対応するので、関連する部分について、方法実装での関連する説明への参照が行われ得る。前述の装置実装は一例に過ぎない。別々の部分として説明したユニットは、物理的に別々であり、もしくは別々ではないことがあり、ユニットとして表示される部分は、物理単位であり、もしくは物理単位ではないことがあり、ある位置に位置し得、またはいくつかのネットワークユニット上に分散し得る。モジュールの一部またはすべてが、本明細書の解決策の目的を達成するために実際の必要に基づいて選択され得る。当業者は創造的労力なしに本願の実装を理解し、実装し得る。
【０１０５】
再び図10を参照すると、加速ノードを使用してブロックチェーンネットワーク内のトランザクションの配信を加速することを可能にする装置の内部機能モジュールおよび構造を示すと解釈し得る。実行装置は、加速ノードを使用してブロックチェーンネットワーク内のトランザクションの配信を加速することを可能にするように構成された装置の一例であり得る。
【０１０６】
図11は、本明細書の実装例による、装置1100のモジュールの一例を示す。装置1100は、(コンソーシアムまたは他のブロックチェーン型ネットワーク内などで)グローバル加速ノードを使用してブロックチェーントランザクション速度を改善するように構成された装置の例示的実装であり得る。装置1100は前述の実装に対応し得、装置1100は、ブロックチェーントランザクション加速システム内で、複数のブロックチェーンにとってアクセス可能な複数のブロックチェーン加速ネットワークへのアクセスを提供するためのプロバイダまたは提供ユニット1102であって、複数のブロックチェーン加速ネットワークが複数の加速ノードを含み、各加速ノードが複数のブロックチェーンのうちの少なくとも1つのブロックチェーン内の少なくとも1つのノードにアクセス可能である、プロバイダまたは提供ユニット1102と、第1の加速ノードにおいて、複数のブロックチェーンのうちの第1のブロックチェーン内の第1のノードから、転送すべきトランザクションを受信するためのレシーバまたはレシーバユニット1104と、第1の加速ノードによって第2のノードにトランザクションを転送するためのフォワーダまたは転送ユニット1106とを含む。
【０１０７】
前の実装において示されたシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用することによって実装され得、または一定の機能を有する製品を使用することによって実装され得る。典型的な実装デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラーフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、Eメール受信および送信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１０８】
装置内の各ユニットの機能および役割の実装プロセスについて、前の方法での対応するステップの実装プロセスへの参照が行われ得る。簡単のためにここでは詳細は省略する。
【０１０９】
装置実装は、基本的には方法実装に対応するので、関連する部分について、方法実装での関連する説明への参照が行われ得る。前述の装置実装は一例に過ぎない。別々の部分として説明したユニットは、物理的に別々であり、もしくは別々ではないことがあり、ユニットとして表示される部分は、物理単位であり、もしくは物理単位ではないことがあり、ある位置に位置し得、またはいくつかのネットワークユニット上に分散し得る。モジュールの一部またはすべてが、本明細書の解決策の目的を達成するために実際の必要に基づいて選択され得る。当業者は創造的労力なしに本願の実装を理解し、実装し得る。
【０１１０】
再び図11を参照すると、グローバル加速ノードを使用してブロックチェーントランザクション速度を改善するための装置の内部機能モジュールおよび構造を示すと解釈し得る。実行装置は、グローバル加速ノードを使用してブロックチェーントランザクション速度を改善するように構成された装置の一例であり得る。
【０１１１】
本明細書において説明される主題およびアクションおよび動作の実装は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアもしくはファームウェア、本明細書において開示される構造およびその構造的均等物を含むコンピュータハードウェア、またはそれらのうちの1つまたは複数の組合せとして実装され得る。本明細書において説明される主題の実装は、データ処理装置による実行のための、またはデータ処理装置の動作を制御するための、コンピュータプログラムキャリア上に符号化された1つまたは複数のコンピュータプログラム、たとえばコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。キャリアは有形の非一時的コンピュータ記憶媒体であり得る。代替または追加として、キャリアは、データ処理装置による実行のために適切なレシーバ装置への伝送のために情報を符号化するように生成される人工的に生成された伝播信号、たとえば機械で生成された電気的、光学的、または電磁的信号であり得る。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダムもしくは逐次アクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得、またはそれらの一部であり得る。コンピュータ記憶媒体は伝播信号ではない。
【０１１２】
「データ処理装置」という用語は、例としてプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。データ処理装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィックス処理装置)を含み得る。装置はまた、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードをも含み得る。
【０１１３】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、app、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも呼ばれ、またはそのように記述され得、コンパイル型言語もしくはインタプリタ型言語、または宣言型言語もしくは手続型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境内での実行に適した他のユニットとしての形態を含む任意の形態として配置され得、コンピューティング環境は、1つまたは複数の場所の、データ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含み得る。
【０１１４】
コンピュータプログラムは、必須ではないがファイルシステム内のファイルに対応し得る。コンピュータプログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語文書内に記憶された1つまたは複数のスクリプト内に、当該のプログラム専用の単一のファイル内に、または複数の協調ファイル、たとえば1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル内に記憶され得る。
【０１１５】
本明細書で説明されるプロセスおよび論理フローは、入力データに対して演算し、出力を生成することによって動作を実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のコンピュータによって実行され得る。プロセスおよび論理フローはまた、専用論理回路、たとえばFPGA、ASIC、またはGPUによって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによって実行され得る。
【０１１６】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央演算処理装置に基づき得る。一般には、中央演算処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行するための中央演算処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスを含み得る。中央演算処理装置およびメモリは、専用論理回路によって補足され、または専用論理回路内に組み込まれ得る。
【０１１７】
一般には、コンピュータはまた、1つまたは複数の大容量記憶デバイスをも含み、あるいはそれらからデータを受け取り、またはそれらにデータを転送するように動作可能に結合される。大容量記憶デバイスは、たとえば磁気ディスク、光磁気ディスク、または光ディスク、あるいはソリッドステートドライブであり得る。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんのいくつかの例を挙げれば、別のデバイス、たとえば携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込まれ得る。
【０１１８】
ユーザとの対話を実現するために、本明細書において説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力を与え得る入力デバイス、たとえばキーボードおよびポインティングデバイス、たとえばマウス、トラックボール、もしくはタッチパッドとを有するコンピュータ上に実装され、またはコンピュータと通信するように構成され得る。他の種類のデバイスもユーザとの対話を実現するために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、音声フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態として受け取られ得る。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送り、デバイスから文書を受け取ることによって、たとえば、ユーザのデバイス上のウェブブラウザから受け取った要求に応答して、ウェブブラウザにウェブページを送ることによって、またはユーザデバイス、たとえばスマートフォンもしくは電子タブレット上で実行中のappと対話することによってユーザと対話し得る。さらに、コンピュータは、テキストメッセージまたは他の形態のメッセージを、メッセージングアプリケーションを実行中のパーソナルデバイス、たとえばスマートフォンに送り、それに対してユーザから応答メッセージを受け取ることによってユーザと対話し得る。
【０１１９】
本明細書は、システム、装置、およびコンピュータプログラム構成要素に関連して「構成された」という用語を使用する。1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを実行するように構成されることは、システムが、動作の際にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステム上にインストールしていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるとき、装置に動作またはアクションを実行させる命令を含むことを意味する。専用論理回路について、特定の動作またはアクションを実行するように構成されることは、回路が動作またはアクションを実行する電子論理機構を有することを意味する。
【０１２０】
本明細書は多くの特定の実装詳細を含むが、これらは、特許請求の範囲自体によって定義される、特許請求されているものの範囲に関する限定と解釈されるべきではなく、むしろ特定の実装に特有のものであり得る特徴の説明と解釈されるべきである。本明細書の別々の実装の状況において説明されるいくつかの特徴はまた、単一の実装において組み合わせて実現され得る。逆に、単一の実装の状況で説明される様々な特徴はまた、複数の実装として別々に、または任意の適切な部分組合せとして実現され得る。さらに、特徴が、いくつかの組合せとして働くものとして上記で説明され、さらにはそのように最初に特許請求され得るが、特許請求される組合せの1つまたは複数の特徴が、いくつかのケースでは、組合せから削除され得、特許請求の範囲は、部分組合せまたは部分組合せの変形を対象とし得る。
【０１２１】
同様に、動作が特定の順序で図面に示され、特許請求の範囲に記載されるが、このことは、望ましい結果を達成するために、そのような動作が図示される特定の順序で、または順次的順序で実行されること、またはすべての図示される動作が実行されることを必要とすると理解されるべきではない。いくつかの環境では、マルチタスキングおよび並列処理が有利であり得る。さらに、前述の実施形態での様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載のプログラム構成要素およびシステムは一般に、単一のソフトウェア製品内に共に一体化され、または複数のソフトウェア製品内にパッケージ化され得ることを理解されたい。
【０１２２】
主題の特定の実施形態が説明された。他の実施形態は以下の特許請求の範囲内にある。たとえば、請求項に記載のアクションが、異なる順序で実行され、それでもなお望ましい結果を達成し得る。一例として、添付の図に示されるプロセスは、望ましい結果を達成するために、図示される特定の順序、または順次的順序を必ずしも必要とするわけではない。いくつかの実装例では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【０１２３】
100  環境
102  ブロックチェーンネットワーク
106  コンピューティングデバイス
108  コンピューティングデバイス
110  ネットワーク
200  概念アーキテクチャ
202  参加者システム
204  参加者システム
206  参加者システム
212  ブロックチェーンネットワーク
214  ノード
216  ブロックチェーン
302  Node_A
304  Node_B
306  直接的通信
308  Node_X
310  Node_Y
312  Node_Z
314  通信経路
316  通信経路
500  ブロックチェーントランザクション加速システム
502  Node_A
504  Node_B
506  Local_Network_1
508  Local_Network_2
510  通信チャネル
512  通信経路
514  Transfer_Node_A'
516  Transfer_Node_B'
518  Node_C
700  ブロックチェーントランザクション加速システム
702  ブロックチェーン加速ネットワーク
704  ブロックチェーン
706  加速ノード
708  ノード
710  トランザクション
900  装置
902  第1のレシーバ
904  第2のレシーバ
906  エクセキュータ
908  ディスカーダ
1000  装置
1002  センダ
1004  フォワーダ
1006  エクセキュータ
1100  装置
1102  プロバイダ
1104  レシーバ
1106  フォワーダ
【図１】
2020516108.tif 000003
【図２】
2020516108.tif 000004
【図３Ａ】
2020516108.tif 000005
【図３Ｂ】
2020516108.tif 000006
【図４】
2020516108.tif 000007
【図５】
2020516108.tif 000008
【図６】
2020516108.tif 000009
【図７】
2020516108.tif 000010
【図８】
2020516108.tif 000011
【図９】
2020516108.tif 000012
【図１０】
2020516108.tif 000013
【図１１】
2020516108.tif 000014
【国際調査報告】
2020516108.tif 000015
2020516108.tif 000016