(57)【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
ブロックチェーントランザクションアクセラレーションシステムを用いて、第1のノードによって生成された第1のトランザクションをブロックチェーンにおけるアクセラレーションノードに送信するステップであって、前記第1のトランザクションは、前記第1のトランザクションの意図された受信者である第2のノードに直接送信される代わりに前記アクセラレーションノードに送信され、前記第1のノード、前記第2のノード、および前記アクセラレーションノードは異なるノードである、ステップと、
前記ブロックチェーントランザクションアクセラレーションシステムによって、前記第1のトランザクションを前記アクセラレーションノードから前記第2のノードへ転送するステップと、
前記ブロックチェーントランザクションアクセラレーションシステムによって、前記第1のトランザクションを前記第2のノードによって実行するステップとを含み、
前記方法は、
配信されたトランザクションに関する統計を収集して、より迅速なトランザクション配信時間を提供するブロックチェーン内のアクセレーションノードを決定するステップであって、前記統計は、時刻情報または地理情報のうち少なくとも1つを含む、ステップと、
前記ブロックチェーントランザクションアクセラレーションシステムでの使用のために、より迅速なトランザクション配信時間を有するアクセラレーションノードを選択するステップとをさらに含む、
コンピュータで実行される方法。
【請求項２】
前記第1のトランザクションを前記アクセラレーションノードから前記第2のノードへ転送するステップは、
前記第1のトランザクションを受信者側アクセラレーションノードへ転送するステップと、
前記受信者側アクセラレーションノードによって、前記第1のトランザクションを前記第2のノードへ転送するステップとを含む、
請求項1に記載のコンピュータで実行される方法。
【請求項３】
前記ブロックチェーンにおける前記第1のノード、および前記ブロックチェーンにおける前記第2のノードは、異なるネットワーク内にある、
請求項1に記載のコンピュータで実行される方法。
【請求項４】
前記ブロックチェーントランザクションアクセラレーションシステムは、前記ブロックチェーンにおける1つまたは複数のノードにおいて、または前記ブロックチェーンによってアクセス可能なサーバにおいて実装される、
請求項1に記載のコンピュータで実行される方法。
【請求項５】
前記アクセラレーションノードは、異なるネットワーク内の1つまたは複数の特定のアクセラレーションノードにトランザクションを転送する、
請求項2に記載のコンピュータで実行される方法。
【請求項６】
前記第1のトランザクションを前記第2のノードに直接送信することによる予測されるトランザクション配信時間より、前記アクセラレーションノードを用いるトランザクション配信時間の方が迅速であると予測されるとの判断に基づいて、前記アクセラレーションノードを選択するステップをさらに含む、
請求項1に記載のコンピュータで実行される方法。
【請求項７】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに以下の動作を行わせる命令を記憶する1つまたは複数のコンピュータ可読記憶媒体であって、前記動作が、
ブロックチェーントランザクションアクセラレーションシステムを用いて、第1のノードによって生成された第1のトランザクションをブロックチェーンにおけるアクセラレーションノードに送信することであって、前記第1のトランザクションは、前記第1のトランザクションの意図された受信者である第2のノードに直接送信される代わりに前記アクセラレーションノードに送信され、前記第1のノード、前記第2のノード、および前記アクセラレーションノードは異なるノードである、ことと、
前記ブロックチェーントランザクションアクセラレーションシステムによって、前記第1のトランザクションを前記アクセラレーションノードから前記第2のノードへ転送することと、
前記ブロックチェーントランザクションアクセラレーションシステムによって、前記第1のトランザクションを前記第2のノードによって実行することとを含み、
前記１つまたは複数のコンピュータ可読記憶媒体は、以下の動作を行うように前記１つまたは複数のプロセッサによって実行可能な命令をさらに有し、前記動作は、
配信されたトランザクションに関する統計を収集して、より迅速なトランザクション配信時間を提供するブロックチェーン内のアクセレーションノードを決定することであって、前記統計は、時刻情報または地理情報のうち少なくとも1つを含む、ことと、
前記ブロックチェーントランザクションアクセラレーションシステムでの使用のために、より迅速なトランザクション配信時間を有するアクセラレーションノードを選択することとを含む、
1つまたは複数のコンピュータ可読記憶媒体。
【請求項８】
前記第1のトランザクションを前記アクセラレーションノードから前記第2のノードへ転送することは、
前記第1のトランザクションを受信者側アクセラレーションノードへ転送することと、
前記受信者側アクセラレーションノードによって、前記第1のトランザクションを前記第2のノードへ転送することとを含む、
請求項7に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項９】
前記ブロックチェーンにおける前記第1のノードと前記ブロックチェーンにおける前記第2のノードとは異なるネットワーク内にある、
請求項7に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１０】
前記ブロックチェーントランザクションアクセラレーションシステムは、前記ブロックチェーンにおける1つまたは複数のノードにおいて、または前記ブロックチェーンによってアクセス可能なサーバにおいて実装される、
請求項7に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１１】
前記アクセラレーションノードは、異なるネットワーク内の1つまたは複数の特定のアクセラレーションノードにトランザクションを転送する、
請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１２】
前記第1のトランザクションを前記第2のノードに直接送信することによる予測されるトランザクション配信時間より、前記アクセラレーションノードを用いるトランザクション配信時間の方が迅速であると予測されるとの判断に基づいて、前記アクセラレーションノードを選択するように、前記1つまたは複数のプロセッサによって実行可能な命令をさらに有する、
請求項7に記載の1つまたは複数のコンピュータ可読記憶媒体。
【請求項１３】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに以下の動作を行わせる命令を有する1つまたは複数のコンピュータ可読記憶媒体とを備えたシステムであって、前記動作は、
ブロックチェーントランザクションアクセラレーションシステムを用いて、第1のノードによって生成された第1のトランザクションをブロックチェーンにおけるアクセラレーションノードに送信することであって、前記第1のトランザクションは、前記第1のトランザクションの意図された受信者である第2のノードに直接送信される代わりに前記アクセラレーションノードに送信され、前記第1のノード、前記第2のノード、および前記アクセラレーションノードは異なるノードである、ことと、
前記ブロックチェーントランザクションアクセラレーションシステムによって、前記第1のトランザクションを前記アクセラレーションノードから前記第2のノードへ転送することと、
前記ブロックチェーントランザクションアクセラレーションシステムによって、前記第1のトランザクションを前記第2のノードによって実行することとを含み、
前記システムは、以下の動作を行うように前記１つまたは複数のプロセッサによって実行可能な命令をさらに有し、前記動作が、
配信されたトランザクションに関する統計を収集して、より迅速なトランザクション配信時間を提供するブロックチェーン内のアクセレーションノードを決定することであって、前記統計は、時刻情報または地理情報のうち少なくとも1つを含む、ことと、
前記ブロックチェーントランザクションアクセラレーションシステムでの使用のために、より迅速なトランザクション配信時間を有するアクセラレーションノードを選択することとを含む、
システム。
【請求項１４】
前記第1のトランザクションを前記アクセラレーションノードから前記第2のノードへ転送することは、
前記第1のトランザクションを受信者側アクセラレーションノードへ転送することと、
前記受信者側アクセラレーションノードによって、前記第1のトランザクションを前記第2のノードへ転送することとを含み、
前記アクセラレーションノードは、前記異なるネットワーク内の1つまたは複数の特定のアクセラレーションノードにトランザクションを転送する、
請求項13に記載のシステム。
【請求項１５】
前記ブロックチェーンにおける前記第1のノードと前記ブロックチェーンにおける前記第2のノードとは異なるネットワーク内にある、
請求項13に記載のシステム。
【請求項１６】
前記ブロックチェーントランザクションアクセラレーションシステムは、前記ブロックチェーンにおける1つまたは複数のノードにおいて、または前記ブロックチェーンによってアクセス可能なサーバにおいて実装される、請求項13に記載のシステム。
【請求項１７】
前記1つまたは複数のコンピュータ可読記憶媒体は、前記第1のトランザクションを前記第2のノードに直接送信することによる予測されるトランザクション配信時間より、前記アクセラレーションノードを用いるトランザクション配信時間の方が迅速であると予測されるとの判断に基づいて、前記アクセラレーションノードを選択するように、前記1つまたは複数のプロセッサによって実行可能な命令をさらに有する、
請求項13に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、アクセラレーションノードを用いたブロックチェーンネットワーク内のトランザクション配信の高速化に関する。
【背景技術】
【０００２】
分散型台帳システム(DLS)は、コンセンサスネットワーク、および/またはブロックチェーンネットワークと呼ばれることもあり、参加エンティティが安全かつ不変にデータを保存することを可能にしている。DLSは一般に、いずれの特定のユーザケースも参照することなくブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークの例のタイプは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含むことができる。パブリックブロックチェーンネットワークは、すべてのエンティティがDLSを用いてコンセンサスプロセスに参加するために公開されている。プライベートブロックチェーンネットワークは、読取り許可および書込み許可を集中的に制御する特定のエンティティに提供される。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御するエンティティの選択グループに提供され、アクセス制御レイヤを含む。
【０００３】
従来のブロックチェーンシステムにおいて、トランザクション送信プロセスは、トランザクションを生成してトランザクションをブロックチェーンノードに送信するクライアントを含む。ブロックチェーンノードはトランザクションのバッチに関するコンセンサスを取得し、その後トランザクションは1つずつ実行される。実行結果は新たなブロックチェーンノードに書き込まれる。このプロセスには、主にトランザクションをブロックチェーンノードに通信するクライアントによって達成されるトランザクションネットワーク伝送が含まれる。既存のブロックチェーン環境においては、直接ネットワーク接続が通信に用いられる。
【０００４】
しかしながら、クライアントとブロックチェーンノードとの間の直接ネットワーク接続は最適とは言えない。その単純さのため、直接ネットワーク接続は非効率的なことがある。ネットワークは、ネットワークの複雑さを処理するように適応することができないときがある。たとえば、ネットワークは、ネットワークの問題によりノード間の通信が遅くなる状況を処理することができないときがある。この非効率性のため、ネットワーク内の2つのネットワークノードがデータを伝送する必要があるとき、確立された直接接続が最速の接続ではないことがある。たとえば、2つのノードが国境を越えたネットワーク内にあるとき、または2つのノードが異なるネットワークオペレータに属しているとき、直接ネットワーク接続は非効率的または低速なことがある。一般に、ブロックチェーンにおけるトランザクションの伝送時間はランダムまたは不明である。これらの問題に対処するために直接ネットワーク接続を用いることができるが、直接ネットワーク接続に対処するより効率的な解決策があれば有利であろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書の実装形態は、ブロックチェーンネットワークトランザクションを改善するためのコンピュータで実行される方法を含む。より具体的には、本明細書の実装形態は、アクセラレーションノードを用いてブロックチェーンネットワーク内のトランザクションの配信を高速化することを対象としている。
【０００６】
いくつかの実装形態において、アクションは、ブロックチェーントランザクションアクセラレーションシステムを用いて、第1のノードによって生成された第1のトランザクションをブロックチェーンにおけるアクセラレーションノードに送信することであって、第1のトランザクションは、第1のトランザクションの意図された受信者である第2のノードに直接送信される代わりにアクセラレーションノードに送信され、第1のノード、第2のノード、およびアクセラレーションノードは異なるノードである、ことと、ブロックチェーントランザクションアクセラレーションシステムによって、トランザクションをアクセラレーションノードから第2のノードへ転送することと、ブロックチェーントランザクションアクセラレーションシステムによって、トランザクションを第2のノードによって実行することとを含む。他の実装形態は、これらの方法のこれらのアクションを実行するように構成され、コンピュータストレージデバイス上にエンコードされた、対応するシステム、装置、およびコンピュータプログラムを含む。
【０００７】
これらのおよび他の実装形態は、それぞれ任意選択で以下の特徴の1つまたは複数を含むことができる。
【０００８】
トランザクションをアクセラレーションノードから第2のノードへ転送することは、トランザクションを受信者側アクセラレーションノードへ転送することと、受信者側アクセラレーションノードによって、トランザクションを第2のノードへ転送することとを含む、以下の特徴のいずれかと組合せ可能な第1の特徴。
【０００９】
ブロックチェーンにおける第1のノードとブロックチェーンにおける第2のノードとは異なるネットワーク内にある、前のまたは以下の特徴のいずれかと組合せ可能な第2の特徴。
【００１０】
配信されたトランザクションに関する統計を収集して、より迅速なトランザクション配信時間を提供するブロックチェーンにおけるアクセラレーションノードを決定することと、ブロックチェーントランザクションアクセラレーションシステムにより用いるために、より迅速なトランザクション配信時間を有するアクセラレーションノードを選択することとをさらに含む、前のまたは以下の特徴のいずれかと組合せ可能な第3の特徴。
【００１１】
ブロックチェーントランザクションアクセラレーションシステムは、ブロックチェーンにおける1つまたは複数のノードにおいて、またはブロックチェーンによってアクセス可能なサーバにおいて実装される、前のまたは以下の特徴のいずれかと組合せ可能な第4の特徴。
【００１２】
アクセラレーションノードは、異なるネットワーク内の1つまたは複数の特定のアクセラレーションノードにトランザクションを転送するように構成される、前のまたは以下の特徴のいずれかと組合せ可能な第5の特徴。
【００１３】
トランザクションを第2のノードに直接送信することによる予測されるトランザクション配信時間より、アクセラレーションノードを用いるトランザクション配信時間の方が迅速であると予測されるとの判断に基づいて、アクセラレーションノードを選択することをさらに含む、先のまたは以下の特徴のいずれかと組合せ可能な第6の特徴。
【００１４】
本明細書は、1つまたは複数のプロセッサに接続され、命令を格納している1つまたは複数の非一時的コンピュータ可読記憶媒体も提供し、この命令は、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実装形態に従う動作を1つまたは複数のプロセッサに実行させる。
【００１５】
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する。このシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに接続され、命令を格納しているコンピュータ可読記憶媒体とを含み、この命令は、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実装形態に従う動作を1つまたは複数のプロセッサに実行させる。
【００１６】
本明細書に従う方法は、本明細書に記載の態様および特徴の任意の組合せを含むことができることが理解される。すなわち、本明細書に従う方法は、本明細書で具体的に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
【００１７】
本明細書の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。本明細書の他の特徴および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】本明細書の実装形態を実行するために用いることができる環境の一例を示す。
【図２】本明細書の実装形態に従う概念アーキテクチャの一例を示す。
【図３Ａ】本明細書の実装形態に従って、ブロックチェーンにおける2つのノード間で直接送信されるトランザクションのためのパスの一例を示すブロック図である。
【図３Ｂ】本明細書の実装形態に従って、ブロックチェーントランザクションアクセラレーションシステムにおいて複数の転送されたトランザクションを送信する際に用いられるパスの一例を示すブロック図である。
【図４】本明細書の実装形態に従って、ブロックチェーンネットワーク内で複製トランザクションを用いるための一例のプロセスを示す。
【図５】本明細書の実装形態に従って、ブロックチェーンにおいてネットワークアクセラレーションノードを用いて送信されるトランザクションのためのブロックチェーントランザクションアクセラレーションシステムにおいて用いられるパスの一例を示すブロック図である。
【図６】本明細書の実装形態に従って、ブロックチェーンネットワーク内でトランザクションを送信するためのアクセラレーションノードを用いるためのプロセスの一例を示す。
【図７】本明細書の実装形態に従う、ブロックチェーントランザクションアクセラレーションシステムの複数のブロックチェーンアクセラレーションネットワークの一例のブロック図である。
【図８】本明細書の実装形態に従って、複数のブロックチェーンアクセラレーションネットワークを用いるためのプロセスの一例を示す。
【図９】本明細書の実装形態に従う装置のモジュールの一例を示す。
【図１０】本明細書の実装形態に従う装置のモジュールの一例を示す。
【図１１】本明細書の実装形態に従う装置のモジュールの一例を示す。
【発明を実施するための形態】
【００１９】
様々な図面における同様の参照記号は同様の要素を示す。
【００２０】
本明細書の実装形態は、ブロックチェーンネットワークトランザクションを改善するためのコンピュータで実行される方法を含む。より具体的には、本明細書の実装形態は、アクセラレーションノードを用いてブロックチェーンネットワーク内のトランザクションの配信を高速化することを対象としている。
【００２１】
いくつかの実装形態において、アクションは、ブロックチェーントランザクションアクセラレーションシステムを用いて、第1のノードによって生成された第1のトランザクションをブロックチェーンにおけるアクセラレーションノードに送信することであって、第1のトランザクションは、第1のトランザクションの意図された受信者である第2のノードに直接送信される代わりにアクセラレーションノードに送信され、第1のノード、第2のノード、およびアクセラレーションノードは異なるノードである、ことと、ブロックチェーントランザクションアクセラレーションシステムによって、トランザクションをアクセラレーションノードから第2のノードへ転送することと、ブロックチェーントランザクションアクセラレーションシステムによって、トランザクションを第2のノードによって実行することとを含む。
【００２２】
本明細書の実装形態にさらなる文脈を提供するため、上で紹介したように、分散型台帳システム(DLS)は、コンセンサスネットワーク(たとえば、ピアツーピアノードで構成される)、およびブロックチェーンネットワークと呼ばれることもあり、参加エンティティが安全かつ不変にトランザクションを実行し、データを保存することを可能にしている。ブロックチェーンという用語は一般に通貨ネットワークに関連しているが、ブロックチェーンは本明細書ではいずれの特定の使用ケースも参照することなく一般にDLSを指すために用いられる。
【００２３】
ブロックチェーンは、トランザクションが不変である方法でトランザクションを保存するデータ構造である。したがって、ブロックチェーンに記録されたトランザクションは信頼でき、信用に値する。ブロックチェーンは1つまたは複数のブロックを含む。チェーンにおける各ブロックは、チェーンにおける直前のブロックの暗号化ハッシュを含むことによって、その直前のブロックにリンクされる。各ブロックはまた、タイムスタンプ、独自の暗号化ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによってすでに検証されたトランザクションは、ハッシュされ、マークルツリーにエンコードされる。マークルツリーは、ツリーのリーフノードでのデータがハッシュされ、ツリーの各ブランチのすべてのハッシュがブランチのルートで連結されるデータ構造である。このプロセスはツリーを上ってツリー全体のルートまで続き、これはツリー内のすべてのデータを表すハッシュを保存する。ツリーに保存されたトランザクションのものであると見なされるハッシュは、それがツリーの構造と一致しているかどうかを判断することによって迅速に検証することができる。
【００２４】
ブロックチェーンは、トランザクションを保存するための分散型または少なくとも部分的に分散型のデータ構造であるが、ブロックチェーンネットワークは、トランザクションなどをブロードキャスト、検証および有効化することによって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のエンティティ(たとえば、参加者A)のコンピュータ実装サービス、たとえば第1のエンティティが1つまたは複数の他のエンティティ(たとえば、他の参加者)とのトランザクションを管理するために用いるトランザクション管理システムをホストすることができる。コンピューティングシステム108は、第2のエンティティ(たとえば、参加者B)のコンピュータ実装サービス、たとえば第2のエンティティが1つまたは複数の他のエンティティ(たとえば、他の参加者)とのトランザクションを管理するために用いるトランザクション管理システムをホストすることができる。図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によって、またはそれらに代わって提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書で用いられるように、ノードは一般に、ブロックチェーンネットワーク212に接続され、それぞれの参加者がブロックチェーンネットワークに参加することを可能にする個々のシステム(たとえば、コンピュータ、サーバ)を指す。図2の例において、参加者は各ノード214に対応する。しかしながら、1人の参加者がブロックチェーンネットワーク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つのトランザクションのハッシュ値が提供され、それら自体がハッシュされて他のハッシュを提供する。このプロセスは、ブロックに保存されるべきすべてのトランザクションについて、単一のハッシュ値が提供されるまで繰り返される。このハッシュ値はマークルルートハッシュと呼ばれ、ブロックのヘッダに保存される。トランザクションのいずれかが変更されると、そのハッシュ値が変更されることになり、最終的にマークルルートハッシュが変更される。
【００３９】
ブロックはコンセンサスプロトコルを通じてブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードがコンセンサスプロトコルに参加し、ブロックチェーンにブロックを追加させるために競合する。このようなノードはマイナー(またはマインダノード)と呼ばれる。上で紹介したPOWを非限定的な一例として用いる。
【００４０】
マイナーノードはコンセンサスプロセスを実行して、ブロックチェーンにトランザクションを追加する。複数のマイナーノードがコンセンサスプロセスに参加するが、ブロックチェーンにブロックを書き込むことができるマイナーノードは1つだけである。すなわち、マイナーノードは、自身のブロックをブロックチェーンに追加させるためにコンセンサスプロセスにおいて競合する。さらに詳細には、マイナーノードは、トランザクションプールから保留中のトランザクションを定期的に収集する(たとえば、ブロックに含めることができるトランザクションの数に対する予め定義された制限まで、もしあれば)。トランザクションプールは、ブロックチェーンネットワーク内の参加者からのトランザクションメッセージを含む。マイナーノードはブロックを構築し、ブロックにトランザクションを追加する。トランザクションをブロックに追加する前に、マイナーノードは、トランザクションのいずれかがブロックチェーンのブロックにすでに含まれているかどうかをチェックする。トランザクションがすでに他のブロックに含まれていれば、そのトランザクションは破棄される。
【００４１】
マイナーノードはブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュし、ハッシュ値を対に組み合わせて、ブロック内のすべてのトランザクションに単一のハッシュ値が提供されるまでさらなるハッシュ値を生成する(マークルルートハッシュ)。このハッシュはブロックヘッダに追加される。マイナーはまた、ブロックチェーンにおける最新のブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。マイナーノードはまた、ナンス値およびタイムスタンプをブロックヘッダに追加する。マイニングプロセスにおいて、マイナーノードは必要なパラメータを満たすハッシュ値を見つけようとする。マイナーノードは、必要なパラメータを満たすハッシュ値が見つかるまで、ナンス値を変更し続ける。
【００４２】
ブロックチェーンネットワーク内のすべてのマイナーが、必要なパラメータを満たすハッシュ値を見つけようとし、このように、互いに競合する。最終的に、マイナーノードの1つが、必要なパラメータを満たすハッシュ値を見つけ、これをブロックチェーンネットワーク内のすべての他のマイナーノードに知らせる。他のマイナーノードはハッシュ値を検証し、正しいと判断されれば、ブロック内の各トランザクションを検証し、ブロックを受け入れ、そしてブロックチェーンの自身のコピーにブロックを追加する。このように、ブロックチェーンのグローバル状態は、ブロックチェーンネットワーク内のすべてのマイナーノードにわたって一貫している。上述のプロセスはPOWコンセンサスプロトコルである。
【００４３】
図2を参照して非限定的な一例を提供する。この例において、参加者Aは参加者Bにある量の通貨を送信したいと思っている。参加者Aは、トランザクションメッセージ(たとえば、差出人、宛先、および値フィールドを含む)を生成して、トランザクションメッセージをブロックチェーンネットワークに送信し、ブロックチェーンネットワークは、トランザクションメッセージをトランザクションプールに追加する。ブロックチェーンネットワーク内の各マイナーノードは、ブロックを作成し、トランザクションプールからすべてのトランザクションを取得し(たとえば、ブロックに追加することができるトランザクションの数に対する予め定義された制限まで、もしあれば)、そしてトランザクションをブロックに追加する。このように、参加者Aによって公開されたトランザクションはマイナーノードのブロックに追加される。
【００４４】
いくつかのブロックチェーンネットワークにおいて、トランザクションのプライバシーを維持するために暗号化が実施される。たとえば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を識別できないように、2つのノードがトランザクションをプライベートに保ちたい場合、ノードはトランザクションデータを暗号化することができる。例の暗号化は、対称暗号化および非対称暗号化を含むが、これらに限定されない。対称暗号化とは、暗号化(プレーンテキストから暗号化テキストを生成)と復号化(暗号化テキストからプレーンテキストを生成)との両方に単一の鍵を用いる暗号化プロセスを指す。対称暗号化においては、同じ鍵が複数のノードに使用可能であるので、各ノードがトランザクションデータを暗号化/復号化することができる。
【００４５】
非対称暗号化は、それぞれが秘密鍵および公開鍵を含む鍵のペアを用い、秘密鍵はそれぞれのノードのみに知られ、公開鍵はブロックチェーンネットワーク内の任意のまたはすべての他のノードに知られている。ノードは他のノードの公開鍵を用いてデータを暗号化することができ、暗号化されたデータは他のノードの秘密鍵を用いて復号化することができる。たとえば、再び図2を参照すると、参加者Aは参加者Bの公開鍵を用いてデータを暗号化し、暗号化されたデータを参加者Bに送信することができる。参加者Bは、自身の秘密鍵を用いて暗号化されたデータ(暗号化テキスト)を復号化し、元のデータ(プレーンテキスト)を抽出することができる。ノードの公開鍵で暗号化されたメッセージは、そのノードの秘密鍵を用いてのみ復号化することができる。
【００４６】
非対称暗号化はデジタル署名を提供するために用いられ、これにより、トランザクションの参加者が、トランザクションの他の参加者、およびトランザクションの有効性を確認することが可能になる。たとえば、ノードはメッセージにデジタル署名することができ、他のノードは、参加者Aのデジタル署名に基づいて、そのノードによってメッセージが送信されたことを確認することができる。デジタル署名を用いて、送信中にメッセージが改ざんされないことを確実にすることもできる。たとえば、再び図2を参照すると、参加者Aが参加者Bにメッセージを送信しようとしている。参加者Aはメッセージのハッシュを生成し、次いで、その秘密鍵を用いて、ハッシュを暗号化して暗号化されたハッシュとしてデジタル署名を提供する。参加者Aはデジタル署名をメッセージに追加し、デジタル署名付きのメッセージを参加者Bに送信する。参加者Bは、参加者Aの公開鍵を用いてデジタル署名を復号化し、ハッシュを抽出する。参加者Bはメッセージをハッシュし、ハッシュを比較する。ハッシュが同じであれば、参加者Bは、メッセージが実際に参加者Aから来たものであり、改ざんされなかったことを確認することができる。
【００４７】
いくつかの実装形態において、たとえば、ノードAが同じトランザクションの複数のコピーを送信すれば、ブロックチェーンにおけるノード間のより高速な通信を実現することができる。たとえば、ノードAがノードB(たとえば、デスティネーションノード)にトランザクションを送信することに加えて、ノードAは少なくとも1つの他のノードにトランザクションの複製を送信することもできる。たとえば、第3のノードがより高速なネットワーク伝送を提供する(またはもたらす)ことができる。たとえば、ノードAから直接来る伝送の前に、第3のノードが、ネットワークノードBへの伝送の配信の最終的な完了を開始することができれば、より高速なネットワーク伝送を行うことができる。一般に、第3のノードに送信されたトランザクションはノードBに配信することができるが、追加の中間ノードが可能である。このようにトランザクションを複製することは、ブロックチェーンネットワークの再生および転送機能を用いることができる。トランザクションを複製することはまた、同じトランザクションの複製を伝播することによってブロックチェーンネットワーク上で繰り返される攻撃(たとえば、マルウェアまたは不正アクセス)を防ぐのに役立つこともできる。ブロックチェーンネットワークのこれらの特徴の結果として、トランザクションを可及的速やかにデスティネーションノードに配信することができる。トランザクションのより高速な配信の結果として生じる利点は、デスティネーションノードでトランザクションがより高速に実行されることである。
【００４８】
図3Aは、ブロックチェーンにおける2つのノード間で直接送信(または配信)されるトランザクションのためのパス300の一例を示すブロック図である。たとえば、パス300は、ノードA302によってノードB304に送信されてノードB304によって実行されるトランザクションに用いることができる。いくつかの場合において、トランザクションはノードA302とノードB304との間の直接通信306を用いて送信することができる。このように、図3Aは、ブロックチェーンにおける1つのノードから他の1つのノードへトランザクションを送信するための従来の技術を表すことができる。しかしながら、ブロックチェーンによって用いられるネットワーク内の不確実性のため、ブロックチェーンにおけるノード間の接続には不利なことがある。たとえば、ノードが同じネットワーク上になければ、またはブロックチェーンノードが異なる国においてデプロイされていれば、ネットワークの直接接続(たとえば、直接通信306)は、トランザクションの可能な最速パスではないことがある。
【００４９】
図3Bは、ブロックチェーントランザクションアクセラレーションシステム320において複数の転送されたトランザクションを送信する際に用いられるパスの一例を示すブロック図である。ブロックチェーントランザクションアクセラレーションシステム320は、たとえば、本明細書の他の図(図1〜図2など)を参照して説明したコンポーネントを用いて実装することができる。
【００５０】
ブロックチェーントランザクションアクセラレーションシステム320は、単一の通信パスを用いるシステム(たとえば、複数トランザクション転送のない、図3Aを参照して説明した)を越える改善を提供することができる。たとえば、図3Bに示すように、ノードA302とノードB304との間の直接通信306は、依然としてトランザクションに用いることができる。しかしながら、直接通信306を用いることに加えて、トランザクションを複製して追加のノード308〜312に送信することができる。たとえば、ノードB304へのトランザクションの配信を高速化するため、ノードA302は、ノードX308、ノードY310、およびノードZ312に通信パス314を介してトランザクションを送信することもできる。トランザクションは次いでノードX308、ノードY310、およびノードZ312によって通信パス316を介して転送することができる。このようにノードA302が同じトランザクションの複数のコピー(現在の例において、合計4つのトランザクションの例)を送信するとき、ノードA302は、どのトランザクションがノードB304に到達する最初のトランザクションになるかは分からない。ノードB304は、受信した最初のトランザクションの処理後、複製トランザクションを無視するように構成することができるので、トランザクション到着順序は重要ではない。
【００５１】
受信者ノード(および現在の例においてはトランザクションのデスティネーションノード)として機能するノードB304は、複数の同一のトランザクションを受信することがある。最初のトランザクションのみが実行されることになる。複製トランザクションと判断された他のトランザクションは、ブロックチェーンシステムによって無効なトランザクションとして自動的に識別することができる。そのため、複製トランザクションは実行されることがない。
【００５２】
複製トランザクションは様々な方法で判断することができる。たとえば、トランザクションが同じデジタル署名を有すれば、これらのトランザクションは複製トランザクションであると判断することができる。たとえば、トランザクションが受信されると、そのトランザクションのデジタル署名を、最近実行された(または最初に到着した)トランザクションと比較することができる。複製トランザクションを判断する他の方法も用いることができる(たとえば、一般的なブロックチェーン技術を用いて)。
【００５３】
時間とともに、ノードごとに発生する伝送速度を記録および追跡するため、統計を収集および維持することができる。たとえば、多くのノードが、ノードX308、ノードY310、およびノードZ312を通じてトランザクションを送ることができる。たとえば、ノードY310が時間とともにノードX308およびノードZ312より高速であると判断されれば、ノードY310が好ましいノードになることができる。いくつかの実装形態において、好ましいノードのリストを維持することができ、トランザクションが複数のノードを介して送信されると、最速のノードを最初に選択することができる。時間とともに、ブロックチェーンシステムによって遅いノードを回避することができる。
【００５４】
いくつかの実装形態において、速度に加えて様々な要因に基づいて、選択されるノードを選択することができる。たとえば、いくつかのノードは、異なる時間帯でまたは曜日によって高速になることがある。他の一例において、いくつかのノードはそれらの地理的位置に基づいて回避することができ、これは、追跡された伝送速度に加えて、所与のトランザクションの予測伝送速度の指標とすることができる。
【００５５】
いくつかの実装形態において、異なる技術を用いて、いくつの複製トランザクションを送信すべきか、そしてこれらの複製トランザクションを送信するためにどのノードを用いるべきか、を決定することができる。たとえば、ブロックチェーンシステムは、送信ノードにアクセス可能な各ハブに個別の複製トランザクションを送信することができる。たとえば、各ハブは異なるサービスプロバイダに対応することができる。時間とともに、ブロックチェーンシステムは、最良かつ最速のプロバイダを識別するデータベースを構築することができる。いくつかの実装形態において、サービスプロバイダにスコアを割り当てることができ、最高スコアは、複製トランザクションの送信において最速のサービスプロバイダであるという履歴を有するサービスプロバイダに割り当てられる。いくつかの実装形態において、単一のサービスプロバイダが大量のトラフィックで飽和しないよう、トランザクションをスコアの高い複数のサービスプロバイダに分散させることができる。
【００５６】
図4は、ブロックチェーンネットワーク内で複製トランザクションを用いるための例のプロセス400を示している。プロセス400は、本明細書の実装形態に従って実行することができる。いくつかの実装形態において、例のプロセス400は、1つまたは複数のコンピューティングデバイスを用いて実行される1つまたは複数のコンピュータ実行可能プログラムを用いて実行することができる。
【００５７】
プロセス400は、ブロックチェーンにおける1つまたは複数のノードにおいて、またはブロックチェーンによってアクセス可能なサーバにおいて実装されるブロックチェーントランザクションアクセラレーションシステムの一部である(および中に実装する)ことができる。たとえば、図3Bを参照して説明したブロックチェーントランザクションアクセラレーションシステム320は、プロセス400を実施することができる。
【００５８】
402で、ブロックチェーンにおける第1のノードを介して送信された第1のトランザクションがブロックチェーントランザクションアクセラレーションシステムにおいて受信される。一例として、ブロックチェーントランザクションアクセラレーションシステム320内で、直接通信306を用いて、ノードA302とノードB304との間でトランザクションを送信することができる。402から、方法400は404に進む。
【００５９】
404で、第1のトランザクションの複製である少なくとも1つの第2のトランザクションがブロックチェーントランザクションアクセラレーションシステムにおいて受信され、ここで少なくとも1つの第2のトランザクションは、第1のノードとは異なるブロックチェーンにおける少なくとも1つの第2のノードに第1のノードによって送信される。一例として、ブロックチェーントランザクションアクセラレーションシステム320は、追加のノード308〜312の1つまたは複数にトランザクション(すでにノードB304に送信された)の複製を送信することができる。トランザクションの複製は、通信パス314を用いて送信することができる。
【００６０】
いくつかの実装形態において、ブロックチェーンにおける第1のノードおよびブロックチェーンにおける少なくとも1つの第2のノードは、異なるネットワークサービスプロバイダによって提供される異なるネットワークハブ内にあってよい。たとえば、ノードA302およびノードB304は、異なる地域または国にある、または異なるネットワークサービスプロバイダを用いるなど、別個の異なるネットワークハブにあってよい。
【００６１】
いくつかの実装形態において、方法400は、少なくとも1つの第2のトランザクションを送信するために用いる複数の第2のノードを決定することをさらに含むことができる。たとえば、ブロックチェーントランザクションアクセラレーションシステム320は、トランザクションの複製が送信される追加のノード308〜312のうちの特定のいくつかを選択することができる。404から、方法400は406に進む。
【００６２】
406で、第1のトランザクションおよび少なくとも1つの第2のトランザクションを含む受信されたトランザクションのうちの最初に受信されたトランザクションがブロックチェーントランザクションアクセラレーションシステムによって実行される。たとえば、ノードB304は、通信パス306および通信パス316を介して到着する最初のトランザクションを実行することができる。最初に到着するトランザクションは、どの通信パスが最速かに依存する。406から、方法400は408に進む。
【００６３】
408で、ブロックチェーントランザクションアクセラレーションシステムによって、受信されたトランザクションの残りのトランザクションが最初に受信されたトランザクションと同一であると判断すると、その残りのトランザクションは破棄される。たとえば、ノードB304は、最初に受信されたトランザクションの1つまたは複数の複製を受信することができる。ノードB304は、残りの(最初に受信されなかった)トランザクションは複製トランザクションであると判断することができる。ノードB304は次いでこれらの複製トランザクションを破棄することができる。
【００６４】
いくつかの実装形態において、受信されたトランザクションの残りのトランザクションは最初に受信されたトランザクションと同一であると判断することは、最初に受信されたトランザクションのデジタル署名に一致する残りのトランザクションのそれぞれのデジタル署名を識別することを含む。たとえば、ノードB304は、トランザクションのデジタル署名を比較し、一致するデジタル署名が存在すると判断することによって、残りの(最初に受信されなかった)トランザクションは複製トランザクションであると判断することができる。408の後、方法400は停止することができる。
【００６５】
いくつかの実装形態において、方法400は、受信されたトランザクションに関する伝送速度統計を収集して、より速いトランザクション伝送速度を提供するブロックチェーンにおけるノードを決定することをさらに含むことができる。たとえば、時間とともに、ブロックチェーントランザクションアクセラレーションシステム320は、追加のノード308〜312の1つまたは複数が他よりも速いトランザクション配信速度を提供してきたと判断することができる。トランザクション配信速度情報は、ブロックチェーントランザクションアクセラレーションシステム320によって時間とともに保存および追跡することができる。
【００６６】
いくつかの実装形態において、方法400は、所与の伝送送信ノードについて、伝送速度統計に基づいて、トランザクションが送信されるべき好ましいノードのセットを決定することをさらに含むことができる。たとえば、ブロックチェーントランザクションアクセラレーションシステム320は、複製トランザクションを送信するために用いる追加のノード308〜312のどれかを選択する際に最速のトランザクション配信ノードを識別する統計を用いることができる。
【００６７】
いくつかの場合において、ブロックチェーンネットワークノード間の直接接続が常に、ブロックチェーンネットワークノード間の最速のトランザクションパスであるとは限らない。たとえば、ノードAがある国にあり、ノードBが異なる国にあることがある。ノードの場所は、異なる国(または他の地域)にあることによって、ネットワークの不安定性を生み出し、またこれに寄与することがある。ノードAからノードBへ送信されるトランザクションには、たとえば、異なるネットワークプロバイダに関連する要因を含む、複雑な要因が絡むことがある。結果として、ノードAとノードBとの間の直接接続は遅くなるか、不安定になることがある。トランザクション配信の速度および信頼性は、たとえば、ネットワークプロバイダによって処理される大量のトラフィックによって影響を受けることがある。たとえば、ノードAとノードBとの間の直接接続と同じネットワークを用いる大量のデータが伝送されれば、ブロックチェーンネットワークのトランザクション実行効率が悪影響を受けることがある。図3A〜図4を参照して前述したように、トランザクション実行効率に関するいくつかの問題は、複数のトランザクションを送信することによって改善することができる。いくつかの実装形態において、ブロックチェーンにおいてネットワークアクセラレーションノードを用いることによってトランザクション実行効率を改善することができる。
【００６８】
図5は、ブロックチェーンにおいてネットワークアクセラレーションノードを用いて送信されるトランザクションのためのブロックチェーントランザクションアクセラレーションシステム500で用いられるパスの一例を示すブロック図である。パスにおいて矢印で示されているように、ノードA502はトランザクションの送信者であり、ノードB504はトランザクションの意図された受信者である。ノードA502およびノードB504は、たとえば、それぞれローカルネットワーク1 506およびローカルネットワーク2 508などの異なるネットワークエリアに存在することができる。ノードA502およびノードB504は、たとえば、ブロックチェーンネットワークの一部である通信チャネル510を用いて直接通信することができる。しかしながら、トランザクションのより高速な伝送が可能であり、高速通信を提供する通信パス512を用いて行うことができる。結果として、ノードA502からノードB504へのトランザクションの伝送は、少なくともトランスファーノードA'514およびトランスファーノードB'516を含むトランスファーノードを用いることができる。いくつかの実装形態において、トランスファーノードA'514は、トランスファーノードB'516を介してトランザクションを転送することなく、ノードB504に直接トランザクションを転送することができる。
【００６９】
トランスファーノードはネットワークエリア内に複数のノードをサービスすることができる。たとえば、ノードA502およびノードC518などの1つまたは複数の通常ノードをトランスファーノード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を用いて、ノードA502から、アクセラレーションノードであるトランスファーノードA'514へトランザクションを送信することができる。ブロックチェーントランザクションアクセラレーションシステム500は、たとえば、トランザクションをノードB504に直接送信する代わりにトランスファーノードA'514を選択することができる。選択決定は、たとえば、通信チャネル512は通信チャネル510より速い(またはおそらくそうである)という知識に基づいて行うことができる。
【００７６】
いくつかの実装形態において、ブロックチェーンにおける第1のノードとブロックチェーンにおける第2のノードとは異なるネットワーク内にある。たとえば、ノードA502およびノードB504は、それぞれ異なるネットワークエリアであるローカルネットワーク1 506およびローカルネットワーク2 508に存在することができる。
【００７７】
いくつかの実装形態において、アクセラレーションノードは、異なるネットワーク内の1つまたは複数の特定のアクセラレーションノードにトランザクションを転送するように構成することができる。一例として、トランスファーノードA'514は、ブロックチェーントランザクションアクセラレーションシステム500において指定されたアクセラレーションノードとして構成することができる。
【００７８】
いくつかの実装形態において、方法600は、トランザクションを第2のノードに直接送信することによる予測されるトランザクション配信時間よりも、アクセラレーションノードを用いるトランザクション配信時間の方が迅速であると予測されるとの判断に基づいて、アクセラレーションノードを選択することをさらに含むことができる。たとえば、ブロックチェーントランザクションアクセラレーションシステム500は、トランザクションをノードB504に直接送信するよりもトランスファーノードA'514をアクセラレーションノードとして用いる方が速い(またはおそらくそうである)という知識に基づいて、トランスファーノードA'514を選択することができる。602から、方法600は604に進む。
【００７９】
604で、トランザクションは、ブロックチェーントランザクションアクセラレーションシステムによって、アクセラレーションノードから第2のノードへ転送される。たとえば、トランスファーノードA'514は、通信パス512を介してノードB504にトランザクションを転送することができる。
【００８０】
いくつかの実装形態において、トランザクションをアクセラレーションノードから第2のノードへ転送することは、受信者側のアクセラレーションノードの使用を含むことができる。たとえば、トランスファーノードA'514は、ローカルネットワーク2 508内のアクセラレーションノードであるトランスファーノードB' 516などの受信者側アクセラレーションノードに通信パス512を介してトランザクションを転送することができる。受信者側のアクセラレーションノード(たとえば、トランスファーノードB'516)は、第2のノード(たとえば、ノードB504)にトランザクションを転送することができる。604から、方法600は606に進む。
【００８１】
606で、トランザクションは第2のノードによって実行される。一例として、ノードB504は受信したトランザクションを実行することができる。606の後、方法600は停止することができる。
【００８２】
いくつかの実装形態において、方法600は、トランザクション配信時間統計の使用、およびトランザクション配信時間統計に基づくアクセラレーションノードの選択をさらに含むことができる。たとえば、ブロックチェーントランザクションアクセラレーションシステム500は、配信されたトランザクションに関する統計を収集して(たとえば、通信チャネル512を用いて)、より迅速なトランザクション配信時間を提供するブロックチェーンにおけるアクセラレーションノードを決定することができる。次いで、ブロックチェーントランザクションアクセラレーションシステム500は、より迅速なトランザクション配信時間を有するアクセラレーションノード、たとえば、トランスファーノード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つの集合的ブロックチェーントランザクションアクセラレーションシステムとする、またはそれとして機能することができる。集合的ブロックチェーントランザクションアクセラレーションシステムによってどの技術を用いるかの決定は、他の要因の中でも、ネットワークの状態およびトラフィックの知識などのリアルタイム情報に基づいて行うことができる。
【００９５】
図9は、本明細書の実装形態に従う装置900のモジュールの一例を示す。装置900は、トランザクション再送信(たとえば、コンソーシアムまたは他のブロックチェーン型ネットワーク内で)を用いてブロックチェーンネットワーク内でトランザクション配信を高速化することを可能にするように構成された装置の例の実装形態であり得る。装置900は、上述の実装形態に対応することができ、装置900は以下を含む。すなわち、ブロックチェーントランザクションアクセラレーションシステムにおいて、ブロックチェーンにおける第1のノードを介して送信された第1のトランザクションを受信するための第1の受信部または第1の受信ユニット902と、ブロックチェーントランザクションアクセラレーションシステムにおいて、第1のトランザクションの複製である少なくとも1つの第2のトランザクションを受信するための第2の受信部または第2の受信ユニット904であって、少なくとも1つの第2のトランザクションは、第1のノードとは異なるブロックチェーンにおける少なくとも1つの第2のノードに第1のノードによって送信される、第2の受信部または第2の受信ユニットと、ブロックチェーントランザクションアクセラレーションシステムによって、第1のトランザクションおよび少なくとも1つの第2のトランザクションを含む受信されたトランザクションのうちの最初に受信されたトランザクションを実行するための実行部または実行ユニット906と、ブロックチェーントランザクションアクセラレーションシステムによって、受信されたトランザクションの残りのトランザクションが最初に受信されたトランザクションと同一であると判断すると、残りのトランザクションを破棄する破棄部または破棄ユニット908と、である。
【００９６】
前の実装形態において説明したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを用いることによって実装することができ、または特定の機能を有する製品を用いることによって実装することができる。典型的な実装デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであってよい。
【００９７】
装置内の各ユニットの機能および役割の実装プロセスについて、前の方法における対応するステップの実装プロセスを参照することができる。簡略化のため、ここでは詳細を省略する。
【００９８】
装置の実装形態は基本的に方法の実装形態に対応するので、関連する部分について、方法の実装形態における関連する説明を参照することができる。前述の装置の実装形態は単なる一例である。個別の部分として説明されたユニットは、物理的に分離していることもしていないこともあり、ユニットとして表示された部分は、物理ユニットであることもそうでないこともあり、1つの位置に配置することも、または複数のネットワークユニットに分散させることもできる。モジュールのいくつかまたはすべてを実際の要求に基づいて選択して、本明細書の解決策の目的を達成することができる。当業者は、創造的な努力なしに本願の実装形態を理解し実施することができる。
【００９９】
再び図9を参照すると、これは、トランザクションの再送信を用いてブロックチェーンネットワーク内でのトランザクション配信を高速化することを可能にする装置の内部機能モジュールおよび構造を示すとして解釈することができる。実行装置は、トランザクションの再送を用いてブロックチェーンネットワーク内でトランザクション配信を高速化することを可能にするように構成された装置の一例であり得る。
【０１００】
図10は、本明細書の実装形態に従う装置1000のモジュールの一例を示す。装置1000は、アクセラレーションノード(たとえば、コンソーシアムまたは他のブロックチェーン型ネットワーク内で)を用いてブロックチェーンネットワーク内でトランザクションの配信を高速化することを可能にするように構成された装置の例の実装形態であり得る。装置1000は、上述の実装形態に対応することができ、装置1000は以下を含む。すなわち、ブロックチェーントランザクションアクセラレーションシステムを用いて、第1のノードによって生成された第1のトランザクションをブロックチェーンにおけるアクセラレーションノードに送信する送信部または送信ユニット1002であって、第1のトランザクションは、第1のトランザクションの意図された受信者である第2のノードに直接送信される代わりにアクセラレーションノードに送信され、第1のノード、第2のノード、およびアクセラレーションノードは異なるノードである、送信部または送信ユニットと、ブロックチェーントランザクションアクセラレーションシステムによって、アクセラレーションノードから第2のノードへトランザクションを転送するための転送部または転送ユニット1004と、ブロックチェーントランザクションアクセラレーションシステムによって、トランザクションを第2のノードによって実行するための実行部または実行ユニット1006と、である。
【０１０１】
前の実装形態において説明したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを用いることによって実装することができ、または特定の機能を有する製品を用いることによって実装することができる。典型的な実装デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであってよい。
【０１０２】
装置内の各ユニットの機能および役割の実装プロセスについて、前の方法における対応するステップの実装プロセスを参照することができる。簡略化のため、ここでは詳細を省略する。
【０１０３】
装置の実装形態は基本的に方法の実装形態に対応するので、関連する部分について、方法の実装形態における関連する説明を参照することができる。前述の装置の実装形態は単なる一例である。個別の部分として説明されたユニットは、物理的に分離していることもしていないこともあり、ユニットとして表示された部分は、物理ユニットであることもそうでないこともあり、1つの位置に配置することも、または複数のネットワークユニットに分散させることもできる。モジュールのいくつかまたはすべてを実際の要求に基づいて選択して、本明細書の解決策の目的を達成することができる。当業者は、創造的な努力なしに本願の実装形態を理解し実施することができる。
【０１０４】
再び図10を参照すると、これは、アクセラレーションノードを用いてブロックチェーンネットワーク内でのトランザクションの配信を高速化することを可能にする装置の内部機能モジュールおよび構造を示すとして解釈することができる。実行装置は、アクセラレーションノードを用いてブロックチェーンネットワーク内でのトランザクションの配信を高速化することを可能にするように構成された装置の例であり得る。
【０１０５】
図11は、本明細書の実装形態に従う装置1100のモジュールの一例を示す。装置1100は、グローバルアクセラレーションノード(たとえば、コンソーシアムまたは他のブロックチェーン型ネットワーク内で)を用いてブロックチェーントランザクション速度を改善するように構成された装置の例の実装形態であり得る。装置1100は、上述の実装形態に対応することができ、装置1000は以下を含む。すなわち、ブロックチェーントランザクションアクセラレーションシステムにおいて、複数のブロックチェーンにアクセス可能な複数のブロックチェーンアクセラレーションネットワークへのアクセスを提供する提供部または提供ユニット1102であって、複数のブロックチェーンアクセラレーションネットワークは複数のアクセラレーションノードを含み、各アクセラレーションノードは、複数のブロックチェーンのうちの少なくとも1つのブロックチェーンにおける少なくとも1つのノードにアクセス可能である、提供部または提供ユニットと、複数のブロックチェーンの第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つまたは複数の大容量ストレージデバイスを含むか、またはそこからデータを受信もしくはそこへデータを転送するように動作可能に接続されることになる。大容量ストレージデバイスは、たとえば、磁気ディスク、光磁気ディスク、または光ディスク、または固体ドライブであってよい。しかしながら、コンピュータはこのようなデバイスを有する必要はない。また、コンピュータは、他のデバイス、ほんの数例を挙げると、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【０１１７】
ユーザとの相互作用を提供するため、本明細書に記載の主題の実装形態は、ディスプレイデバイス、たとえば、ユーザに情報を表示するためのLCD(液晶ディスプレイ)モニタ、ユーザがコンピュータに入力を提供することができる入力デバイス、たとえば、キーボードおよびポインティングデバイス、たとえば、マウス、トラックボールまたはタッチパッドを有するコンピュータ上で実施、またはこれと通信するように構成することができる。他の種類のデバイスを用いて、ユーザとの相互作用を提供することもできる。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって用いられるデバイスとの間で文書を送受信することによって、たとえば、ユーザのデバイス上のウェブブラウザに、そのウェブブラウザから受信された要求に応じてウェブページを送信することによって、またはユーザデバイス、たとえば、スマートフォンまたは電子タブレット上で動いているアプリと相互作用することによって、ユーザと相互作用することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージを個人用デバイス、たとえば、メッセージングアプリケーションを動かしているスマートフォンに送信し、ユーザから返信として応答メッセージを受信することにより、ユーザと相互作用することができる。
【０１１８】
本明細書では、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成され」という用語を用いている。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータのシステムとは、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステムにインストールされていることを意味する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると、その装置に動作またはアクションを実行させる命令を1つまたは複数のプログラムが含むことを意味する。特定の動作またはアクションを実行するように構成される専用論理回路とは、その回路は動作またはアクションを実行する電子論理を有することを意味する。
【０１１９】
本明細書は多くの特定の実装形態の詳細を含むが、これらは、請求項自体によって定義された、クレームされている範囲に対する限定としてではなく、特定の実装形態に特有の特徴の説明として解釈されるべきである。別個の実装形態の文脈で本明細書に記載したいくつかの特徴は、単一の実装形態において組み合わせて実現することもできる。逆に、単一の実装形態の文脈で説明した様々な特徴も、複数の実装形態において別個に、または任意の適切なサブコンビネーションで実現することができる。さらに、いくつかの組合せで動作するものとして特徴を上で説明し、最初はそのようにクレームさえしたが、クレームされた組合せからの1つまたは複数の特徴はいくつかの場合において組合せから削除することができ、請求項はサブコンビネーションまたはサブコンビネーションの変形を対象とすることがある。
【０１２０】
同様に、特定の順序で動作が図面において描かれ、請求項に記載されているが、これは、所望の結果を達成するために、そのような動作を示した特定の順序でまたは連続した順序で実行すること、またはすべての説明した動作を実行することを要求するものとして理解されるべきではない。いくつかの状況において、マルチタスクおよび並列処理が有利なことがある。さらに、上述の実装形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラムコンポーネントおよびシステムは一般に単一のソフトウェア製品に統合することも複数のソフトウェア製品にパッケージ化することもできることが理解されるべきである。
【０１２１】
本主題の特定の実装形態を説明してきた。以下の特許請求の範囲内には他の実装形態がある。たとえば、請求項に記載されたアクションは、異なる順序で実行することができ、それでも望ましい結果を達成することができる。一例として、添付の図面に描かれたプロセスは、望ましい結果を達成するために、示した特定の順序、または連続的な順序を必ずしも必要としない。いくつかの場合において、マルチタスクおよび並列処理が有利なことがある。
【符号の説明】
【０１２２】
102  ブロックチェーンネットワーク
106  コンピューティングデバイス、コンピューティングシステム
108  コンピューティングデバイス、コンピューティングシステム
110  ネットワーク
202  参加者システム
204  参加者システム
206  参加者システム
212  ブロックチェーンネットワーク
214  ノード
216  ブロックチェーン
300  パス
302  ノードA
304  ノードB
306  直接通信
308  ノードX
310  ノードY
312  ノードZ
314  通信パス
316  通信パス
320  ブロックチェーントランザクションアクセラレーションシステム
500  ブロックチェーントランザクションアクセラレーションシステム
502  ノードA
504  ノードB
506  ローカルネットワーク1
508  ローカルネットワーク2
510  通信チャネル
512  通信パス
514  トランスファーノードA'
516  トランスファーノードB'
518  ノードC
700  ブロックチェーントランザクションアクセラレーションシステム
702  複数のブロックチェーンアクセラレーションネットワーク
704  ブロックチェーン
704a  第1のブロックチェーン
704b  第2のブロックチェーン
706  アクセラレーションノード
708  ノード
902  第1の受信ユニット
904  第2の受信ユニット
906  実行部または実行ユニット
908  破棄部または破棄ユニット
1002  送信部または送信ユニット
1004  転送部または転送ユニット
1006  実行部または実行ユニット
1102  提供部または提供ユニット
1104  受信部または受信ユニット
1106  転送部または転送ユニット
【図１】
0006899911.tif 000002
【図２】
0006899911.tif 000003
【図３Ａ】
0006899911.tif 000004
【図３Ｂ】
0006899911.tif 000005
【図４】
0006899911.tif 000006
【図５】
0006899911.tif 000007
【図６】
0006899911.tif 000008
【図７】
0006899911.tif 000009
【図８】
0006899911.tif 000010
【図９】
0006899911.tif 000011
【図１０】
0006899911.tif 000012
【図１１】
0006899911.tif 000013