(57)【要約】【課題】【解決手段】動作の例は、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとのうちの１つまたは複数を含むことができる。【選択図】図３
2021520539.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンを管理するためのコンピューティング・システムであって、
クロスチェーン・トランザクションを実行するというリクエストを受け取るためのネットワーク・インターフェースと、
プロセッサであって、
前記クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別すること、
前記識別した全く異なるロケーションに基づいて、前記２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索すること、
前記２つ以上の異なるブロックチェーンからの前記検索したデータをクロスチェーンの結果を生成するための入力とする前記クロスチェーン・トランザクションを実行すること、および
分散型台帳のデータ・ブロックを介して前記クロスチェーンの結果を格納すること
を行うためのプロセッサと
を備える、システム。
【請求項２】
前記クロスチェーン・トランザクションの実行が、前記２つ以上の異なるブロックチェーンからの検索したデータを前記プロセッサに一緒に混合させる、請求項１に記載のコンピューティング・システム。
【請求項３】
前記プロセッサが、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンのそれぞれに挿入するように構成される、請求項１または２のいずれかに記載のコンピューティング・システム。
【請求項４】
前記プロセッサが、第１のブロックチェーンから取得したトランザクション・データを前記クロスチェーンの結果の差分値で更新するために、前記クロスチェーンの結果についての情報を格納した前記新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンの中からの前記第１のブロックチェーンに挿入するように構成される、請求項３に記載のコンピューティング・システム。
【請求項５】
前記プロセッサが、前記生成したクロスチェーンの結果に基づいて、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを混合チェーンのブロックチェーンに挿入するように構成される、請求項１ないし４のいずれかに記載のコンピューティング・システム。
【請求項６】
前記プロセッサが、前記混合チェーンのブロックチェーンに以前に格納された別のクロスチェーン・トランザクションのクロスチェーンの結果に、前記混合チェーンのブロックチェーンに挿入した前記新しいデータ・ブロックをリンクするようにさらに構成される、請求項５に記載のコンピューティング・システム。
【請求項７】
前記プロセッサが、前記受け取ったリクエストによって識別された前記２つ以上の異なるブロックチェーンの個々のターゲット・ブロックチェーン・ノードから、前記クロスチェーンのブロックチェーン・トランザクションのための前記データを検索するために、前記ネットワーク・インターフェースを制御するように構成される、請求項１ないし６のいずれかに記載のコンピューティング・システム。
【請求項８】
前記プロセッサが、前記リクエストに含まれる２つ以上のユニフォーム・リソース・ロケータ（ＵＲＬ）に基づいて、前記２つ以上の異なるブロックチェーンの異なるネットワーク・ロケーションをそれぞれ識別するように構成される、請求項１ないし７のいずれかに記載のコンピューティング・システム。
【請求項９】
ブロックチェーンを管理するための方法であって、
クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、
前記クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、
前記識別した全く異なるロケーションに基づいて、前記２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、
前記２つ以上の異なるブロックチェーンからの前記検索したデータをクロスチェーンの結果を生成するための入力とする前記クロスチェーン・トランザクションを実行することと、
分散型台帳のデータ・ブロックを介して前記クロスチェーンの結果を格納することと
を含む、方法。
【請求項１０】
前記クロスチェーン・トランザクションの前記実行することが、前記２つ以上の異なるブロックチェーンからの前記検索したデータを一緒に混合させる、請求項９に記載の方法。
【請求項１１】
前記格納することが、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンのそれぞれに挿入することを含む、請求項９または１０のいずれかに記載の方法。
【請求項１２】
前記格納することが、第１のブロックチェーンから取得したトランザクション・データを前記クロスチェーンの結果から生じた差分値で更新するために、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンの中からの前記第１のブロックチェーンに挿入することを含む、請求項１１に記載の方法。
【請求項１３】
前記格納することが、前記生成したクロスチェーンの結果に基づいて、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを混合チェーンのブロックチェーンに挿入することを含む、請求項９ないし１２のいずれかに記載の方法。
【請求項１４】
前記格納することが、前記混合チェーンのブロックチェーンに以前に格納された別のクロスチェーン・トランザクションのクロスチェーンの結果に、前記混合チェーンのブロックチェーンに挿入した前記新しいデータ・ブロックをリンクすることをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記検索することが、前記受け取ったリクエストによって識別された前記２つ以上の異なるブロックチェーンの個々のターゲット・ブロックチェーン・ノードから、前記クロスチェーンのブロックチェーン・トランザクションを実行するための前記データを検索することを含む、請求項９ないし１４のいずれかに記載の方法。
【請求項１６】
前記識別することが、前記リクエストに含まれる２つ以上のユニフォーム・リソース・ロケータ（ＵＲＬ）に基づいて、前記２つ以上の異なるブロックチェーンにアクセスするための異なるネットワーク・ロケーションをそれぞれ識別することを含む、請求項９ないし１５のいずれかに記載の方法。
【請求項１７】
ブロックチェーンを管理するためのコンピュータ・プログラム製品であって、
請求項９ないし１６のいずれかに記載の方法を行うための処理回路、および前記処理回路による実行のための格納命令によって読取可能なコンピュータ可読ストレージ媒体
を備える、コンピュータ・プログラム製品。
【請求項１８】
コンピュータ可読媒体に格納され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動くとき、請求項９ないし１６のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は一般に、複数のブロックチェーンにわたってトランザクション・データを区画化することに関し、より詳細には、クロスチェーン・トランザクションを実施するブロックチェーンに関する。
【背景技術】
【０００２】
台帳は一般にエントリの会計帳簿として定義され、その中にトランザクションが記録され、権限付与されたユーザには見える。分散型台帳は、複数のコンピューティング・システムに全体的にまたは部分的に複製された台帳である。分散型台帳の１つのタイプは、暗号分散型台帳（ＣＤＬ：cryptographic distributed Ledger）であり、不可逆性（トランザクションが記録されると、破棄することができない）、アクセス可能性（いずれの当事者も、全体的にまたは部分的にＣＤＬにアクセスすることができる）、時系列でありタイムスタンプが押されている（トランザクションが台帳にいつ追加されたかを全ての当事者が知っている）、コンセンサス・ベースである（トランザクションは、ネットワーク上の当事者によって典型的には満場一致して承認された場合のみ追加される）、検証可能性（全てのトランザクションは、暗号学的に検証されることが可能である）という、プロパティのうちの少なくともいくつかを有することができる。ブロックチェーンは、ＣＤＬの例である。本明細書の説明および図は、ブロックチェーンの観点から説明されるが、本出願は、いずれのＣＤＬにも等しく適用される。
【０００３】
分散型台帳は、他のブロックに関する暗号学的ハッシュを格納することなどの暗号化技法を典型的に適用するレコードの絶えず増大するリストである。金融取引のために主に使用されるが、ブロックチェーンは、商品およびサービスに関する情報などの他の資産（すなわち、製品、パッケージ、ステータス、ソフトウェア、データ、等）を格納することができる。非集中型方式は、非集中型ネットワークに権威および信用をもたらし、そのノードがこれらのトランザクションを公開「ブロック」上に連続かつ順次記録することを可能にし、ブロックチェーンと呼ばれる一意の「チェーン」を作り出す。暗号文は、ハッシュコードを介して、トランザクション・ソースの認証をセキュアにするために使用され、中心の中間体を除去する。さらに、各ブロックは、タイムスタンプ、および前のブロックへのリンクを収め、このことにより、トランザクション履歴の改ざん不能なチェーンを作り出す。ブロックチェーンは分散型システムなので、ブロックチェーン台帳にトランザクションを追加する前に、ピアがコンセンサス状態に達する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
限定的なトランザクション・スループットおよびストレージが、ブロックチェーン技術の問題であると広く思われている。一定の技術が、トランザクション・スループットを改善しようとしてきた。例えば、ビットコインのブロックチェーンは、検証しやすいが、計算コストが高い（意図的に）プルーフ・オブ・ワーク・コンセンサス方法を使用し、処理中に暗号パズルを解く必要がある。別の例として、許可型ブロックチェーンが、ビザンチン障害耐性（ＢＦＴ:byzantine fault-tolerant）ステート・マシンの変形形態に基づくコンセンサス方法を使用する。これらのＢＦＴステート・マシンは、トランザクション・スループットが高くなり、コンセンサスのレイテンシが低くなるように選ばれるが、多くの業界に必要なスループットをまだもたらしていない。すなわち、これらの改善があったとしても、現在のブロックチェーン技術は、財務、保険、ソフトウェア開発、サプライ・チェーン、運送業、および他の多くのもののための現実世界のアプリケーションで一般に見られる大規模データ処理の作業負荷に適していない。したがって、必要なものは、ブロックチェーンのスループットを拡大するためのメカニズムである。
【０００５】
したがって、前述の問題に対処するという当技術分野における必要性がある。
【課題を解決するための手段】
【０００６】
第１の態様から眺めると、本発明は、ブロックチェーンを管理するためのシステムを提供し、システムは、クロスチェーン・トランザクションを実行するというリクエストを受け取るためのネットワーク・インターフェースと、プロセッサであって、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別すること、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索すること、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行すること、および分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することを行うためのプロセッサとを備える。
【０００７】
さらなる態様から眺めると、本発明は、ブロックチェーンを管理するための方法を提供し、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとを含む。
【０００８】
さらなる態様から眺めると、本発明は、ブロックチェーンを管理するためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、本発明のステップを行うための方法を行うための処理回路、および処理回路による実行のための格納命令によって読取可能なコンピュータ可読ストレージ媒体を備える。
【０００９】
さらなる態様から眺めると、本発明は、コンピュータ可読媒体に格納され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、前記プログラムがコンピュータ上で動くとき、本発明のステップを実行するためのソフトウェア・コード部分を含む。
【００１０】
実施形態の１つの例は、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとのうちの１つまたは複数を含む方法を提供することができる。
【００１１】
実施形態の別の例は、クロスチェーン・トランザクションを実行するというリクエストを受け取るためのネットワーク・インターフェースと、プロセッサであって、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別すること、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索すること、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行すること、および分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することのうちの１つまたは複数を行うように構成されたプロセッサとを含むシステムを提供することができる。
【００１２】
実施形態のさらなる例は、プロセッサによって読み込まれると、クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することと、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することとのうちの１つまたは複数をプロセッサに行わせる命令を含む非一過性コンピュータ可読媒体を提供することができる。
【００１３】
本発明の実施形態が次に、添付の図面を参照しながら、ほんの一例として説明されることになる。
【図面の簡単な説明】
【００１４】
【図１】実施形態の例によるクロスチェーン・トランザクションを管理するためのシステムを示す図である。
【図２】実施形態の例によるピア・ノード・ブロックチェーン・アーキテクチャ構成を示す図である。
【図３】実施形態の例による許可型ブロックチェーン・ネットワークを示す図である。
【図４】実施形態の例による複数のパーティション・ブロックチェーンにわたるデータ区画化を管理するマスタ・チェーンの処理を示す図である。
【図５】実施形態の例による複数のパーティション・ブロックチェーンからのデータに基づいてクロスチェーン・トランザクションを実行する混合チェーンの処理を示す図である。
【図６】実施形態の例によるクロスチェーン・トランザクションを管理する方法を示す図である。
【図７】実施形態の例によるクロスチェーン・トランザクションを管理する方法を示す図である。
【図８】実施形態の例による、本明細書で説明される１つまたは複数の動作によるブロックチェーンに対する様々な動作を行うように構成された物理的なインフラストラクチャを示す図である。
【図９】実施形態の例による、契約当事者間のスマート・コントラクト構成、およびブロックチェーンに対してスマート・コントラクト条件を実施するように構成された仲介サーバを示す図である。
【図１０】実施形態の例の１つまたは複数をサポートするように構成されたコンピュータ・システムを示す図である。
【発明を実施するための形態】
【００１５】
本構成要素は、本明細書の図において一般に説明され示されるように、多種多様な異なる構成で配列され設計されてもよいということが容易に理解されよう。したがって、方法、装置、非一過性コンピュータ可読媒体、およびシステムのうちの少なくとも１つの実施形態の以下の詳細な説明は、添付の図に表されるように、特許請求されるものとして本出願の範囲を限定することを意図するものではなく、選択された実施形態を表しているにすぎない。
【００１６】
本明細書の全体を通して説明されるような本特徴、構造、または特性は、１つまたは複数の実施形態において任意の適切な手法で組み合わされてもよい。例えば、句「実施形態の例（example embodiments）」、「いくつかの実施形態（some embodiments）」、または他の類似の言葉を使用すると、本明細書の全体を通して、実施形態について説明される特定の特徴、構造、または特性が少なくとも１つの実施形態に含まれ得るということを表す。したがって、句「実施形態の例」、「いくつかの実施形態では（in some embodiments）」、「他の実施形態では（in other embodiments）」、または他の類似の言語が現れると、本明細書の全体を通して、実施形態の同じグループを必ずしも全て表すわけではなく、説明される特徴、構造、または特性が、１つまたは複数の実施形態に任意の適切な手法で組み合わされてもよい。
【００１７】
さらに、用語「メッセージ」が、実施形態の説明で使用されている可能性があるが、本出願は、パケット、フレーム、データグラム、等など、多くのタイプのネットワーク・データに適用されることもある。用語「メッセージ」は、パケット、フレーム、データグラム、およびこれらのいずれかの均等物も含む。さらに、一定のタイプのメッセージおよびシグナリングが、例示的な実施形態に描写されることがあるが、これらは、一定のタイプのメッセージに限定されるのではなく、本出願は、一定のタイプのシグナリングに限定されるものではない。
【００１８】
実施形態の例は、マスタ・ブロックチェーン・システムをサポートする方法、デバイス、ネットワーク、またはシステム、あるいはその組合せを対象とする。システムは、区画化されたデータを格納するパーティション・ブロックチェーンのセットであるブロックチェーンの間でオーケストレータまたはトランザクション・ルータの役割を果たすマスタ・ブロックチェーンを含むブロックチェーンのネットワークを含む。さらに、システムは、複数のブロックチェーンからデータを検索し、複数のブロックチェーンからのデータを活用することによってクロスチェーン・トランザクションを実行する混合ブロックチェーン（mixed blockchain）のチェーンを含む。ブロックチェーン・システムの利益のうちのいくつかは、ストレージとトランザクション・スループットの両方の観点からブロックチェーン・ベースのシステムの能力を改善するというものである。具体的には、単一のブロックチェーン・ネットワークと比較すると、複数の（区画化された）ブロックチェーン・ネットワークは、トランザクション・データを格納するために（全体として）はるかに大きいストレージ容量を用意することができ、アプリケーションから投入されるはるかに大きい数の同時発生トランザクションをさらにサポートすることができる。
【００１９】
ブロックチェーンは、ブロックチェーンが中心のストレージではなく、むしろ非集中化された不変かつセキュアなストレージであるという点で従来のデータベースとは異なり、ここで、ノードは、ストレージ内のレコードへの変更を共有しなければならない。ブロックチェーンに固有のものであり、ブロックチェーンを実施するのに役立ついくつかのプロパティは、不変台帳、スマート・コントラクト、セキュリティ、プライバシ、非集中化、コンセンサス、エンドースメント、アクセス可能性、および同様のものを含むがこれらに限定されない。
【００２０】
様々な態様によれば、区画化機能およびクロスチェーン実行機能は、ブロックチェーンに固有かつ一意の新たに定義されたスマート・コントラクトによって実施される。さらに、実施形態の例は、ネットワーク・インターフェース等などのシステム・リソースへのアクセスによって複数のブロックチェーンの間のデータの区画化を管理するように構成された、システム・ベースのトランザクション・ルータのスマート・コントラクトも提供する。トランザクションを実行するというリクエストを受け取るのに応じて、（マスタ・チェーンの）トランザクション・ルータのスマート・コントラクトは、トランザクションを実行するためのデータを有する複数の異なるブロックチェーンを識別し、（混合チェーンの）クロスチェーン・ハンドリングのスマート・コントラクトに、異なるブロックチェーンのロケーションを提供することができる。クロスチェーン・ハンドリングのスマート・コントラクトは、異なるブロックチェーンからデータを検索して、クロスチェーン・トランザクションを実行し、クロスチェーン・トランザクションの結果に基づいて異なるブロックチェーンを更新することができる。
【００２１】
さらに、コンセンサス、エンドースメント、および非集中型／分散型ノードなどの追加のブロックチェーン属性は、到着したトランザクションをどのパーティション（個々のブロックチェーン）にルートするべきかを決定するパーティション・ルールの技術的効果の実施を担っている。具体的には、マスタ・ブロックチェーンの参加者（ノード）のコンセンサスは、到着したトランザクションを適切なパーティション・チェーンにルートするために、トランザクション・ルータのスマート・コントラクトによって使用されることが可能な共通の区画化ルールに同意してもよい。１つの例では、シングル・チェーン・トランザクションは、データが格納された個々のパーティション・チェーンに単純にルートされる。別の例として、トランザクションが、複数のパーティション・チェーンからのデータを伴うとき、トランザクションは、データを検索してクロスチェーン・トランザクションを実行することができるクロスチェーン・ハンドラを含む混合チェーンのブロックチェーンにルートされてもよい。いくつかの実施形態では、混合チェーンはまた、クロスチェーン・トランザクションのハッシュ・リンクされた不変レコードを格納した独自のブロックチェーンを維持することができる。
【００２２】
実施形態の例は、従来のデータベースを超える非常に多くの利益をもたらす。例えば、ブロックチェーンのネットワークを通じて、実施形態は、ブロックチェーンによって必要とされる信用およびアカウンタビリティのレベルも維持しつつ、スループットおよびストレージ可用性を向上させる。一方で、従来のデータベースは、ノード間のコンセンサスを提供しないので、実施形態の例を実施するために使用することができず、このことにより、データベースをどのように区画化するかを単一のアクターが判定するのを当てにすることになる。このようにして、単一のアクターは、自分の意志で区画化方式を変更することができ、マスタ・チェーンによって必要とされる同意したコンセンサスには基づかない。さらに、従来のデータベースは、ブロックチェーン・ベースのトランザクションを実行せず、ここで、トランザクションの証拠は、コンセンサスおよびエンドースメントを通じてのみ修正可能な不変台帳に格納される。
【００２３】
従来のデータベースでは、データ区画化は、典型的には、データベース内のデータ・スケーラビリティ、データ分離、およびトランザクション・スループット問題に立ち向かうために用いられる。さらに、ブロックチェーンなどのより新しい格納技術は、類似の問題を有し続ける。詳細には、ビジネス・ネットワークのトランザクション履歴を保持するために、許可型ブロックチェーン（例えばHyperledger Fabric）の使用に関心が増すにつれて、ビジネス・ネットワークは、同じ技術的障害に直面する。今のところ、現在のブロックチェーン技術のどれも、複数のブロックチェーンにわたってデータを区画化することによってブロックチェーンのトランザクション・スループットをスケーリングするという実行可能な解決策を提案したことがない。これは、データ区画化が、ブロックチェーン・ベースのアプリケーションの平凡な解決策ではなく、解決される必要のあるいくつかの技術的難題があるということが理由である。例えば、ブロックチェーンは、様々な当事者間のコンセンサスを使用してデータ不変性および信用を維持するので、データ区画化も、同じレベルの信用、アカウンタビリティ、およびトレーサビリティをもたらす必要がある。この問題に対処するために、データが複数のブロックチェーンに区画されるとき、本明細書で説明されるシステムは、「クロスチェーン」トランザクションをサポートし、このことにより、徐々に進化するビジネス・ネットワークに適合させることができる。さらに、システムは、信用、アカウンタビリティ、およびトレーサビリティを維持しつつ、データ区画化およびクロスチェーン・トランザクションをサポートするために、複数のブロックチェーンにわたってデータを区画化することができる。詳細には、ブロックチェーン・システムは、（ａ）複数のブロックチェーンにわたってデータを区画化すること、（ｂ）クロスチェーン・トランザクションをサポートすること、ならびに、（ｃ）信用、出所、およびトレーサビリティを維持することができる。
【００２４】
本出願は、１つの実施形態では、複数のブロックチェーンにわたってトランザクション・データを区画化することに関し、別の実施形態では、クロスチェーン・トランザクションを実施するブロックチェーンに関する。
【００２５】
図１は、実施形態の様々な例による、クロスチェーン・トランザクションを管理するためのブロックチェーンのシステム１００を示す。図１を参照すると、システム１００は、マスタ・チェーン・ネットワーク１１０（マスタ・チェーン）、混合チェーン・ネットワーク１２０（混合チェーン）、および複数のパーティション・ブロックチェーン・ネットワークを含む。ブロックチェーン・ネットワークは、プライベート・ネットワーク、インターネット、または同様のもの、あるいはその組合せなどのネットワーク１４０を介して互いに接続されてもよい。システム１００は、パーティション・データ・モデルに関連したトランザクションをビジネス・ネットワークに格納するために、ブロックチェーンの組合せを使用してもよく、したがって、より多くのストレージが必要なとき、または、トランザクション・データが大きくなるとき、あるいはその両方において、ストレージ容量とトランザクション・スループットを徐々に動的に両方増加させることができるビジネス・ネットワークのスケーラビリティをサポートする。全体として、提案されるシステムは、到着したトランザクションおよびクエリを、これらを処理できる適切なパーティション（すなわち、混合チェーン１２０またはパーティション・チェーン１３２〜１３６）にルートするためのマスタ・チェーン１１０を含む。一方で、区画化されたチェーン１３２〜１３６は、データ・ドメイン全体の一パーティション内のデータの維持をそれぞれ担っている。さらに、混合チェーン１２０は、複数のパーティションにわたるデータにアクセスするトランザクションを取り扱うこともできる。
【００２６】
マスタ・チェーン１１０は、ネットワーク内のあらゆる当事者によって信頼されるポリシに基づいてトランザクションをルートするメカニズムである。集中型ルータが代わりに使用される場合、システム全体の信頼性は、ブロックチェーンの要件を満たさないこの単一のエンティティに依存することになる。したがって、マスタ・チェーン１１０は、一緒にハッシュ・リンクされたブロックのチェーンを含むブロックチェーンを介してパーティション・ルールの変更を持続し、追跡することができる。マスタ・チェーン１１０のブロックチェーンに区画化ポリシが格納されると、マスタ・チェーン１１０内の個々のブロックチェーン・ノードは、マスタ・チェーンに格納されたパーティション・ルールに基づいて、他の異なるブロックチェーン・ネットワーク（例えば、混合チェーン１２０、区画化されたチェーン１３２〜１３６、等）にトランザクションをルートすることができる。マスタ・チェーン１１０によって格納された区画化ルール／情報は、異なる区画化されたチェーン１３２、１３４、および１３６のそれぞれに割り当てられたデータ範囲を含んでもよく、データ範囲は、各区画化されたチェーンに格納されたデータを識別する。さらに、マスタ・チェーン１１０は、区画化されたチェーン１３２、１３４、および１３６のそれぞれのネットワーク・エンドポイントを格納することができ、区画化されたチェーン１３２、１３４、および１３６の１つまたは複数のノードからデータを検索できるようにする。
【００２７】
様々な態様によれば、マスタ・チェーン１１０は、本明細書においてクロスチェーン・トランザクションと呼ばれる、いくつかの異なるブロックチェーンに格納された別個のデータを伴うトランザクションを処理するというリクエストを受け取ることができる。クロスチェーン・トランザクションを取り扱うための１つのオプションは、いくつかのチェーンから特定のチェーンにデータを移動させ、次に、このチェーンでトランザクションを実行することである。しかし、このアプローチは、不要な遅延および不安定をネットワークに持ち込むことになるので、実現可能な解決策ではない。代わりに、システム１００は、異なるチェーンの間のトランザクション・データの混合を作り出すために、異なるブロックチェーンからのデータにアクセスし、データの異なるチェーンを伴うトランザクションを作り出すことによって、マスタ・チェーン１１０から提供されたクロスチェーン・トランザクションを取り扱う混合チェーン１２０を含む。
【００２８】
トランザクション・データは、複数の区画化されたブロックチェーン１３２、１３４、および１３６にわたって区画化されてもよい。マスタ・チェーン１１０は、問い合わせるスマート・コントラクトに基づいてインデックスを構築することによって、これらのブロックチェーンからのデータのロケーションを効率的に識別することができる。例えば、クエリは、以前にアクセスされたことがないトランザクション・データのロケーションをマスタ・チェーン１１０に提供することができる。さらに、実際のルーティング・モジュールは、マスタ・チェーン１１０に格納されたパーティション・ルールを使用するが、信頼できるものでなければならない。したがって、ルーティング・モジュール（すなわち、トランザクション・ルータ）は、ブロックチェーン・ノード・ソフトウェアと統合されてもよい。例えば、ルーティング・モジュールは、例えばHyperledger Fabric 1.0において利用可能なシステム・チェーンコードなどの特殊なタイプのスマート・コントラクト／チェーンコードを介して実施されてもよい。システム・チェーンコードは、ブロックチェーン・ソフトウェア・モジュールの統合部分であってもよい。オン・チェーン・データにアクセスする典型的なスマート・コントラクトとは対照的に、システムのスマート・コントラクトは、システム・レベルのアクセスができるように設計されてもよく、そうでなければ、サンドボックスの中で動くとされている従来のスマート・コントラクトには利用できない。
【００２９】
図２は、実施形態の例による、ブロックチェーンのブロックチェーン・アーキテクチャ構成２００を示す。構成２００は、図１に示した区画化ブロックチェーンなどの従来のブロックチェーンの例であってもよい。図２を参照すると、ブロックチェーン・アーキテクチャ２００は、例えば、ブロックチェーン・ノード２０２のグループといった、一定のブロックチェーン要素を含むことができる。ブロックチェーン・ノード２０２は、１つまたは複数のノード２０４〜２１０を含んでもよい（４つのノードが単なる例によって描写される）。これらのノードは、ブロックチェーン・トランザクションの追加およびバリデーション処理（コンセンサス）などのいくつかの活動に関与する。ブロックチェーン・ノード２０４〜２１０の１つまたは複数は、トランザクションをエンドースメントすることができ、アーキテクチャ２００内の全てのブロックチェーン・ノードに対する順序付けサービス（ordering service）を提供することができる。ブロックチェーン・ノードは、ブロックチェーン認証を開始し、ブロックチェーン・レイヤ２１６に格納されたブロックチェーンの不変台帳に書き込もうとすることができ、このコピーも、土台となる物理的なインフラストラクチャ２１４に格納することができる。ブロックチェーン構成は、参加者によって求められるカスタマイズ構成に従って作り出すことができ、独自の状態を維持し、独自の資産を制御し、外部情報を受け取ることができる、格納されたプログラム／アプリケーション・コード２２０（例えば、チェーンコード、スマート・コントラクト、等）にアクセスして実行するための、アプリケーション・プログラミング・インターフェース（ＡＰＩ：application programming interface）２２２にリンクされた１つまたは複数のアプリケーション２２４を含んでもよい。これは、トランザクションとして配布され、全てのブロックチェーン・ノード２０４〜２１０に、分散型台帳に付け加えることによってインストールすることができる。
【００３０】
ブロックチェーンのベースまたはプラットフォーム２１２は、ブロックチェーン・データ、サービス（例えば、暗号トラスト・サービス、仮想実行環境、等）、および、新しいトランザクションを受け取って格納し、データ・エントリにアクセスしようとしている監査人がアクセスできるようにするために使用され得る土台となる物理的なコンピュータ・インフラストラクチャという様々なレイヤを含んでもよい。ブロックチェーン・レイヤ２１６は、プログラム・コードを処理し、物理的なインフラストラクチャ２１４を利用するのに必要な仮想実行環境にアクセスできるようにするインターフェースを公開してもよい。暗号トラスト・サービス２１８は、資産交換トランザクションなどのトランザクションを検証し、情報を非公開にしておくために使用することができる。
【００３１】
図２のブロックチェーン・アーキテクチャ構成は、ブロックチェーン・プラットフォーム２１２によって公開された１つまたは複数のインターフェース、および提供されたサービスを介して、プログラム／アプリケーション・コード２２０を処理し、実行することができる。コード２２０は、ブロックチェーン資産を管理することができる。例えば、コード２２０は、データを格納し、転送することができ、スマート・コントラクト、および、条件または実行される他のコード要素と関連付けられたチェーンコードの形で、ノード２０４〜２１０によって実行されてもよい。非限定的な例として、スマート・コントラクトは、リマインダ、更新、または、変更、更新、等が行われる他の通知、あるいはその組合せを実行するために作り出されてもよい。スマート・コントラクトは、それ自体を、台帳の認可およびアクセス要件ならびに使用と関連付けられたルールを識別するために使用することができる。例えば、トランザクション・データ２２６は、ブロックチェーン・レイヤ２１６に含まれる１つまたは複数の処理エンティティ（例えば仮想マシン）によって処理されてもよい。トランザクション・データ２２６は、ブロックチェーンを介して実行されるトランザクションを一緒にリンクするデータ・ブロックのハッシュ・リンクされたチェーンを含んでもよい。例えば、最も新しいトランザクションは、ブロックチェーンの最後尾のブロックに格納されてもよい。トランザクションの結果２２８は、クロスチェーン・トランザクションを介した別のブロックチェーンからのデータと混合されたトランザクション・データ２２６を含んでもよい。物理的なインフラストラクチャ２１４は、本明細書で説明されるデータまたは情報のいずれかを検索するために利用されてもよい。
【００３２】
チェーンコードの中のスマート・コントラクトは、高水準のアプリケーションおよびプログラミング言語によって作り出され、その後、ブロックチェーン内のブロックに書き込まれてもよい。スマート・コントラクトは、ブロックチェーン（例えば、ブロックチェーンのピアの分散型ネットワーク）によって登録、格納、または複製、あるいはその組合せが行われる実行可能コードを含んでもよい。トランザクションは、スマート・コントラクトと関連付けられた条件が満たされるのに応じて実行されることが可能なスマート・コントラクト・コードの実行である。スマート・コントラクトの実行は、デジタル・ブロックチェーン台帳の状態への信頼できる修正をトリガすることができる。スマート・コントラクトの実行によって行われるブロックチェーン台帳への修正は、１つまたは複数のコンセンサス・プロトコルを通じてブロックチェーンのピアの分散型ネットワークの全体を通して自動的に複製されてもよい。
【００３３】
スマート・コントラクトは、キーと値とのペアのフォーマットでブロックチェーンにデータを書き込むことができる。さらに、スマート・コントラクト・コードは、ブロックチェーンに格納された値を読み込み、アプリケーションの動作時にこの値を使用することができる。スマート・コントラクト・コードは、様々な論理演算の出力をブロックチェーンに書き込むことができる。コードは、仮想マシンまたは他のコンピューティング・プラットフォーム内に一時的なデータ構造を作り出すために使用されてもよい。ブロックチェーンに書き込まれたデータは、公開のものであること、または、暗号化され非公開のものとして維持されること、あるいはその両方が可能である。スマート・コントラクトによって使用／生成される一時的なデータは、与えられた実行環境によってメモリに保持され、その後、ブロックチェーンに必要なデータが識別されると削除される。
【００３４】
チェーンコードは、追加の特徴を伴うスマート・コントラクトのコード解釈を含んでもよい。本明細書で説明されるように、チェーンコードは、コンピューティング・ネットワーク上で展開されたプログラム・コードであってもよく、コンセンサス処理中にチェーン・バリデータによって一緒に実行され、バリデーションされる。チェーンコードは、ハッシュを受け取り、以前に格納された特徴抽出器（feature extractor）を使って作り出されたデータ・テンプレートと関連付けられたハッシュをブロックチェーンから検索する。ハッシュ識別子のハッシュと、格納された識別子のテンプレート・データから作り出されたハッシュとが一致する場合、チェーンコードは、リクエストされたサービスへの認可キーを送る。チェーンコードは、暗号の詳細と関連付けられたブロックチェーン・データに書き込むことができる。図２では、チェーンコードは、トランザクションを実行した結果を表すデータ・ブロックを格納することによって、資産への修正を取り入れることができる。１つの機能は、新しい値を資産に追加すること、資産の値を変更すること、資産の値を削除すること、および同様のものであってもよく、ノード２０４〜２１０の１つまたは複数に分散されてもよく、これらによって格納されてもよい。
【００３５】
クライアントは、ブロックチェーン・トランザクション（例えば、クロスチェーン・トランザクション）を実行するというリクエストを送信することができ、ＮＯＤＥ、Ｊａｖａ（Ｒ）、ＰＹＴＨＯＮ、および同様のものなどの、サポートされるソフトウェア開発キット（ＳＤＫ：software development kit）を活用するアプリケーションを含んでもよく、アプリケーションは、利用可能なアプリケーション・プログラミング・インターフェース（ＡＰＩ）を利用して、クロスチェーン・トランザクション・プロポーザルを生成する。プロポーザルは、異なるブロックチェーンの台帳または複数の台帳からデータを読むこと、台帳にデータを書き込むこと、およびその両方をできるように、チェーンコード機能を起動する（すなわち、資産に対する新しいキー値のペアを書き込む）というリクエストである。ＳＤＫは、正しく設計されたフォーマット（例えば、リモート・プロシージャ・コール（ＲＰＣ）に対するプロトコル・バッファ）にトランザクション・プロポーザルをパッケージにするためのシム（shim）として機能し、トランザクション・プロポーザルに対する一意の署名を生成するためのクライアントの暗号資格証明書とすることができる。Ｊａｖａ（Ｒ）および全てのＪａｖａ（Ｒ）に基づく商標およびロゴは、Ｏｒａｃｌｅまたはその系列会社あるいはその両方の商標または登録商標である。
【００３６】
チェーンコードは、レスポンス値、リード・セット、およびライト・セットを含むトランザクションの結果を生成するように、現在の状態データベースに対して実行されてもよい。しかし、この時点で台帳への更新は行われない。むしろ、値のセットは、エンドースメントするピア・ノードの署名とともに、クライアントのＳＤＫにプロポーザル・レスポンスとして返されてもよく、ＳＤＫは、アプリケーションが消費することになるペイロードを解析する。
【００３７】
それに応じて、クライアントのアプリケーションは、エンドースメントするピアの署名を検査／検証し、プロポーザル・レスポンスが同じであるかどうかを決定するためにプロポーザル・レスポンスを比較する。チェーンコードが台帳に問い合わせるだけの場合、アプリケーションは、クエリ・レスポンスを検査することになり、典型的には、順序付けノード・サービス（ordering node service）にトランザクションを投入することはない。クライアント・アプリケーションが、台帳を更新するために順序付けノード・サービスにトランザクションを投入しようとする場合、アプリケーションは、投入前に指定のエンドースメント・ポリシが満たされているかどうか（すなわち、トランザクションに必要な全てのピア・ノードがトランザクションをエンドースメントしたかどうか）を決定する。ここで、クライアントは、トランザクションに対する複数の当事者のうちのただ１つを含んでもよい。この場合、各クライアントは、独自のエンドースメント・ノード（endorsing node）を有することができ、各エンドースメント・ノードは、トランザクションをエンドースメントする必要があることになる。アーキテクチャは、アプリケーションが、レスポンスを検査しないことを選択するか、そうでなければ、エンドースメントされなかったトランザクションを転送したとしても、エンドースメント・ポリシが、ピアによって依然として実施されること、および、コミット・バリデーション・フェーズにおいて守られることになるというものである。
【００３８】
検査の成功後、クライアントは、エンドースメントを集めてトランザクションにし、順序付けノードへのトランザクション・メッセージの中で資産およびレスポンスのトランザクション・プロポーザルをブロードキャストする。トランザクションは、リード／ライト・セット、エンドースメントするピアの署名、およびチャネルＩＤを収めることができる。順序付けノードは、その動作を行うために、トランザクションの全内容を検査する必要がなく、代わりに順序付けノードは、ネットワーク内の全てのチャネルからのトランザクションを単純に受け取り、チャネルによってこれらを時系列に並べ、チャネル毎にトランザクションのブロックを作り出すことができる。
【００３９】
図３は、分散型非集中型ピアツーピア・アーキテクチャ、ならびにユーザの役割およびパーミッションを管理する証明機関３１８を特徴としている、単一ブロックチェーンの許可型ブロックチェーン・ネットワーク３００の例を示す。マスタ・チェーン、混合チェーン、およびパーティション・チェーンのいずれかは、許可型ブロックチェーン・ネットワーク３００であってもよい。この例では、ブロックチェーン・ユーザ３０２は、許可型ブロックチェーン・ネットワーク３１０にトランザクションを投入することができる。トランザクションは、展開、起動、またはクエリであることが可能であり、ＳＤＫを活用するクライアント・サイドのアプリケーションを通じて、ＲＥＳＴ  ＡＰＩを直接通じて、または同様のものを通じて発行されてもよい。信頼できるビジネス・ネットワークは、監査人（例えば米国株式市場の証券取引委員会）などの規制当局のシステム３１４へのアクセスを提供することができる。一方で、ノード３０８であるブロックチェーン・ネットワーク・オペレータのシステムは、規制当局のシステム３１０を「監査人」として、また、ブロックチェーン・ユーザ３０２を「クライアント」として登録することなど、メンバのパーミッションを管理する。監査人は、台帳に問い合わせることだけに限定される可能性があり、その一方で、クライアントは、一定のタイプのチェーンコードの展開、起動、およびクエリの権限を付与される可能性がある。
【００４０】
ブロックチェーン開発者のシステム３１６は、チェーンコード、およびクライアント・サイドのアプリケーションを書く。ブロックチェーン開発者のシステム３１６は、チェーンコードを、ＲＥＳＴインターフェースを通じてネットワークに直接展開することができる。従来のデータ・ソース３３０からの資格証明書をチェーンコードに含めるために、開発者のシステム３１６は、帯域外接続を使用してデータにアクセスすることができる。この例では、ブロックチェーン・ユーザ３０２は、ピア・ノード３１２を通じてネットワークに接続する。いずれかのトランザクションを進める前に、ピア・ノード３１２は、証明機関３１８からのユーザの登録およびトランザクション証明書を検索する。場合によっては、ブロックチェーン・ユーザは、許可型ブロックチェーン・ネットワーク３１０で取引するために、これらのデジタル証明書を保有しなければならない。一方で、チェーンコードを動かそうとするユーザは、従来のデータ・ソース３３０上でユーザの資格証明書を検証することを要求される可能性がある。ユーザの認可を確認するために、チェーンコードは、従来の処理プラットフォーム３２０を通じてこのデータへの帯域外接続を使用することができる。
【００４１】
図４は、実施形態の例による、複数のパーティション・ブロックチェーンにわたるデータ区画化を管理するマスタ・チェーン４１０の処理４００Ａを示し、図５は、実施形態の例による、複数のパーティション・ブロックチェーンからのデータに基づいてクロスチェーン・トランザクションを実行する混合チェーン４２０の処理４００Ｂを示す。図４を参照すると、マスタ・チェーン４１０は、異なるパーティション・ブロックチェーン４３２、４３４、および４３６の中でデータがどのように区画化されるかについての区画化情報のブロックのハッシュ・リンクされたチェーンを含むブロックチェーン４１２を管理する。ドメイン全体は、サブドメインまたはサブセットに分けられてもよく、ここで、各パーティション・ブロックチェーン４３２、４３４、および４３６は、他のパーティション・ブロックチェーンを除く一意のサブドメインまたはサブセットを含む。さらに、ブロックチェーン４１２は、トランザクション・データを検索し、提供するための、各パーティション・ブロックチェーン４３２、４３４、および４３６のノードのネットワーク・ロケーション（例えば、エンドポイント、ＵＲＬ、等）を識別する情報を格納することができる。
【００４２】
例えば、マスタ・チェーン４１０の機能は、対応する３つのスマート・コントラクトを介して実施されてもよい。１つの例では、パーティショナのスマート・コントラクト４１４は、例えば、各パーティション・ブロックチェーン４３２〜４３６に割り当てられたデータ・ドメインの各パーティションにおいて維持されるデータの範囲の境界など、データ・ドメイン全体をどのように区画化できるかを決定する区画化機能に対する当事者（マスタ・チェーン・ノード）間のコンセンサスを維持する。マスタ・チェーン４１０は、トランザクションの処理を（区画化機能に従って）担っている適切なチェーンに、到着したトランザクションをルートするトランザクション・ルータのスマート・コントラクト４１６をさらに含んでもよい。例えば、シングル・チェーン・トランザクションは、トランザクション・データが格納された単一のチェーンに直接ルートされてもよい。一方で、クロスチェーン・トランザクションは、処理のために混合チェーン４２０にルートされてもよい。ルーティング情報は、ブロックチェーン４１２に格納された区画化情報から識別されてもよい。
【００４３】
マスタ・チェーン４１０は、クライアントからのクエリの取扱いを担っているクエリ・フェデレータのスマート・コントラクト４１８をさらに含んでもよい。いくつかの実施形態において、パーティショナのスマート・コントラクト４１４は、オン・チェーン・データに基づいてマスタ・チェーン内の各ピア・ノードの内部で動くスマート・コントラクトであってもよく、一方で、トランザクション・ルータ４１６およびクエリ・フェデレータ４１８は、ホスト・ノード内の他の様々なソフトウェア構成要素にアクセスするシステム・レベルの能力を有するが、サンドボックスの内部で動く普通のスマート・コントラクトには利用できない、（システム・チェーンコードとしても知られる）特殊なシステムのスマート・コントラクトであってもよい。一方で、区画化されたブロックチェーン４３２、４３４、および４３６は、完全なドメインを知らずにデータ・ドメイン全体の異なるパーティションを維持する従来のブロックチェーン・ネットワークであってもよい。各区画化されたチェーンは、トランザクションおよびクエリ・リクエストをマスタ・チェーン４１０から受け取り、これらのリクエストを実行するシングル・チェーン・ハンドラのスマート・コントラクトを動かすことができる。
【００４４】
図５を参照すると、混合チェーン４２０は、クロスチェーン・トランザクションをマスタ・チェーン４１０から受け取り、クロスチェーン・トランザクションを実行する。例えば、マスタ・チェーン４１０から受け取ったリクエストは、クロスチェーン・トランザクションのためのデータが格納されたブロックチェーン・ネットワークのネットワーク・ロケーションを含んでもよい。したがって、混合チェーン４２０は、クロスチェーン・トランザクションのためのデータを有する、複数の区画化されたブロックチェーン４３２、４３４、および４３６の中のどの区画化されたブロックチェーンであるかを識別することができる。混合チェーン４２０は、マスタ・チェーン４１０からトランザクション・リクエストを受け取り、複数のパーティションにわたるデータへのアクセスを担っている、クロスチェーン・ハンドラのスマート・コントラクト４２４を含む。さらに、クロスチェーン・ハンドラ４２４は、クロスチェーン・トランザクションを実行し、このことにより、異なるパーティション・ブロックチェーンからのデータを一緒に混合し、混合された結果を作り出す。クロスチェーン・ハンドラ４２４は、システムで行われた全てのクロスチェーン・トランザクションの結果を一緒にリンクするブロックチェーン４２２に、クロスチェーン・トランザクションの結果を格納することができる。さらに、クロスチェーン・ハンドラ４２４は、格納されたデータ／資産をパーティション・ブロックチェーンが更新できるようにするために、クロスチェーン・トランザクションの結果とともに、トランザクションのためのデータを提供したパーティション・ブロックチェーンをさらに更新することができる。
【００４５】
様々な実施形態によれば、マスタ・チェーン４１０は、他のブロックチェーン（４２０、４３２、４３４、および４３６）のエンドポイントの情報で初期化されてもよい。マスタ・チェーン４１０の中で、ネットワーク内の各当事者は、オフ・ネットワークでパーティション・ルールのコンセンサスに至ることができ、１つの権限付与された当事者は、パーティショナのスマート・コントラクト４１４内の「setPartitionRule」メソッドを起動して、ブロックチェーン４１２内のパーティション・ルールを設定することが可能である。パーティション・ルールへのいずれの変更もブロックチェーン４１２に格納され、これらを追跡できるようにする。初期化後、パーティショナのスマート・コントラクト４１４は、このマスタ・チェーン内のあらゆるノードが、パーティション・ルールをフェッチし、このルールに従ってトランザクションをルートできるように、使用可能フラグを設定することができる。さらに、トランザクション・ルータのスマート・コントラクト４１６は、これらのトランザクションによってどのデータがアクセスされたかを最初に識別することができる。例えば、トランザクション・ルータ４１６は、パーティショナのスマート・コントラクト４１４を通じてブロックチェーンから区画化ルールを探索することができる。様々な実施形態によれば、次に、トランザクション・ルータ４１６は、どのブロックチェーン・ネットワークにトランザクションがルートされるべきかを判定する。例えば、トランザクションが単一パーティション内のデータにアクセスするだけの場合、トランザクションは、特定の区画化されたブロックチェーン・ネットワークにルートされることになる。反対に、複数のパーティション内のデータにアクセスするトランザクションは、処理のために混合チェーン４２０のネットワークにルートされる。
【００４６】
一方で、混合チェーン４２０におけるトランザクションを処理するためのワークフローは、クロスチェーン・ハンドラのスマート・コントラクト４２４が、マスタ・チェーンのトランザクション・ルータからトランザクションおよびパーティション情報を受け取ることを含む。それに応じて、クロスチェーン・ハンドラ４２４は、異なるチェーンからデータをフェッチし、フェッチしたデータ、および、独自のチェーン４１２内の新しい値を存続させ、別個の「setDiff」トランザクションを開始して、異なる区画化されたチェーン内の異なる当事者のために最新の値を更新する。例えば、「Ｘ」の残高が「Ｂ−チェーン」４３４からフェッチされ、「Ｙ」の残高が「Ａ−チェーン」４３２からフェッチされる場合、ＸからＹへの残高移動トランザクションの後、ＸとＹの最終的な残高の差は、「Ｂ−チェーン」内の「setDiff」トランザクションを使用して設定されることになり、逆もまた同様である。このようにして、「混合チェーン」は、クロスチェーン・トランザクションを収めることになるが、差分変化（delta change）による値を更新するために別個の「setDiff」トランザクションで他の関連チェーンも更新する。いくつかの実施形態において、クロスチェーン・トランザクションが処理中であり、クロスチェーン・トランザクションと共通のいくつかのデータにアクセスする新しく到着したトランザクションがある場合、この新しいトランザクションは、定義された期間保留されても、トランザクション・ルータ４１６によってすぐに廃棄されてもよい。
【００４７】
別の例として、区画化機能に含まれる区画化属性に基づいてクエリがデータにアクセスする場合、クエリ・フェデレータ４１８は、関心のあるデータを維持する特定の区画化されたチェーンにクエリをルートするだけである。対照的に、非区画化属性に基づいてクエリがデータにアクセスする場合、クエリ・フェデレータ４１８は、異なるブロックチェーン・パーティションの間のどこにデータが格納されているかを認識していなくてもよい。この場合、クエリ・フェデレータ４１８は、あらゆる区画化されたチェーンにクエリを転送し、これらのチェーンによって返された結果を集めた後、クライアントに返すことができる。
【００４８】
説明されたように、混合チェーン４２０は、異なるパーティション・ブロックチェーン４３２〜４３６にわたるトランザクションを実行することができる。例えば、トランザクション・ルータ４１４は、到着したトランザクションに含まれるユーザ情報、および、そのブロックチェーン４１２（すなわち、マスタ・チェーンまたはパーティション・スマート・コントラクト）内で維持されているパーティション・ルールを読み込むことができる。非限定的な例として、トランザクション・ルータ４１４は、ユーザ「Ｕ１」と関連付けられたデータ・レコードがパーティションＡ４３２にあり、その一方でユーザ「Ｕ２」と関連付けられたデータ・レコードがパーティションＢ４３４にあることを識別することができる。この例では、トランザクション・ルータ４１４は、クロスチェーン・トランザクションが「Ｕ１」および「Ｕ２」に対して進行中であるという情報でそのロック・テーブルを更新することができる。次に、このトランザクションは、「Ｕ１」、「Ｕ２」、およびこれらのブロックチェーン・ノードのＵＲＬの詳細とともに混合チェーン４２０に転送されてもよい。それに応じて、クロスチェーン・ハンドラ４２４は、「Ｕ１」に関するデータをパーティションＡ４３２から、また「Ｕ２」に関するデータをパーティションＢ４３４からフェッチすることができる。さらに、クロスチェーン・ハンドラ４２４は、独自のブロックチェーン４２２内でトランザクションを作り出し、さらに、Ｕ１の残高の差分とともに「SetDiff」トランザクションをＵ１のブロックチェーン（パーティションＡ４３２）に送り、Ｕ２の残高の差分とともに別個の「SetDiff」トランザクションをＵ２のブロックチェーン（パーティションＢ４３４）に送ることができる。
【００４９】
図６は、実施形態の例による、クロスチェーン処理のためのトランザクションをルーティングする方法５００を示す。例えば、方法５００は、マスタ・ブロックチェーン・ネットワーク内のブロックチェーン・ノードによって実行されるスマート・コントラクトを介して実施されてもよい。別の例として、方法５００は、マスタ・ブロックチェーン・ネットワーク内のコンピューティング・ノードのグループによって行われてもよい。図６を参照すると、５１０において、方法は、複数のブロックチェーンにわたってストレージを一緒にリンクするパーティション情報を、マスタ・チェーンを介して格納することを含んでもよい。例えば、パーティション情報は、マスタ・チェーンのノードのコンセンサスによって生成されたパーティション・ルールを含んでもよい。パーティション・ルールは、複数の異なるブロックチェーンのそれぞれによって格納されたデータの範囲、および、ユニフォーム・リソース・ロケータ（ＵＲＬ）または同様のものなどの各ブロックチェーンのロケーション情報を識別することができる。いくつかの実施形態において、方法は、マスタ・チェーンを管理する複数のブロックチェーン・ノードからのパーティション情報のコンセンサスを検出するのに応答して、パーティション情報を確立することを含んでもよい。
【００５０】
５２０において、方法は、ブロックチェーン・トランザクションを実行するというリクエストをクライアントから受け取ることを含んでもよい。例えば、クライアントは、単一のブロックチェーンからのデータを活用するトランザクション、または、複数の異なるブロックチェーンからのデータを活用するトランザクションをリクエストすることができる。５３０において、方法は、マスタ・チェーンに格納されたパーティション情報に基づいて、ブロックチェーン・トランザクションが、１つのブロックチェーンに格納されたデータと関連付けられているか、異なるブロックチェーンに別々に格納されたデータと関連付けられているかを、マスタ・チェーンを介して決定することを含んでもよい。例えば、トランザクションは、特定の資産またはデータ項目を識別することができ、パーティション情報は、マスタ・チェーンおよび区画化情報を管理するパーティショナのスマート・コントラクトに基づいて、資産またはデータ項目がどこに格納されたかを識別することができる。
【００５１】
ブロックチェーン・トランザクションが、異なるブロックチェーンに別々に格納されたデータと関連付けられているという決定に応答して、５４０において、方法は、異なるブロックチェーンの中から各ブロックチェーンのロケーションを、マスタ・チェーンを介して識別し、ブロックチェーン・トランザクションを実行するように構成されたシステムにロケーションを送信することさらに含んでもよい。いくつかの実施形態において、送信することは、異なるブロックチェーンのそれぞれから個々のデータを検索し、異なるブロックチェーンから検索したデータに基づいてブロックチェーン・トランザクションを実行するように構成された混合チェーン上で実行するクロスチェーン・ハンドラのスマート・コントラクトにロケーションを送信することを含んでもよい。
【００５２】
いくつかの実施形態において、パーティション情報は、マスタ・チェーンによって管理されるトランザクション・データのドメイン全体または範囲全体を識別し、複数のブロックチェーンの中の各個々のブロックチェーンに割り当てられた個々のサブドメインをさらに識別する。ここで、パーティション情報またはサブドメイン情報は、複数のブロックチェーンの中の各ブロックチェーンによって維持されるトランザクション・データの境界の範囲を識別することができる。
【００５３】
いくつかの実施形態において、方法は、ブロックチェーン・トランザクションのためのデータを格納するブロックチェーンの識別情報をマスタ・チェーンが含まないとき、ブロックチェーン・トランザクションのためのデータを格納している少なくとも１つのブロックチェーンを決定するために複数のブロックチェーンに個別に問い合わせることをさらに含んでもよい。例えば、クエリは、ブロックチェーン・ノードで実行するクエリ・フェデレータのスマート・コントラクトによって行われてもよく、一方で、決定は、ブロックチェーン・ノードで実行するトランザクション・ルーティングのスマート・コントラクトによって行われてもよい。いくつかの実施形態において、方法は、マスタ・チェーンによって設定された使用可能性フラグを検出し、使用可能性フラグの検出に応答してパーティション情報をフェッチすることをさらに含んでもよい。
【００５４】
図７は、実施形態の例による、複数のブロックチェーン・ネットワークからのデータに基づいてクロスチェーン・トランザクションを実行する方法５５０を示す。例えば、方法５５０は、混合チェーン・ネットワークのノードによって行われてもよい。図７を参照すると、５５１において、方法は、クロスチェーン・トランザクションを実行するというリクエストを受け取ることを含んでもよい。例えば、リクエストは、異なるブロックチェーンからのデータを必要とするブロックチェーン・トランザクションを識別したマスタ・チェーンから受け取られてもよい。５５２において、方法は、クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することを含んでもよい。例えば、混合チェーンは、混合チェーンとの通信のために登録され、マスタ・チェーンに格納されたロケーション情報（例えば、ＵＲＬ、エンドポイント、等）を有するブロックチェーン・ノードのネットワーク・ロケーションを識別することができる。この例では、識別することは、リクエストに含まれる２つ以上のＵＲＬに基づいて、２つ以上の異なるブロックチェーンにアクセスするための異なるネットワーク・ロケーションをそれぞれ識別することを含んでもよい。
【００５５】
５５３において、方法は、識別した全く異なるロケーションに基づいて、２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することを含んでもよい。例えば、検索することは、異なるブロックチェーンに格納されたデータの異なるデータ項目（例えばデータ範囲）をリクエストする異なるブロックチェーンのそれぞれのブロックチェーン・ノードに混合チェーンからリクエストを送信することを含んでもよい。ここで、データは、個々のブロックチェーンのそれぞれに一意のものであり、同じブロックチェーンから取得できるものでなくてもよい。５５４において、方法は、２つ以上の異なるブロックチェーンからの検索したデータをクロスチェーンの結果を生成するための入力とするクロスチェーン・トランザクションを実行することを含んでもよい。例えば、クロスチェーン・トランザクションの実行は、データの交換、データの結合、データの減算、データの加算、データの修正、および同様のものを通じるなどして、２つ以上の異なるブロックチェーンからの検索したデータを一緒に混合することができる。
【００５６】
５５５において、方法は、分散型台帳のデータ・ブロックを介してクロスチェーンの結果を格納することを含んでもよい。例えば、格納することは、クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを、２つ以上の異なるブロックチェーンのそれぞれに挿入することを含んでもよい。この例では、格納することは、第１のブロックチェーンから取得されたトランザクション・データを、クロスチェーンの結果から生じた差分値で更新するために、クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを２つ以上の異なるブロックチェーンの中からの第１のブロックチェーンに挿入することを含んでもよい。いくつかの実施形態において、格納することは、生成されたクロスチェーンの結果に基づいて、クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを、混合チェーンのブロックチェーンに挿入することを含んでもよい。いくつかの実施形態において、格納することは、混合チェーンのブロックチェーンに挿入した新しいデータ・ブロックを、混合チェーンのブロックチェーンに以前に格納した別のクロスチェーン・トランザクションのクロスチェーンの結果にリンクすることをさらに含んでもよい。
【００５７】
図８は、実施形態の例による、動作の方法の例の１つまたは複数による、ブロックチェーンで様々な動作を行うように構成された物理的なインフラストラクチャの例を示す。図８を参照すると、構成６００Ａの例は、ブロックチェーン６２０およびスマート・コントラクト６４０を伴う物理的なインフラストラクチャ６１０を含み、実施形態の例のいずれかに含まれる動作ステップ６１２のいずれかを実行することができる。例えば、スマート・コントラクト６４０は、トランザクションを実行し、クロスチェーン・トランザクションが実行された結果として、複数の異なるブロックチェーン台帳への変更を起動することができ、このことにより、複数のブロックチェーンのあらゆる状態を同時に（すなわち一斉に）更新する。この例では、ステップ／動作６１２は、１つまたは複数の流れ図または論理図あるいはその両方に記述または描写されたステップの１つまたは複数を含んでもよい。ステップは、コンピュータ・システム構成の物理的なインフラストラクチャ６１０にある１つまたは複数のスマート・コントラクト６４０またはブロックチェーン６２０あるいはその両方から書き込まれたまたは読み込まれた、出力されたまたは書き込まれた情報を表すことができる。データは、実行されたスマート・コントラクト６４０またはブロックチェーン６２０あるいはその両方から出力することができる。物理的なインフラストラクチャ６１０は、１つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、またはワイヤレス通信デバイス、あるいはその組合せを含んでもよい。
【００５８】
図９は、実施形態の例による、契約当事者間のスマート・コントラクト構成、および、ブロックチェーンに対するスマート・コントラクト条件を実施するように構成された仲介サーバの例を示す。図９を参照すると、構成６５０Ｂは、通信セッション、資産移転セッション、あるいは、１つまたは複数のユーザ・デバイス６５２もしくは６５６またはその両方を明示的に識別するスマート・コントラクト６４０によって動かされる処理または手順を表すことができる。実行、動作、およびスマート・コントラクトの実行の結果は、サーバ６５４によって管理されてもよい。スマート・コントラクト６４０の内容は、スマート・コントラクト・トランザクションの当事者であるエンティティ６５２および６５６の１つまたは複数によるデジタル署名を要求することができる。スマート・コントラクトの実行の結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込まれてもよい。
【００５９】
スマート・コントラクトの例は、オン・チェーンで格納されたデータに基づいて判定を行う通常のスマート・コントラクトを含む。例えば、マスタ・チェーンの区画化スマート・コントラクトは、マスタ・チェーン上のブロックチェーンを介して区画化ルールを識別し、格納することができる。スマート・コントラクトの別の例は、（オフ・チェーンとも呼ばれる）チェーンの外部のコンピューティング・システムのデータおよび機能にアクセスするように構成されたシステムのスマート・コントラクトである。例えば、トランザクション・ルータは、ネットワーク情報を識別し、シングル・パーティションのブロックチェーンまたは混合チェーンにトランザクションをルートするためにシステムのネットワーク・インターフェースと対話することができる。別の例として、クエリ・フェデレータは、他のブロックチェーン・システムにクエリを送信し、レスポンスを受信するために、ネットワーク情報およびシステムのネットワーク・インターフェースと対話することができる。
【００６０】
上記の実施形態は、ハードウェアで、プロセッサによって実行されるコンピュータ・プログラムで、ファームウェアで、または、上記の組合せで実施されてもよい。コンピュータ・プログラムは、ストレージ媒体などのコンピュータ可読媒体で具体化されてもよい。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ（「ＲＡＭ」）、フラッシュ・メモリ、リード・オンリ・メモリ（「ＲＯＭ」）、消去可能プログラマブル・リード・オンリ・メモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブル・リード・オンリ・メモリ（「ＥＥＰＲＯＭ」）、レジスタ、ハード・ディスク、取外し可能ディスク、コンパクト・ディスク・リード・オンリ・メモリ（「ＣＤ−ＲＯＭ」）、または、当技術分野で知られているストレージ媒体のいずれかの他の形態の中に常駐してもよい。
【００６１】
例示的なストレージ媒体は、プロセッサが、ストレージ媒体から情報を読み込み、ストレージ媒体に情報を書き込むことができるように、プロセッサに連結されてもよい。別の方式では、ストレージ媒体は、プロセッサに統合されてもよい。プロセッサおよびストレージ媒体は、特定用途向け集積回路（「ＡＳＩＣ」）の中にあってもよい。別の方式では、プロセッサおよびストレージ媒体は、個別の構成要素として存在してもよい。例えば、図１０は、上述の構成要素等のいずれかを表すか、これに統合され得るコンピュータ・システム・アーキテクチャ７００の例を示す。
【００６２】
図１０は、本明細書で説明される本出願の実施形態の用途または機能の範囲について何らかの限定を示唆することを意図するものではない。いずれにしても、コンピューティング・ノード７００は、実施されることまたは以上に示した機能のいずれかを行うことあるいはその両方ができる。
【００６３】
コンピューティング・ノード７００には、コンピュータ・システム／サーバ７０２があり、非常に多くの他の汎用または特殊用途のコンピューティング・システム環境または構成で動作するものである。コンピュータ・システム／サーバ７０２とともに使用するのに適している可能性のあるよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものを含むがこれらに限定されない。
【００６４】
コンピュータ・システム／サーバ７０２は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な背景で説明されてもよい。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでもよい。コンピュータ・システム／サーバ７０２は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実践されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモートの両方のコンピュータ・システム・ストレージ媒体の中にあってもよい。
【００６５】
図１０に示すように、クラウド・コンピューティング・ノード７００におけるコンピュータ・システム／サーバ７０２が、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ７０２の構成要素は、１つまたは複数のプロセッサまたは処理ユニット７０４、システム・メモリ７０６、および、システム・メモリ７０６を含む様々なシステム構成要素をプロセッサ７０４に連結するバスを含んでもよいがこれらに限定されない。
【００６６】
バスは、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかの１つまたは複数に相当する。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含む。
【００６７】
コンピュータ・システム／サーバ７０２は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ７０２によってアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不能媒体の両方を含む。システム・メモリ７０６は、１つの実施形態において、他の図の流れ図を実施する。システム・メモリ７０６は、ランダム・アクセス・メモリ（ＲＡＭ）７１０またはキャッシュ・メモリ７１２あるいはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ７０２は、他の取外し可能／取外し不能な、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。ほんの一例として、ストレージ・システム７１４は、取外し不能な不揮発性磁気媒体（図示していないが、典型的には「ハード・ドライブ」と呼ばれる）を読み書きするために提供されることが可能である。図示していないが、取外し可能な不揮発性磁気ディスク（例えば「フロッピー・ディスク」）を読み書きするための磁気ディスク・ドライブ、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブが、提供されることが可能である。このような事例では、それぞれは、１つまたは複数のデータ媒体インターフェースによってバスに接続されることが可能である。下記でさらに描写され、説明されることになるように、メモリ７０６は、本出願の様々な実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば少なくとも１つ）を有する少なくとも１つのプログラム製品を含んでもよい。
【００６８】
プログラム／ユーティリティ７１６は、プログラム・モジュール７１８のセット（少なくとも１つ）を有し、例としてまた限定ではなく、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ７０６に格納されてもよい。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらのいくつかの組合せのそれぞれは、ネットワーキング環境の実施態様を含んでもよい。プログラム・モジュール７１８は一般に、本明細書で説明されるような本出願の様々な実施形態の機能または方法あるいはその両方を実行する。
【００６９】
当業者によって理解されるように、本出願の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されてもよい。したがって、本出願の態様は、全面的にハードウェアの実施形態、（ファームウェア、常駐ソフトウェア、マイクロコード、等を含む）全面的にソフトウェアの実施形態、または、本明細書において「回路」、「モジュール」、または「システム」と全て全体的に呼ばれるソフトウェアとハードウェアの態様を組み合わせた実施形態の形態をしていてもよい。さらに、本出願の態様は、コンピュータ可読プログラム・コードが含まれる１つまたは複数のコンピュータ可読媒体に具体化されるコンピュータ・プログラム製品の形態をしていてもよい。
【００７０】
コンピュータ・システム／サーバ７０２はまた、キーボード、ポインティング・デバイス、ディスプレイ７２２、等などの１つもしくは複数の外部デバイス７２０、ユーザがコンピュータ・システム／サーバ７０２と対話できるようにする１つもしくは複数のデバイス、または、コンピュータ・システム／サーバ７０２が１つもしくは複数の他のコンピューティング・デバイスと通信できるようにするいずれかのデバイス（例えば、ネットワーク・カード、モデム、等）、あるいはその組合せと通信してもよい。このような通信は、Ｉ／Ｏインターフェース７２４を介して発生させることができる。さらに、コンピュータ・システム／サーバ７０２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、または、パブリック・ネットワーク（例えばインターネット）、あるいはその組合せなどの１つまたは複数のネットワークと、ネットワーク・アダプタ７２６を介して通信することができる。描写されたように、ネットワーク・アダプタ７２６は、コンピュータ・システム／サーバ７０２の他の構成要素と、バスを介して通信する。図示していないが、他のハードウェアまたはソフトウェアあるいはその両方の構成要素が、コンピュータ・システム／サーバ７０２とともに使用できるということが理解されよう。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、等を含むがこれらに限定されない。
【００７１】
様々な実施形態によれば、１つの例では、コンピューティング・システム７０２は、本明細書で説明されるマスタ・チェーンに含まれるブロックチェーン・ノードであってもよい。この例では、メモリ７０４は、複数の異なるブロックチェーンにわたるストレージを一緒にリンクする、ルール、ＵＲＬ、および同様のものなどのパーティション情報を含むマスタ・チェーンを格納することができる。プロセッサ７０４は、ブロックチェーン・トランザクションを実行するというリクエストをクライアントから受け取り、マスタ・チェーンに格納されたパーティション情報に基づいて、ブロックチェーン・トランザクションが、１つの単一のブロックチェーンに格納されたデータと関連付けられているか、異なるブロックチェーンに別々に格納されたデータと関連付けられているかを決定することができる。ブロックチェーン・トランザクションが、異なるブロックチェーンに別々に格納されたデータと関連付けられているという決定に応答して、プロセッサ７０４は、異なるブロックチェーンの中から各ブロックチェーンのロケーションを、マスタ・チェーンを介して識別し、クロスチェーンのブロックチェーン・トランザクションを実行するように構成された混合チェーンなどのシステムにロケーションを送信することができる。
【００７２】
システム、方法、および非一過性コンピュータ可読媒体のうちの少なくとも１つの例示的な実施形態が、添付の図面に示され、前述の詳細な説明において説明されてきたが、本出願は、開示された実施形態に限定されるのではなく、以下の特許請求の範囲によって示され、定義されるような非常に多くの再配列、修正、および代用を行うことができるということが理解されよう。例えば、様々な図のシステムの能力は、本明細書で説明されるモジュールもしくは構成要素の１つもしくは複数によって、または、分散型アーキテクチャにおいて実行されることが可能であり、送信器、受信器、または両方のペアを含んでもよい。例えば、個々のモジュールによって実行される機能の全てまたは一部は、これらのモジュールの１つまたは複数によって実行されてもよい。さらに、本明細書で説明される機能は、モジュールまたは構成要素の内部または外部で何度も、また様々なイベントと関連して実行されてもよい。また、様々なモジュール間で送られる情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、ワイヤレス・デバイス、有線デバイスのうちの少なくとも１つを介して、または、複数のプロトコルを介して、あるいはその両方で、モジュール間で送られることが可能である。また、モジュールのいずれかによって送られるまたは受け取られるメッセージは、直接的に、または他のモジュールの１つまたは複数を介して、あるいはその両方で送られても受け取られてもよい。
【００７３】
「システム」は、パーソナル・コンピュータ、サーバ、コンソール、パーソナル・デジタル・アシスタント（ＰＤＡ）、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、もしくは他の任意の適切なコンピューティング・デバイス、またはデバイスの組合せとして具体化されることが可能であるということを当業者は理解するであろう。「システム」によって実行されるような上述の機能を示すことは、いずれかの方式で本出願の範囲を限定することを意図するものではなく、多くの実施形態のうちの１つの例を示すことを意図するものである。実際、本明細書において開示された方法、システム、および装置は、コンピューティング技術と一致した局所型および分散型形態で実施されてもよい。
【００７４】
本明細書において記述されたシステムの特徴のうちのいくつかは、これらの実施態様の独立性をさらに具体的に強調するためにモジュールとして示されてきたということに留意されたい。例えば、モジュールは、カスタム超大規模集積（ＶＬＳＩ）回路もしくはゲート・アレイ、論理チップなどの市販の半導体、トランジスタ、または他の個別の構成要素を備えるハードウェア回路として実施されてもよい。モジュールは、また、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、画像処理装置、または同様のものなどのプログラム可能ハードウェア・デバイスで実施されてもよい。
【００７５】
モジュールは、また、様々なタイプのプロセッサによる実行のためのソフトウェアで少なくとも部分的に実施されてもよい。実行可能コードの識別したユニットは、例えば、例えば、オブジェクト、プロシージャ、または関数としてまとめられ得るコンピュータ命令の１つまたは複数の物理または論理ブロックを備えてもよい。それでも、識別したモジュールの実行ファイルは、一緒に物理的に配置される必要はなく、一緒に論理的に結合されたとき、モジュールを含み、モジュールのための決められた目的を達成する、異なる位置に格納された全く異なる命令を含んでもよい。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、コンピュータ可読媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ（ＲＡＭ）、テープ、または、データを格納するために使用される他の任意のこのような媒体であってもよい。
【００７６】
実際、実行可能コードのモジュールは、単一の命令、または多くの命令であることが可能であり、いくつかの異なるコード・セグメントにわたって、異なるプログラム間に、およびいくつかのメモリ・デバイスにわたって、分散させることさえできる。同様に、動作データは、本明細書においてモジュール内に識別され示されることがあるが、任意の適切な形態で具体化され、任意の適切なタイプのデータ構造の中にまとめられてもよい。動作データは、単一のデータ・セットとして収集されてもよく、または、異なるストレージ・デバイスを含む異なるロケーションにわたって分散されてもよく、システムまたはネットワーク上の単なる電子信号として少なくとも部分的に存在してもよい。
【００７７】
本出願の構成要素は、本明細書の図に全体的に記述され示されるように、多種多様な異なる構成の中に配列され設計されてもよいということが容易に理解されよう。したがって、実施形態の詳細な説明は、特許請求されるものとして本出願の範囲を限定することを意図するものではなく、本出願の選択された実施形態を表すにすぎない。
【００７８】
上記は、異なる順序のステップによって、または、開示されたものとは異なる構成のハードウェア要素によって、あるいはその両方によって実践されてもよいということを当業者は容易に理解するであろう。したがって、本出願は、これらの好ましい実施形態に基づいて記述されてきたが、一定の変更形態、変形形態、および代替形態の構築が明らかになるということが当業者には明らかであろう。
【００７９】
本出願の好ましい実施形態が記述されてきたが、記述された実施形態は例証的なものにすぎず、本出願の範囲は、全ての範囲の均等物および変更形態（例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォーム、等）によって考えられるとき、添付の特許請求の範囲によって単に定義されることになるということが理解されよう。
【図１】
2021520539.tif 000003
【図２】
2021520539.tif 000004
【図３】
2021520539.tif 000005
【図４】
2021520539.tif 000006
【図５】
2021520539.tif 000007
【図６】
2021520539.tif 000008
【図７】
2021520539.tif 000009
【図８】
2021520539.tif 000010
【図９】
2021520539.tif 000011
【図１０】
2021520539.tif 000012
【手続補正書】
【提出日】令和3年4月13日(2021.4.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックチェーンを管理するためのコンピューティング・システムであって、
クロスチェーン・トランザクションを実行するというリクエストを受け取るためのネットワーク・インターフェースと、
プロセッサであって、
前記クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別すること、
前記識別した全く異なるロケーションに基づいて、前記２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索すること、
前記２つ以上の異なるブロックチェーンからの前記検索したデータをクロスチェーンの結果を生成するための入力とする前記クロスチェーン・トランザクションを実行すること、および
分散型台帳のデータ・ブロックを介して前記クロスチェーンの結果を格納すること
を行うためのプロセッサと
を備える、システム。
【請求項２】
前記クロスチェーン・トランザクションの実行が、前記２つ以上の異なるブロックチェーンからの検索したデータを前記プロセッサに一緒に混合させる、請求項１に記載のコンピューティング・システム。
【請求項３】
前記プロセッサが、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンのそれぞれに挿入するように構成される、請求項１または２のいずれかに記載のコンピューティング・システム。
【請求項４】
前記プロセッサが、第１のブロックチェーンから取得したトランザクション・データを前記クロスチェーンの結果の差分値で更新するために、前記クロスチェーンの結果についての情報を格納した前記新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンの中からの前記第１のブロックチェーンに挿入するように構成される、請求項３に記載のコンピューティング・システム。
【請求項５】
前記プロセッサが、前記生成したクロスチェーンの結果に基づいて、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを混合チェーンのブロックチェーンに挿入するように構成される、請求項１ないし４のいずれかに記載のコンピューティング・システム。
【請求項６】
前記プロセッサが、前記混合チェーンのブロックチェーンに以前に格納された別のクロスチェーン・トランザクションのクロスチェーンの結果に、前記混合チェーンのブロックチェーンに挿入した前記新しいデータ・ブロックをリンクするようにさらに構成される、請求項５に記載のコンピューティング・システム。
【請求項７】
前記プロセッサが、前記受け取ったリクエストによって識別された前記２つ以上の異なるブロックチェーンの個々のターゲット・ブロックチェーン・ノードから、前記クロスチェーンのブロックチェーン・トランザクションのための前記データを検索するために、前記ネットワーク・インターフェースを制御するように構成される、請求項１ないし６のいずれかに記載のコンピューティング・システム。
【請求項８】
前記プロセッサが、前記リクエストに含まれる２つ以上のユニフォーム・リソース・ロケータ（ＵＲＬ）に基づいて、前記２つ以上の異なるブロックチェーンの異なるネットワーク・ロケーションをそれぞれ識別するように構成される、請求項１ないし７のいずれかに記載のコンピューティング・システム。
【請求項９】
ブロックチェーンを管理するための方法であって、
クロスチェーン・トランザクションを実行するというリクエストを受け取ることと、
前記クロスチェーン・トランザクションのためのデータを格納した２つ以上の異なるブロックチェーンの全く異なるロケーションを識別することと、
前記識別した全く異なるロケーションに基づいて、前記２つ以上の異なるブロックチェーンのデータ・ブロックからデータをそれぞれ検索することと、
前記２つ以上の異なるブロックチェーンからの前記検索したデータをクロスチェーンの結果を生成するための入力とする前記クロスチェーン・トランザクションを実行することと、
分散型台帳のデータ・ブロックを介して前記クロスチェーンの結果を格納することと
を含む、方法。
【請求項１０】
前記クロスチェーン・トランザクションの前記実行することが、前記２つ以上の異なるブロックチェーンからの前記検索したデータを一緒に混合させる、請求項９に記載の方法。
【請求項１１】
前記格納することが、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンのそれぞれに挿入することを含む、請求項９または１０のいずれかに記載の方法。
【請求項１２】
前記格納することが、第１のブロックチェーンから取得したトランザクション・データを前記クロスチェーンの結果から生じた差分値で更新するために、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを前記２つ以上の異なるブロックチェーンの中からの前記第１のブロックチェーンに挿入することを含む、請求項１１に記載の方法。
【請求項１３】
前記格納することが、前記生成したクロスチェーンの結果に基づいて、前記クロスチェーンの結果についての情報を格納した新しいデータ・ブロックを混合チェーンのブロックチェーンに挿入することを含む、請求項９ないし１２のいずれかに記載の方法。
【請求項１４】
前記格納することが、前記混合チェーンのブロックチェーンに以前に格納された別のクロスチェーン・トランザクションのクロスチェーンの結果に、前記混合チェーンのブロックチェーンに挿入した前記新しいデータ・ブロックをリンクすることをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記検索することが、前記受け取ったリクエストによって識別された前記２つ以上の異なるブロックチェーンの個々のターゲット・ブロックチェーン・ノードから、前記クロスチェーンのブロックチェーン・トランザクションを実行するための前記データを検索することを含む、請求項９ないし１４のいずれかに記載の方法。
【請求項１６】
前記識別することが、前記リクエストに含まれる２つ以上のユニフォーム・リソース・ロケータ（ＵＲＬ）に基づいて、前記２つ以上の異なるブロックチェーンにアクセスするための異なるネットワーク・ロケーションをそれぞれ識別することを含む、請求項９ないし１５のいずれかに記載の方法。
【請求項１７】
コンピュータ・プログラムであって、請求項９ないし１６のいずれかに記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
【請求項１８】
請求項１７に記載のコンピュータ・プログラムを記録した、コンピュータ可読媒体。
【国際調査報告】
2021520539.tif 000013
2021520539.tif 000014
2021520539.tif 000015