(57)【要約】  第1のブロックチェーン内のブロックチェーンノードは、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドへのサブスクリプション要求を開始する。ブロックチェーンノードは、サブスクリプション要求に基づいて、第2のブロックチェーンからメッセージを取得する。ブロックチェーンノードは、メッセージに関連する動作を実行する。
2021507336.tif 000002
【特許請求の範囲】
【請求項１】
クロスブロックチェーン相互作用のための方法であって、
第1のブロックチェーン内のブロックチェーンノードによって、前記第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドへのサブスクリプション要求を開始するステップ(102)と、
前記ブロックチェーンノードによって、前記サブスクリプション要求に基づいて前記第2のブロックチェーンからメッセージを取得するステップ(102)と、
前記ブロックチェーンノードによって、前記メッセージに関連する動作を実行するステップ(104)とを含む、
方法。
【請求項２】
前記ブロックチェーンノードによって取得された前記メッセージが、前記第2のブロックチェーン内でパブリッシュされるとともに前記ブロックチェーンノードのサブスクリプション条件を満たすメッセージを含む、
請求項1に記載の方法。
【請求項３】
前記サブスクリプション要求が、前記クロスチェーン相互作用エンドにサブスクリプション条件を示すために使用され、それによって、前記クロスチェーン相互作用エンドが、前記第2のブロックチェーン内でパブリッシュされるとともに前記サブスクリプション条件を満たすメッセージを取得して、前記ブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューへの前記メッセージの追加が行われるようにする、
請求項1に記載の方法。
【請求項４】
前記ブロックチェーンノードによって、前記メッセージに関連する動作を実行するステップが、
前記ブロックチェーンノードによって、前記取得したメッセージに関連するコントラクト動作を開始するステップを含む、
請求項1に記載の方法。
【請求項５】
前記ブロックチェーンノードが、サブスクリプションクライアントに対応する、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記サブスクリプションクライアントによって、メッセージキューのキューステータスを維持するステップをさらに含む、
請求項5に記載の方法。
【請求項７】
前記メッセージを取得するステップが、
前記クロスチェーン相互作用エンドが前記キューステータスに基づいて、サブスクリプション条件を満たすメッセージを前記メッセージキューが含んでいないと決定するときに、前記クロスチェーン相互作用エンドが前記第2のブロックチェーン内でパブリッシュされるとともに前記サブスクリプション条件を満たすメッセージを取得するように、前記サブスクリプションクライアントによって、前記キューステータスを前記クロスチェーン相互作用エンドに送信するステップを含む、
請求項6に記載の方法。
【請求項８】
前記サブスクリプション要求がサブスクリプション条件を含む、
請求項7に記載の方法。
【請求項９】
前記サブスクリプション条件が、サブスクリプションクライアントとブロックチェーンノードとの間の1対1のマッピング関係を含む、
請求項8に記載の方法。
【請求項１０】
前記第2のブロックチェーンがパブリッシングクライアントに対応する、
請求項1に記載の方法。
【請求項１１】
クロスブロックチェーン相互作用のための装置であって、請求項1から10のいずれか一項に記載の方法を実施するように構成された複数のモジュールを備える、
装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、2018年2月27日に出願された中国特許出願第201810162070.5号の優先権を主張する。
【０００２】
本明細書の1つまたは複数の実装形態は、ブロックチェーン技術の分野に関し、詳細には、クロスブロックチェーン相互作用のための方法、装置、システム、および電子デバイスに関する。
【背景技術】
【０００３】
ブロックチェーン技術(分散台帳技術とも呼ばれる)は、分散型の分散データベース技術である。ブロックチェーン技術は、分散型で、オープンで、改ざん防止で、信頼できるものであり、データの信頼性に対する高い要件を有する多くのアプリケーションシナリオに適用することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
これを考慮して、本明細書の1つまたは複数の実装形態は、クロスブロックチェーン相互作用のための方法、装置、システム、および電子デバイスを提供する。
【０００５】
前の目的を達成するために、本明細書の1つまたは複数の実装形態は、以下の技術的解決策を提供する。
【０００６】
本明細書の1つまたは複数の実装形態の第1の態様によれば、第1のブロックチェーンおよび第2のブロックチェーンと、サブスクリプションクライアントであって、サブスクリプションクライアントが第1のブロックチェーン内のブロックチェーンノードに対応し、ブロックチェーンノードに対応するメッセージキューを維持するように構成され、メッセージキューが、ブロックチェーンノードがサブスクライブするメッセージを含む、サブスクリプションクライアントと、パブリッシングクライアントであって、第2のブロックチェーンに対応し、第2のブロックチェーンにおいて生成されたメッセージを取得してパブリッシュするように構成される、パブリッシングクライアントと、クロスチェーン相互作用エンド(cross-chain interaction end)であって、クロスチェーン相互作用エンドがブロックチェーンノードのサブスクリプション条件を取得し、メッセージキューにサブスクリプション条件を満たすメッセージが含まれていない場合、メッセージキューへのメッセージを更新するために、パブリッシングクライアントにサブスクリプション条件を満たすメッセージを要求し、メッセージをサブスクリプションクライアントに送信する、クロスチェーン相互作用エンドとを含む、クロスブロックチェーン相互作用のためのシステムが提供される。
【０００７】
本明細書の1つまたは複数の実装形態の第2の態様によれば、第1のブロックチェーン内のブロックチェーンノードによって、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって第2のブロックチェーン内のメッセージを取得するステップと、ブロックチェーンノードによって、メッセージに関連する動作を実行するステップとを含む、クロスブロックチェーン相互作用のための方法が提供される。
【０００８】
本明細書の1つまたは複数の実装形態の第3の態様によれば、サブスクリプションクライアントによって、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内でパブリッシュされたメッセージを取得するステップであって、メッセージが、第1のブロックチェーン内のブロックチェーンノードによってクロスチェーン相互作用エンドに提供されるサブスクリプション条件を満たす、ステップと、サブスクリプションクライアントによって、メッセージをブロックチェーンノードに提供するステップとを含む、クロスブロックチェーン相互作用のための方法が提供される。
【０００９】
本明細書の1つまたは複数の実装形態の第4の態様によれば、クロスチェーン相互作用エンドによって、第1のブロックチェーン内のブロックチェーンノードによって開始されたサブスクリプション要求を取得するステップであって、サブスクリプション要求が、サブスクリプション条件を含む、ステップと、メッセージをブロックチェーンノードに提供するために、クロスチェーン相互作用エンドによって、サブスクリプション条件を満たす第2のブロックチェーン内のメッセージを取得するステップとを含む、クロスブロックチェーン相互作用のための方法が提供される。
【００１０】
本明細書の1つまたは複数の実装形態の第5の態様によれば、パブリッシングクライアントによって、第2のブロックチェーン内のメッセージを取得するステップと、パブリッシングクライアントによって、第1のブロックチェーンと第2のブロックチェーンの間のクロスチェーン相互作用エンドを使用することによって、第1のブロックチェーン内のブロックチェーンノードにメッセージを送信するステップとを含む、クロスブロックチェーン相互作用のための方法が提供される。
【００１１】
本明細書の1つまたは複数の実装形態の第6の態様によれば、第1ブロックチェーン内のブロックチェーンノードが、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内のメッセージを取得することを可能にする、獲得ユニットと、ブロックチェーンノードがメッセージに関連する動作を実行することを可能にする実行ユニットとを含む、クロスブロックチェーン相互作用のための装置が提供される。
【００１２】
本明細書の1つまたは複数の実装形態の第7の態様によれば、サブスクリプションクライアントが、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内でパブリッシュされたメッセージを取得することを可能にするメッセージ獲得ユニットであって、メッセージが、第1のブロックチェーン内のブロックチェーンノードによってクロスチェーン相互作用エンドに提供されるサブスクリプション条件を満たす、メッセージ獲得ユニットと、サブスクリプションクライアントがメッセージをブロックチェーンノードに提供することを可能にする、メッセージ提供ユニットとを含む、クロスブロックチェーン相互作用のための装置が提供される。
【００１３】
本明細書の1つまたは複数の実装形態の第8の態様によれば、クロスチェーン相互作用エンドが、第1のブロックチェーン内のブロックチェーンノードによって開始されたサブスクリプション要求を取得することを可能にする獲得ユニットであって、サブスクリプション要求が、サブスクリプション条件を含む、獲得ユニットと、クロスチェーン相互作用エンドが、メッセージをブロックチェーンノードに提供するために、サブスクリプション条件を満たす第2のブロックチェーン内のメッセージを取得することを可能にする提供ユニットとを含む、クロスブロックチェーン相互作用のための装置が提供される。
【００１４】
本明細書の1つまたは複数の実装形態の第9の態様によれば、パブリッシングクライアントが、第2のブロックチェーン内のメッセージを取得することを可能にする獲得ユニットと、パブリッシングクライアントが、第1のブロックチェーンと第2のブロックチェーンの間のクロスチェーン相互作用エンドを使用することによって、第1のブロックチェーン内のブロックチェーンノードにメッセージを送信することを可能にする送信ユニットとを含む、クロスブロックチェーン相互作用のための装置が提供される。
【００１５】
本明細書の1つまたは複数の実装形態の第10の態様によれば、プロセッサと、プロセッサによって実行され得る命令を記憶するように構成されたメモリとを含み、プロセッサが、前の実装形態のうちのいずれか1つによる方法を実装するように構成された、電子デバイスが提供される。
【図面の簡単な説明】
【００１６】
【図１】例示的な実装形態による、クロスブロックチェーン相互作用のための方法を示すフローチャートである。
【図２】例示的な実装形態による、クロスブロックチェーン相互作用のための別の方法を示すフローチャートである。
【図３】例示的な実装形態による、クロスブロックチェーン相互作用のための別の方法を示すフローチャートである。
【図４】例示的な実装形態による、クロスブロックチェーン相互作用のための別の方法を示すフローチャートである。
【図５】例示的な実装形態による、クロスブロックチェーン相互作用のためのシステムを示す概略的なアーキテクチャ図である。
【図６】例示的な実装形態による、クロスブロックチェーン相互作用のための別のシステムを示す概略的なアーキテクチャ図である。
【図７】例示的な実装形態による、クロスブロックチェーン関連の転送システムを示す概略構造図である。
【図８】例示的な実装形態による、クロスブロックチェーンメッセージ交換プロセスを示す概略図である。
【図９】例示的な実装形態による、デバイスを示す概略構造図である。
【図１０】例示的な実装形態による、クロスブロックチェーン相互作用のための装置を示すブロック図である。
【図１１】例示的な実装形態による、クロスブロックチェーン相互作用のための別の装置を示すブロック図である。
【図１２】例示的な実装形態による、クロスブロックチェーン相互作用のための別の装置を示すブロック図である。
【図１３】例示的な実装形態による、クロスブロックチェーン相互作用のための別の装置を示すブロック図である。
【図１４】本開示の実装形態による、クロスブロックチェーン相互作用のためのコンピュータで実施される方法の例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
ここでは、例示的な実装形態を詳細に説明し、実装形態の例を添付の図面に提示する。以下の説明が添付図面に関連する場合、別段の指定がない限り、異なる添付図面における同じ番号は、同じまたは類似の要素を表す。以下の例示的な実装形態において説明する実装形態は、本明細書の1つまたは複数の実装形態と一致するすべての実装形態を表すものではない。逆に、実装形態は、添付の特許請求の範囲に詳細に記載され、本明細書の1つまたは複数の実装形態のいくつかの態様と一致する装置および方法の例にすぎない。
【００１８】
他の実装形態では、対応する方法のステップは、本明細書において示され説明されている順序で必ずしも実施されるとは限らない点に留意する価値がある。他のいくつかの実装形態では、本方法は、本明細書において説明されているステップよりも多いまたは少ないステップを含むことができる。さらに、本明細書において説明される単一のステップは、別の実装形態における説明のために複数のステップに分割することができ、本明細書において説明される複数のステップは、別の実装形態における説明のために単一のステップに組み合わせることができる。
【００１９】
図1は、例示的な実装形態による、クロスブロックチェーン相互作用のための方法を示すフローチャートである。図1に示されるように、本方法は、第1のブロックチェーン内のブロックチェーンノードに適用され、以下のステップを含むことができる。
【００２０】
ステップ102。第1のブロックチェーン内のブロックチェーンノードは、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内のメッセージを取得する。
【００２１】
ある実装形態では、複数のクロスブロックチェーンにクロスチェーン相互作用を実装するために、クロスチェーン相互作用エンドに基づいて第1のブロックチェーンと第2のブロックチェーンとの間でメッセージを交換できるようにするために、クロスチェーン相互作用エンドが第1のブロックチェーンと第2のブロックチェーンとの間に配置される。
【００２２】
ある実装形態では、第1のブロックチェーンは、クロスチェーン相互作用においてメッセージを受信する当事者を表し、第2のブロックチェーンは、クロスチェーン相互作用においてメッセージを提供する当事者を表す。すなわち、「第1のブロックチェーン」および「第2のブロックチェーン」は、クロスチェーン相互作用プロセスにおいて対応するブロックチェーンによって果たされる役割に依存し、特定のブロックチェーンは、第1のブロックチェーンまたは第2のブロックチェーンに限定されない。言い換えれば、特定のブロックチェーンがクロスチェーン相互作用において別のブロックチェーンからメッセージを受信する場合、特定のブロックチェーンはクロスチェーン相互作用プロセスにおける「第1のブロックチェーン」である。特定のブロックチェーンがクロスチェーン相互作用において別のブロックチェーンにメッセージを提供する場合、特定のブロックチェーンはクロスチェーン相互作用プロセスにおける「第2のブロックチェーン」である。
【００２３】
ある実装形態では、ブロックチェーンノードによって取得されたメッセージは、第2のブロックチェーン内でパブリッシュされるとともにブロックチェーンノードのサブスクリプション条件を満たすメッセージを含む。たとえば、ユーザAがアセット1を第2のブロックチェーン内のユーザBに転送する必要があり、ユーザBがアセット2を第1のブロックチェーン内のユーザAに転送する必要があると仮定する。第1に、ユーザAがアセット1をユーザBに転送する動作が第2のブロックチェーンにおいて実行される。次に、動作に対応する動作完了メッセージが第1のブロックチェーンにおいて受信された後、ユーザBがアセット2をユーザAに転送する動作が第1のブロックチェーンにおいて実行される。ユーザAとユーザBとの間のアセット転送プロセスでは、第1のブロックチェーン内のブロックチェーンノードのサブスクリプション条件は、「ユーザAがアセット1をユーザBに転送する」であり得る。したがって、ブロックチェーンノードによって取得される必要があるメッセージは、第2のブロックチェーン内でパブリッシュされている「ユーザAがアセット1をユーザBに転送する」である。そのため、メッセージに関連する動作、つまりユーザBがアセット2をユーザAに転送する動作を実行するために、ブロックチェーンノードがトリガされる。
【００２４】
ある実装形態では、ブロックチェーンノードは、クロスチェーン相互作用エンドへのサブスクリプション要求を開始することができる。サブスクリプション要求は、クロスチェーン相互作用エンドにサブスクリプション条件を示すために使用され、それによって、クロスチェーン相互作用エンドが、第2のブロックチェーン内でパブリッシュされるとともにサブスクリプション条件を満たすメッセージを取得して、ブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューへのメッセージの追加が行われるようにする。次いで、ブロックチェーンノードはメッセージキュー内のメッセージを取得する。サブスクリプション条件は、クロスチェーン相互作用エンドに提供され、クロスチェーン相互作用エンドは、サブスクリプション条件を満たすメッセージを取得する。これは、すべてのブロックチェーンノードのサブスクリプション条件がクロスチェーン相互作用エンドによって満たされるようにするために、ブロックチェーン内の大量のブロックチェーンノードを調整するために役立つ。
【００２５】
ステップ104。ブロックチェーンノードは、メッセージに関連する動作を実行する。
【００２６】
ある実装形態では、ブロックチェーンノードは、コントラクト動作が有効になったときにメッセージに関連する動作を完了するために、取得したメッセージに関連するコントラクト動作を開始することができる。
【００２７】
図2は、例示的な実装形態による、クロスブロックチェーン相互作用のための別の方法を示すフローチャートである。図2に示されるように、本方法は、サブスクリプションクライアントに適用され、以下のステップを含むことができる。
【００２８】
ステップ202。サブスクリプションクライアントは、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内でパブリッシュされたメッセージを取得し、メッセージは、第1のブロックチェーン内のブロックチェーンノードによってクロスチェーン相互作用エンドに提供されるサブスクリプション条件を満たす。
【００２９】
ある実装形態では、サブスクリプションクライアントはブロックチェーンノード上で構成することができ、すなわち、サブスクリプションクライアントは、ブロックチェーンノード上で実装または拡張されるメッセージサブスクリプション機能として理解することができる。別の実装形態では、サブスクリプションクライアントは、第1のブロックチェーンとは無関係の別のノード上で構成することができる。本明細書において制限は課されない。
【００３０】
ステップ204。サブスクリプションクライアントは、メッセージをブロックチェーンノードに提供する。
【００３１】
ある実装形態では、サブスクリプションクライアントは取得したメッセージをメッセージキューに追加することができ、メッセージキューは、ブロックチェーンノードがメッセージキューからメッセージを取得できるように、ブロックチェーンノードに対応している。
【００３２】
ある実装形態では、正確なメッセージ配信を確保するために、クロスチェーン相互作用エンドが、サブスクリプションクライアントに基づいて対応するブロックチェーンノードにメッセージをマッピングできるように、サブスクリプションクライアントとブロックチェーンノードとの間には1対1のマッピング関係がある。別の実装形態では、1人のサブスクリプションクライアントは複数のブロックチェーンノードに対応することができる。たとえば、サブスクリプションクライアントは、メッセージキューを使用することによってメッセージを対応するブロックチェーンノードにマッピングするために、複数のブロックチェーンノードと1対1のマッピング関係を有する複数のメッセージキューを維持することができる。
【００３３】
ある実装形態では、サブスクリプションクライアントは、メッセージキューに含まれるメッセージを示すために、クロスチェーン相互作用エンドによってメッセージキューに更新されたメッセージと、ブロックチェーンノードによるメッセージキュー内の各メッセージの消費ステータスとに基づいて、メッセージキューのキューステータスを維持することができる。次いで、サブスクリプションクライアントは、クロスチェーン相互作用エンドが、キューステータスに基づいて、メッセージキューがサブスクリプション条件を満たすメッセージを含むかどうかを決定できるようにするために、キューステータスをクロスチェーン相互作用エンドに送信することができる。メッセージキューがサブスクリプション条件を満たすメッセージを含む場合、クロスチェーン相互作用エンドはメッセージを繰り返し取得する必要はない。メッセージキューにサブスクリプション条件を満たすメッセージが含まれていない場合、クロスチェーン相互作用エンドは、メッセージキューへのメッセージを更新するために、第2のブロックチェーン内でパブリッシュされるとともにサブスクリプション条件を満たすメッセージを取得することができる。
【００３４】
ある実装形態では、サブスクリプションクライアントは、クロスチェーン相互作用エンドによって開始されたステータスクエリ要求を受信することができる。ステータスクエリ要求に応答して、サブスクリプションクライアントはキューステータスをクロスチェーン相互作用エンドに返す。言い換えれば、メッセージキューとメッセージキューのキューステータスの両方が、クロスチェーン相互作用エンドではなく、ブロックチェーンノードに対応するサブスクリプションクライアントによって維持される。これは、クロスチェーン相互作用エンドに対する関係者の悪意のある行動を防ぎ、メッセージ送信プロセスの信頼性を向上させる。
【００３５】
ある実装形態では、サブスクリプションクライアントは、検証が成功した後にブロックチェーンノードにメッセージを提供するために、クロスチェーン相互作用エンドによって提供されたメッセージを検証することができる。ブロックチェーン技術は分散型台帳、統合型台帳データ、改ざん防止データによって特徴付けられるため、たとえ関係者がクロスチェーン相互作用エンドによって提供されたメッセージを改ざんしても、セキュリティリスクを排除するためにメッセージの信頼性を検証することができる。
【００３６】
ある実装形態では、サブスクリプションクライアントは、任意の1つまたは複数の方法を使用することによってメッセージを検証することができる。本明細書において制限は課されない。たとえば、メッセージが第2のブロックチェーン内の最長チェーン上にあり、メッセージの送信元のブロックの後に少なくとも6つのブロックがある場合、サブスクリプションクライアントはメッセージの検証が成功したと決定することができる。別の例として、サブスクリプションクライアントは、プラクティカルビザンチンフォールトトレランス(PBFT)アルゴリズムに基づいてメッセージを検証することができる。別の例として、サブスクリプションクライアントは、所定のオラクル(Oracle)を使用することによってメッセージを検証することができる。
【００３７】
図3は、例示的な実装形態による、クロスブロックチェーン相互作用のための別の方法を示すフローチャートである。図3に示されるように、本方法は、クロスチェーン相互作用エンドに適用され、以下のステップを含むことができる。
【００３８】
ステップ302。クロスチェーン相互作用エンドは、第1のブロックチェーン内のブロックチェーンノードによって開始されたサブスクリプション要求を取得し、サブスクリプション要求はサブスクリプション条件を含む。
【００３９】
ある実装形態では、クロスチェーン相互作用エンドは、ブロックチェーンノードに対応するサブスクリプションクライアントへのステータスクエリ要求を開始することができる。サブスクリプションクライアントは、ブロックチェーンノードに対応するメッセージキューを維持する。次いで、クロスチェーン相互作用エンドは、サブスクリプションクライアントによって返されたメッセージキューのキューステータスを受信し、キューステータスに基づいて、メッセージキューがサブスクリプション条件を満たすメッセージを含むかどうかを決定する。メッセージキューがサブスクリプション条件を満たすメッセージを含む場合、クロスチェーン相互作用エンドはメッセージを繰り返し取得する必要はない。メッセージキューにサブスクリプション条件を満たすメッセージが含まれていない場合、クロスチェーン相互作用エンドは、メッセージキューへのメッセージを更新するために、第2のブロックチェーン内でパブリッシュされるとともにサブスクリプション条件を満たすメッセージを取得することができる。言い換えれば、メッセージキューとメッセージキューのキューステータスの両方が、クロスチェーン相互作用エンドではなく、ブロックチェーンノードに対応するサブスクリプションクライアントによって維持される。これは、クロスチェーン相互作用エンドに対する関係者の悪意のある行動を防ぎ、メッセージ送信プロセスの信頼性を向上させる。
【００４０】
ある実装形態では、クロスチェーン相互作用エンドは、第2のブロックチェーンに対応するパブリッシングクライアントに対して、サブスクリプション条件に対応するメッセージ獲得要求を開始することができる。パブリッシングクライアントは、第2のブロックチェーン内で生成されたメッセージを維持するように構成される。次いで、クロスチェーン相互作用エンドは、パブリッシングクライアントによって返され、メッセージ獲得要求と一致するメッセージを受信する。言い換えれば、パブリッシングクライアントは第2のブロックチェーンからすべてのパブリッシュ可能なメッセージを取得し、メッセージはステートレスメッセージである。すなわち、パブリッシングクライアントは、第1のブロックチェーン内のブロックチェーンノードに対応するメッセージキューとメッセージキューのキューステータスを維持する必要はなく、クロスチェーン相互作用エンドによって開始されたメッセージ獲得要求に応答するだけでよい。これは、パブリッシングクライアントに対する関係者の悪意のある行動を防ぎ、メッセージ送信プロセスの信頼性を向上させる。
【００４１】
ステップ304。クロスチェーン相互作用エンドが、メッセージをブロックチェーンノードに提供するために、サブスクリプション条件を満たす第2のブロックチェーン内のメッセージを取得する。
【００４２】
ある実装形態では、クロスチェーン相互作用エンドは第1のブロックチェーン内で構成することもでき、クロスチェーン相互作用エンドは第2のブロックチェーン内で構成することもでき、クロスチェーン相互作用エンドは第1のブロックチェーンおよび第2のブロックチェーンとは無関係のノード上で構成することもでき、クロスチェーン相互作用エンドは別の場所において構成することもできる。本明細書において制限は課されない。
【００４３】
図4は、例示的な実装形態による、クロスブロックチェーン相互作用のための別の方法を示すフローチャートである。図4に示されるように、本方法はパブリッシングクライアントに適用され、以下のステップを含むことができる。
【００４４】
ステップ402。パブリッシングクライアントは、第2のブロックチェーン内のメッセージを取得する。
【００４５】
ある実装形態では、パブリッシングクライアントは、クロスチェーン相互作用エンドによって開始されたメッセージ獲得要求を受信することができる。メッセージ獲得要求は、ブロックチェーンノードによって提供されるサブスクリプション条件に基づいて、クロスチェーン相互作用エンドによって生成される。次いで、パブリッシングクライアントは、第2のブロックチェーン内にあり、メッセージ獲得要求と一致するメッセージをクロスチェーン相互作用エンドに送信し、これにより、クロスチェーン相互作用エンドがメッセージをブロックチェーンノードに送信する。言い換えれば、パブリッシングクライアントは第2のブロックチェーンからすべてのパブリッシュ可能なメッセージを取得し、メッセージはステートレスメッセージである。すなわち、パブリッシングクライアントは、第1のブロックチェーン内のブロックチェーンノードに対応するメッセージキューとメッセージキューのキューステータスを維持する必要はなく、クロスチェーン相互作用エンドによって開始されたメッセージ獲得要求に応答するだけでよい。これは、パブリッシングクライアントに対する関係者の悪意のある行動を防ぎ、メッセージ送信プロセスの信頼性を向上させる。
【００４６】
ステップ404。パブリッシングクライアントは、第1のブロックチェーンと第2のブロックチェーンの間のクロスチェーン相互作用エンドを使用することによって、第1のブロックチェーン内のブロックチェーンノードにメッセージを送信する。
【００４７】
ある実装形態では、クロスチェーン相互作用エンドはメッセージをサブスクリプションクライアントに送信することができ、サブスクリプションクライアントはブロックチェーンノードに対応するメッセージキューにメッセージを追加し、これにより、ブロックチェーンノードがメッセージを取得し、関連する動作を実行する。
【００４８】
ある実装形態では、第2のブロックチェーン内のすべてのブロックチェーンノードは1つのパブリッシングクライアントに対応することもでき、第2のブロックチェーン内のブロックチェーンノードはそれぞれ複数のパブリッシングクライアントに対応することもできる。本明細書において制限は課されない。
【００４９】
図5は、例示的な実装形態による、クロスブロックチェーン相互作用のためのシステムを示す概略的なアーキテクチャ図である。図5に示されるように、クロスブロックチェーン相互作用のためのシステムは、第1のブロックチェーンと、第2のブロックチェーンと、サブスクリプションクライアントと、パブリッシングクライアントと、クロスチェーン相互作用エンドとを含むことができる。
【００５０】
第1のブロックチェーンは、本明細書においてメッセージサブスクリプション当事者として使用されるブロックチェーンであり、第2のブロックチェーンは、本明細書においてメッセージパブリッシング当事者として使用されるブロックチェーンである。言い換えれば、「第1のブロックチェーン」と「第2のブロックチェーン」は、異なるブロックチェーンによって果たされる役割を区別するためにのみ使用され、特定のブロックチェーンは「第1のブロックチェーン」または「第2のブロックチェーン」に限定されない。
【００５１】
サブスクリプションクライアントは、第1のブロックチェーン内のブロックチェーンノードに対応し、ブロックチェーンノードに対応するメッセージキューを維持するように構成される。メッセージキューは、ブロックチェーンノードがサブスクライブするメッセージを含む。ある実装形態では、サブスクリプションクライアントは、第1のブロックチェーンとは無関係のデバイス、ノード、プラットフォームなどで構成することができる。別の実装形態では、サブスクリプションクライアントは、第1のブロックチェーン内のブロックチェーンノード上で構成することができ、これは、関連する技術に基づいてブロックチェーンノード上で拡張されたサブスクリプション機能に相当する。
【００５２】
パブリッシングクライアントは、第2のブロックチェーンに対応し、第2のブロックチェーンにおいて生成されたメッセージを取得してパブリッシュするように構成される。ブロックチェーンの分散台帳技術により、第2のブロックチェーン内のすべてのブロックチェーンノードは、同じコンテンツの完全な台帳データ、つまりブロックチェーン台帳を維持することで合意に達することができ、パブリッシングクライアントはブロックチェーン台帳からパブリッシュ可能なメッセージを取得できるため、クロスチェーン相互作用エンドはメッセージを取得することができる。ある実装形態では、パブリッシングクライアントは、第2のブロックチェーンとは無関係のデバイス、ノード、プラットフォームなどで構成することができる。別の実装形態では、パブリッシングクライアントは、第2のブロックチェーン内のブロックチェーンノード上で構成することができ、これは、関連技術に基づいてブロックチェーンノード上で拡張されたパブリッシュ機能に相当する。
【００５３】
クロスチェーン相互作用エンドは、第1のブロックチェーン内のブロックチェーンノードによって開始されたサブスクリプション要求を取得することができる。ブロックチェーンノードのサブスクリプション要件を示すために、サブスクリプション要求はサブスクリプション条件を含む。クロスチェーン相互作用エンドは、サブスクリプションクライアントへのステータスクエリ要求を開始し、サブスクリプションクライアントによって返されたメッセージキューのキューステータスに基づいて、メッセージキューがサブスクリプション条件を満たすメッセージを含むかどうかを決定することができる。含む場合、クロスチェーン相互作用エンドはメッセージを繰り返し取得する必要はない。含まない場合、クロスチェーン相互作用エンドは、パブリッシングクライアントからサブスクリプション条件を満たすメッセージを取得する必要がある。クロスチェーン相互作用エンドは、第1のブロックチェーン内のブロックチェーンノードがメッセージを消費できるように、メッセージキューへのメッセージを更新するために、パブリッシングクライアントにサブスクリプション条件を満たすメッセージを要求し、パブリッシングクライアントによって返されたメッセージをサブスクリプションクライアントに送信することができる。クロスチェーン相互作用エンドは、パブリッシングクライアントとサブスクリプションクライアントとの間でメッセージを送信するだけで、メッセージに対して永続化処理を実施する必要はない。ある実装形態では、クロスチェーン相互作用エンドは、第1のブロックチェーンおよび第2のブロックチェーンとは無関係のデバイス、ノード、プラットフォームなどで構成することができる。別の実装形態では、クロスチェーン相互作用エンドは、第1のブロックチェーン内のブロックチェーンノード上で構成することができ、これは、関連技術に基づいてブロックチェーンノード上で拡張されたクロスチェーン相互作用機能に相当する。別の実装形態では、クロスチェーン相互作用エンドは、第2のブロックチェーン内のブロックチェーンノード上で構成することができ、これは、関連技術に基づいてブロックチェーンノード上で拡張されたクロスチェーン相互作用機能に相当する。
【００５４】
図5に示される実装形態における、サブスクリプションクライアント、パブリッシングクライアント、クロスチェーン相互作用エンド等に基づいて、第1のブロックチェーン内のブロックチェーンノードに対応するメッセージキューは、ブロックチェーンノードに対応するサブスクリプションクライアントによって維持され、ブロックチェーンノードによるメッセージキュー内の各メッセージの消費ステータスはブロックチェーンノードによって維持され、クロスチェーン相互作用エンド、パブリッシングクライアントなどは、消費ステータスを維持する必要はない。そのため、クロスチェーン相互作用エンド、パブリッシングクライアントなどが、サブスクリプションクライアントに誤った、または無効なメッセージを提供するのを防ぐ。
【００５５】
クロスチェーン相互作用エンドによってサブスクリプションクライアントに提供されるメッセージはパブリッシングクライアントからのものであり、パブリッシングクライアントによって提供されるメッセージは第2のブロックチェーンからのものである。さらに、パブリッシングクライアントはメッセージキューのキューステータスを維持しないため、パブリッシングクライアントはメッセージコンテンツを改ざんすることができない。サブスクリプションクライアントは、第2のブロックチェーン内で維持されているブロックチェーン台帳に基づいてコンテンツを検証できるため、クロスチェーン相互作用エンドがメッセージコンテンツを改ざんしても意味がない。そのため、メッセージコンテンツの信頼性が保証される。しかしながら、状況によっては、クロスチェーン相互作用エンドがサービス拒否攻撃を開始することができ、その結果、サブスクリプションクライアントがパブリッシングクライアントによってパブリッシュされたメッセージを取得できない場合がある。したがって、図6に示されるように、複数の相互に無関係のクロスチェーン相互作用エンドは、サブスクリプションクライアントとパブリッシングクライアントとの間、たとえば、クロスチェーン相互作用エンド1とクロスチェーン相互作用エンド2との間に構成することができる。したがって、たとえクロスチェーン相互作用エンド1がサービス拒否攻撃を開始しても、サブスクリプションクライアントは、クロスチェーン相互作用エンド2を使用することによって、パブリッシングクライアントによってパブリッシュされたメッセージを取得することができる。
【００５６】
理解を容易にするために、本明細書の1つまたは複数の実装形態における技術的解決策を、例としてクロスブロックチェーン関連の転送を使用することによって説明する。図7は、例示的な実装形態による、クロスブロックチェーン関連の転送システムを示す概略構造図である。図7に示されるように、ユーザAがブロックチェーン1内にアカウントA1を、ブロックチェーン2内にアカウントA2を、およびユーザBがブロックチェーン1内にアカウントB1を、ブロックチェーン2内にアカウントB2を有していると仮定する。ブロックチェーン1内のアカウントA1とアカウントB1は、特定のタイプのアセットオブジェクト(RMBなど)を維持するために使用される。ブロックチェーン2内のアカウントA2とアカウントB2は、別のタイプのアセットオブジェクト(証券など)を維持するために使用される。ユーザAがユーザBに証券を販売することを期待している場合、次の関連する転送論理を使用することによって実装することができる。ユーザAが指定された量の証券をアカウントA2からアカウントB2に転送し、次いで、ユーザBが指定された量のRMBをアカウントB1からアカウントA1へ転送する。
【００５７】
転送プロセスの信頼性を向上させるために、対応するスマートコントラクトをブロックチェーン1とブロックチェーン2の各々に設定することができる。このように、前の2つの転送プロセスは自動的に完了し、転送プロセスが迅速かつ正確に完了することを確実にするために、意図的または過失の誤った転送量、あるいはユーザの手動転送プロセスにおける遅延が防止される。本明細書における技術的解決策に基づいて、ブロックチェーン1とブロックチェーン2との間でクロスブロックチェーンのメッセージ交換を実装できるため、ブロックチェーン1が、アカウントA2からアカウントB2への転送動作がブロックチェーン2内で完了したと決定した後、アカウントB1からアカウントA1への転送動作をブロックチェーン1において実行することができる。
【００５８】
図7に示される実装形態では、ブロックチェーン1が、ブロックチェーンノード1、ブロックチェーンノード2、ブロックチェーンノード3などを含むと仮定する。サブスクリプションクライアント1はブロックチェーンノード1上で構成され、サブスクリプションクライアント2はブロックチェーンノード2上で構成され、サブスクリプションクライアント3はブロックチェーンノード3上で構成されるなどである。サブスクリプションクライアント1〜3は必ずしもブロックチェーンノード1〜3上で構成される必要はなく、ブロックチェーン1とは無関係のノード上で構成することができる。本明細書において制限は課されない。サブスクリプションクライアント1はブロックチェーンノード1に対応するメッセージキュー1を維持し、サブスクリプションクライアント2はブロックチェーンノード2に対応するメッセージキュー2を維持し、サブスクリプションクライアント3はブロックチェーンノード3に対応するメッセージキュー3を維持する。対応するパブリッシングクライアントはブロックチェーン2内で構成される。パブリッシングクライアントは、ブロックチェーン2内の特定のブロックチェーンノード上で構成することもでき、ブロックチェーン2とは無関係のノード上で構成することもできる。本明細書において制限は課されない。サブスクリプションクライアント1〜3とパブリッシングクライアントとの間に、クロスチェーン相互作用エンドが構成されている。クロスチェーン相互作用エンドは、ブロックチェーン1内の特定のブロックチェーンノード上で構成することもでき、ブロックチェーン2内の特定のブロックチェーンノード上で構成することもでき、ブロックチェーン1およびブロックチェーン2とは無関係のノード上で構成することもできる。本明細書において制限は課されない。
【００５９】
サブスクリプションクライアント1〜3はそれぞれメッセージキュー1〜3を維持し、メッセージキュー1〜3は、ブロックチェーンノード1〜3がそれぞれサブスクライブするメッセージを含む。サブスクリプションクライアント1〜3は、それぞれブロックチェーンノード1〜3によるメッセージキュー1〜3内のメッセージの消費ステータスに基づいて、メッセージキュー1〜3のキューステータスを維持することができる。クロスチェーン相互作用エンドとパブリッシングクライアントは、キューステータスを維持する必要はない。パブリッシングクライアントは、ブロックチェーン2内のすべてのパブリッシュ可能なメッセージを取得することができる。クロスチェーン相互作用エンドは、メッセージを対応するメッセージキューに更新するために、サブスクリプションクライアント1〜3にキューステータスを要求し、キューステータスに基づいてパブリッシングクライアントに対応するメッセージを要求することができる。以下では、クロスブロックチェーンのメッセージ交換プロセスについて説明するために、ブロックチェーンノード1を例として使用する。例示的な実装形態による、クロスブロックチェーンメッセージ交換プロセスを示す概略図である。図8に示されるように、メッセージ交換プロセスは以下のステップを含むことができる。
【００６０】
ステップ801。クロスチェーン相互作用エンドは、サブスクリプションクライアント1にキューステータスを要求する。
【００６１】
ステップ802。クロスチェーン相互作用エンドは、サブスクリプションクライアント1によって返されたキューステータスを受信する。
【００６２】
ある実装形態では、サブスクリプションクライアント1は、ブロックチェーンノード1に対応するメッセージキュー(つまり、メッセージキュー1)を維持する。メッセージキューは、ブロックチェーンノード1がサブスクライブするメッセージを含み、キューステータスは、ブロックチェーンノード1による各メッセージの消費ステータスを含むため、クロスチェーン相互作用エンドは、パブリッシングクライアントから取得される必要がある次のメッセージを知ることができる。
【００６３】
特に、ブロックチェーンノード1は、クロスチェーン相互作用エンドへのサブスクリプション要求を開始し、サブスクリプション要求はサブスクリプション条件を含む。例として、ユーザAとユーザBとの間の以前の転送トランザクションを使用する。サブスクリプション条件は、指定された量の証券がアカウントA2からアカウントB2に正常に転送されることであると仮定する。キューステータスを照会した後、クロスチェーン相互作用エンドは、サブスクリプションクライアント1によって維持されているメッセージキューが、サブスクリプション条件を満たすメッセージ、つまり、指定された量の証券がアカウントA2からアカウントB2に転送されたことを示すトランザクション成功メッセージを含むかどうかを決定することができる。サブスクリプション条件を満たすメッセージがすでにある場合、クロスチェーン相互作用エンドはメッセージを繰り返し取得する必要はなく、サブスクリプション要求が正常に応答されたと決定する。サブスクリプション条件を満たすメッセージがない場合、クロスチェーン相互作用エンドは、取得される必要がある次のメッセージが、指定された量の証券がアカウントA2からアカウントB2に転送されたことを示すトランザクション成功メッセージであると決定することができる。クロスチェーン相互作用エンドは、次のメッセージを取得するために、引き続き後続のステップを実施する必要がある。
【００６４】
ステップ803。クロスチェーン相互作用エンドは、メッセージ獲得要求をパブリッシングクライアントに送信する。
【００６５】
ある実装形態では、例として、ユーザAとユーザBとの間の以前の転送トランザクションが使用される。ブロックチェーンノード1が、ブロックチェーン2に、指定された量の証券がアカウントA2からアカウントB2に転送されたことを示すトランザクション成功メッセージをサブスクライブすると仮定する。キューステータスに基づいて、取得される必要がある次のメッセージがトランザクション成功メッセージであると決定すると、クロスチェーン相互作用エンドはトランザクション成功メッセージを取得するために、パブリッシングクライアントへの対応するメッセージ獲得要求を開始することができる。
【００６６】
ステップ804。クロスチェーン相互作用エンドは、パブリッシングクライアントによって返されたメッセージを取得する。
【００６７】
ある実装形態では、パブリッシングクライアントは、クロスチェーン相互作用エンドによって必要とされるメッセージを決定するために、メッセージ獲得要求を解析することができる。パブリッシングクライアントがトランザクション成功メッセージを取得した場合、パブリッシングクライアントはメッセージをクロスチェーン相互作用エンドに直接返すことができる。パブリッシングクライアントがトランザクション成功メッセージを取得しない場合、パブリッシングクライアントはメッセージ獲得が失敗したことをクロスチェーン相互作用エンドに通知することができ、これにより、クロスチェーン相互作用エンドは、あらかじめ定められた期間に基づいて、パブリッシングクライアントがトランザクション成功メッセージを取得するまでクエリを繰り返し実施することができる。あるいは、状況によっては、パブリッシングクライアントがトランザクション成功メッセージを取得しない場合、パブリッシングクライアントはトランザクション成功メッセージを監視し、パブリッシングクライアントが、トランザクション成功メッセージが取得されたと決定した後、トランザクション成功メッセージをクロスチェーン相互作用エンドにアクティブに送信することができる。
【００６８】
ある実装形態では、ブロックチェーン2内のアカウントA2からアカウントB2への転送動作は、スマートコントラクトを呼び出すことによってブロックチェーン2内の特定のブロックチェーンノードによって完了することもでき、あらかじめ定義されたトリガ条件に基づいてスマートコントラクトを自動的にトリガすることによって完了することもできる。本明細書において制限は課されない。
【００６９】
ステップ805。クロスチェーン相互作用エンドは、取得したメッセージをサブスクリプションクライアント1に送信する。
【００７０】
ある実装形態では、クロスチェーン相互作用エンドは、サブスクリプションクライアント1とパブリッシングクライアントとの間のデータ送信のみを担当する。クロスチェーン相互作用エンドは、メッセージキューおよびキューステータスを維持せず、データコンテンツにも注意を払わない。さらに、クロスチェーン相互作用エンドは、データに対して永続化処理を実施する必要がなく、データ送信のための「パイプライン」としてのみ使用される。
【００７１】
ステップ806。サブスクリプションクライアント1は、メッセージキューを維持するために、クロスチェーン相互作用エンドによって送信されたメッセージをメッセージキューに追加する。
【００７２】
ある実装形態では、サブスクリプションクライアント1またはブロックチェーンノード1は、メッセージは信頼性があり、改ざんされていないことを確認するために、受信したメッセージを検証することができる。サブスクリプションクライアント1またはブロックチェーンノード1は、様々な方法を使用することによって検証を実施することができる。本明細書において制限は課されない。たとえば、サブスクリプションクライアント1またはブロックチェーンノード1は、メッセージの送信元のブロックがブロックチェーン2内の最長チェーン上にあるかどうかをチェックすることができ、またブロックに続くブロックの数をチェックすることができる。メッセージの送信元のブロックが最長チェーン上にあり、ブロックに続くブロック数が6以上の場合、サブスクリプションクライアント1またはブロックチェーンノード1は、メッセージの検証が成功したと決定することができる。別の例として、サブスクリプションクライアント1またはブロックチェーンノード1は、PBFTアルゴリズムに基づいて、またはオラクルを使用することによって、メッセージを検証することができる。
【００７３】
実際、ブロックチェーン技術は分散型台帳技術でもあるため、クロスチェーン相互作用エンド、パブリッシングクライアント、またはブロックチェーン2内のいくつかのブロックチェーンノードがメッセージコンテンツを改ざんしても意味がなく、その理由は、ブロックチェーン2内のブロックチェーン台帳に記録された台帳データは影響を受けないためである。したがって、サブスクリプションクライアント1またはブロックチェーンノード1が受信したメッセージを効果的に検証できることが保証される。
【００７４】
ある実装形態では、対応するスマートコントラクトがブロックチェーン1内で事前に作成されていると仮定する。スマートコントラクトのトリガ条件は、トランザクション成功メッセージが取得されることであり、コントラクト動作のコンテンツは、指定された量のRMBがアカウントB1からアカウントA1に転送されることである。サブスクリプションクライアント1によって維持されるメッセージキューからトランザクション成功メッセージを取得した後、ブロックチェーンノード1は、指定された量のRMBをアカウントB1からアカウントA1に自動的に転送するために、スマートコントラクトを自動的に呼び出し、対応するコントラクト動作を開始することができる。このように、ユーザAとユーザBとの間の転送動作は、遅延(データ送信および処理において消費される通常の期間を除く、手動動作によって引き起こされる遅延)なしに確実に完了することができる。
【００７５】
図9は、例示的な実装形態による、デバイスを示す概略構造図である。図9に示されるように、ハードウェアに関して、デバイスは、プロセッサ902、内部バス904、ネットワークインターフェース906、メモリ908、および不揮発性メモリ910を含み、他のサービスによって必要とされるハードウェアを確実にさらに含むことができる。プロセッサ902は、対応するコンピュータプログラムを不揮発性メモリ910からメモリ908に読み込み、次いで、論理の観点からクロスブロックチェーン相互作用のための装置を形成するために、対応するコンピュータプログラムを実行する。確かに、ソフトウェア実装形態に加えて、他の実装形態は、本明細書の1つまたは複数の実装形態、たとえば、論理デバイスまたはハードウェアとソフトウェアの組合せから除外されない。すなわち、以下の処理手順の実行主体は、各論理ユニットに限定されず、ハードウェアまたは論理デバイスであってもよい。
【００７６】
ある実装形態では、図10を参照して、ソフトウェア実装形態において、クロスブロックチェーン相互作用のための装置は、第1ブロックチェーン内のブロックチェーンノードが、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内のメッセージを取得することを可能にする、獲得ユニット1001と、ブロックチェーンノードがメッセージに関連する動作を実行することを可能にする実行ユニット1002とを含むことができる。
【００７７】
任意で、ブロックチェーンノードによって取得されたメッセージは、第2のブロックチェーン内でパブリッシュされるとともにブロックチェーンノードのサブスクリプション条件を満たすメッセージを含む。
【００７８】
任意で、獲得ユニット1001は、ブロックチェーンノードがクロスチェーン相互作用エンドへのサブスクリプション要求を開始することを可能にすることであって、サブスクリプション要求が、クロスチェーン相互作用エンドにサブスクリプション条件を示すために使用され、それによって、クロスチェーン相互作用エンドが、第2のブロックチェーン内でパブリッシュされるとともにサブスクリプション条件を満たすメッセージを取得して、ブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューへのメッセージの追加が行われるようにする、ことと、ブロックチェーンノードがメッセージキュー内のメッセージを取得すること可能にすることとを行うように特に構成される。
【００７９】
任意で、実行ユニット1002は、ブロックチェーンノードが取得したメッセージに関連するコントラクト動作を開始することを可能にするように特に構成される。
【００８０】
別の実装形態では、図11を参照して、ソフトウェア実装形態において、クロスブロックチェーン相互作用のための装置は、サブスクリプションクライアントが、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用することによって、第2のブロックチェーン内でパブリッシュされたメッセージを取得することを可能にするメッセージ獲得ユニット1101であって、メッセージが、第1のブロックチェーン内のブロックチェーンノードによってクロスチェーン相互作用エンドに提供されるサブスクリプション条件を満たす、メッセージ獲得ユニット1101と、サブスクリプションクライアントがメッセージをブロックチェーンノードに提供することを可能にする、メッセージ提供ユニット1102とを含むことができる。
【００８１】
任意で、メッセージ提供ユニット1102は、ブロックチェーンノードがメッセージキューからメッセージを取得できるように、サブスクリプションクライアントが、ブロックチェーンノードに対応するメッセージキューに取得したメッセージを追加することを可能にするように特に構成される。
【００８２】
任意で、本装置は、サブスクリプションクライアントがメッセージキューのキューステータスを維持することを可能にする維持ユニット1103をさらに含む。
【００８３】
メッセージ獲得ユニット1101は、クロスチェーン相互作用エンドがキューステータスに基づいて、サブスクリプション条件を満たすメッセージをメッセージキューが含んでいないと決定するときに、クロスチェーン相互作用エンドが第2のブロックチェーン内でパブリッシュされるとともにサブスクリプション条件を満たすメッセージを取得するように、サブスクリプションクライアントがキューステータスをクロスチェーン相互作用エンドに送信することを可能にするように特に構成される。
【００８４】
任意で、本装置は、サブスクリプションクライアントがクロスチェーン相互作用エンドによって開始されたステータスクエリ要求を受信することを可能にする要求受信ユニット1104をさらに含む。
【００８５】
メッセージ獲得ユニット1101は、サブスクリプションクライアントが、ステータスクエリ要求に応答して、キューステータスをクロスチェーン相互作用エンドに返すことを可能にする。
【００８６】
任意で、本装置は、サブスクリプションクライアントが、サブスクリプションクライアントは、検証が成功した後にブロックチェーンノードにメッセージを提供するために、クロスチェーン相互作用エンドによって提供されたメッセージを検証することを可能にする検証ユニット1105をさらに含む。
【００８７】
任意で、サブスクリプションクライアントはブロックチェーンノード上で構成される。
【００８８】
別の実装形態では、図12を参照して、ソフトウェア実装形態において、クロスブロックチェーン相互作用のための装置は、クロスチェーン相互作用エンドが、第1のブロックチェーン内のブロックチェーンノードによって開始されたサブスクリプション要求を取得することを可能にする獲得ユニット1201であって、サブスクリプション要求が、サブスクリプション条件を含む、獲得ユニット1201と、クロスチェーン相互作用エンドが、メッセージをブロックチェーンノードに提供するために、サブスクリプション条件を満たす第2のブロックチェーン内のメッセージを取得することを可能にする提供ユニット1202とを含むことができる。
【００８９】
任意で、本装置は、クロスチェーン相互作用エンドが、ブロックチェーンノードに対応するサブスクリプションクライアントへのステータスクエリ要求を開始することを可能にするクエリユニット1203であって、サブスクリプションクライアントが、ブロックチェーンノードに対応するメッセージキューを維持する、クエリユニット1203と、クロスチェーン相互作用エンドがキューステータスに基づいて、サブスクリプション条件を満たすメッセージをメッセージキューが含んでいないと決定するときに、クロスチェーン相互作用エンドがサブスクリプション条件を満たす第2のブロックチェーン内のメッセージを取得するように、クロスチェーン相互作用エンドがサブスクリプションクライアントによって返されるメッセージキューのキューステータスを受信することを可能にする受信ユニット1204とをさらに含む。
【００９０】
任意で、獲得ユニット1201は、クロスチェーン相互作用エンドが、第2のブロックチェーンに対応するパブリッシングクライアントに対して、サブスクリプション条件に対応するメッセージ獲得要求を開始することであって、パブリッシングクライアントが、第2のブロックチェーン内で生成されたメッセージを維持するように構成されることを可能にすることと、クロスチェーン相互作用エンドが、パブリッシングクライアントによって返され、メッセージ獲得要求と一致するメッセージを受信することを可能にすることとを行うように特に構成される。
【００９１】
任意で、クロスチェーン相互作用エンドは第1のブロックチェーン内で構成されているか、クロスチェーン相互作用エンドは第2のブロックチェーン内で構成されているか、クロスチェーン相互作用エンドは第1のブロックチェーンおよび第2のブロックチェーンとは無関係のノードで構成されている。
【００９２】
別の実装形態では、図13を参照して、ソフトウェア実装形態において、クロスブロックチェーン相互作用のための装置は、パブリッシングクライアントが、第2のブロックチェーン内のメッセージを取得することを可能にする獲得ユニット1301と、パブリッシングクライアントが、第1のブロックチェーンと第2のブロックチェーンの間のクロスチェーン相互作用エンドを使用することによって、第1のブロックチェーン内のブロックチェーンノードにメッセージを送信することを可能にする送信ユニット1302とを含むことができる。
【００９３】
任意で、獲得ユニット1301は、メッセージ獲得要求は、パブリッシングクライアントが、クロスチェーン相互作用エンドによって開始されたメッセージ獲得要求を受信することであって、メッセージ獲得要求が、ブロックチェーンノードによって提供されるサブスクリプション条件に基づいて、クロスチェーン相互作用エンドによって生成される、ことを可能にすることと、パブリッシングクライアントが、第2のブロックチェーン内にあり、メッセージ獲得要求と一致するメッセージをクロスチェーン相互作用エンドに送信し、これにより、クロスチェーン相互作用エンドがメッセージをブロックチェーンノードに送信することを可能にするように特に構成される。
【００９４】
前述の実装形態において示されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装することもでき、特定の機能を有する製品を使用することによって実装することもできる。典型的な実装デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【００９５】
典型的な構成では、コンピュータは、1つまたは複数のプロセッサ(CPU)、入力/出力インターフェース、ネットワークインターフェース、およびメモリを含む。
【００９６】
メモリは、非永続メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/またはコンピュータ可読媒体における別の形式、たとえば、読取り専用メモリ(ROM)またはフラッシュメモリ(フラッシュRAM)を含むことができる。メモリは、コンピュータ可読媒体の一例である。
【００９７】
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報を記憶する永続的、非永続的、移動可能、および移動不可能な媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであり得る。コンピュータストレージ媒体は、これらに限定されないが、相変化ランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別のタイプのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラム可能読取り専用メモリ(EEPROM)、フラッシュメモリまたは別のメモリ技術、コンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)または別の光ストレージ、磁気テープ、磁気ディスクストレージ、量子ストレージ、書記素ベースのストレージ媒体、別の磁気ストレージデバイス、あるいは任意の他の非送信媒体を含む。コンピュータストレージ媒体は、コンピューティングデバイスによってアクセスされ得る情報を記憶するために使用することができる。本明細書における定義に基づいて、コンピュータ可読媒体は、一時的な媒体(transitory media)、たとえば、変調されたデータ信号およびキャリアを含まない。
【００９８】
「含む(include)」、「備える(comprise)」、またはそれらの任意の他の変形は、要素のリストを含むプロセス、方法、製品、またはデバイスが、それらの要素だけでなく、明示的にリストされていない他の要素も含むように、またはそのようなプロセス、方法、製品、またはデバイスに固有の要素をさらに含むように、非排他的な組み込みをカバーすることが意図されている点にさらに留意する価値がある。「...を含む(includes a ...)」が前に付いている要素は、制約がなければ、その要素を含むプロセス、方法、製品、またはデバイスに追加の同一の要素が存在することを妨げるものではない。
【００９９】
本明細書の特定の実装形態は、上で説明されている。他の実装形態は、添付の特許請求の範囲に含まれる。状況によっては、特許請求の範囲に記載されたアクションまたはステップは、実装形態における順序とは異なる順序で実施することができ、依然として所望の結果を達成することができる。さらに、添付の図面において提供されるプロセスは、所望の結果を達成するために特定の実行順序を必ずしも必要としない。いくつかの実装形態では、マルチタスクおよび並列処理が有利な場合がある。
【０１００】
本明細書の1つまたは複数の実装形態において使用される用語は、特定の実装形態を説明することのみを目的としており、本明細書の1つまたは複数の実装形態を限定することを意図していない。本明細書の実装形態および添付の特許請求の範囲において使用される単数形の「a」および「the」という用語は、文脈において明確に指定されていない限り、複数形を含むことも意図されている。また、本明細書において使用される「および/または(and/or)」という用語は、1つまたは複数の関連付けられるリストされた項目のいずれかまたはすべての可能な組合せを示し、それらを含むことも理解されたい。
【０１０１】
「第1(first)」、「第2(second)」、「第3(second)」などの用語は、本明細書の1つまたは複数の実装形態における様々な情報を説明するために使用できるが、情報は用語に限定されないことを理解されたい。これらの用語は、同じタイプの情報を区別するためにのみ使用される。たとえば、本明細書の1つまたは複数の実装形態の範囲から逸脱することなしに、第1の情報は第2の情報とも呼ばれ、同様に、第2の情報は第1の情報とも呼ばれ得る。たとえば、本明細書で使用される「〜の場合(if)」という単語は、文脈に応じて、「〜する間(while)」、「〜するとき(when)」、または「〜という決定に応じて(in response to determining)」と説明することができる。
【０１０２】
前述の説明は、本明細書の1つまたは複数の実装形態における例示的な実装形態にすぎず、本明細書の1つまたは複数の実装形態を限定することを意図したものではない。本明細書の1つまたは複数の実装形態の趣旨および原理から逸脱することなしに行われる任意の修正、同等の交換、改善などは、本明細書の1つまたは複数の実装形態の保護範囲内に含まれるものとする。
【０１０３】
図14は、本開示の実装形態による、クロスブロックチェーン相互作用のためのコンピュータで実施される方法1400の例を示すフローチャートである。提示を明確にするために、以下の説明は、一般的に、この説明の他の図面に関連して方法1400を説明している。しかしながら、方法1400は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、または必要に応じてシステム、環境、ソフトウェア、およびハードウェアの組合せによって実施できることが理解されよう。いくつかの実装形態では、方法1400の様々なステップは、並行して、組み合わせて、ループにおいて、または任意の順序で実施することができる。
【０１０４】
一般に、図14は、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドを使用して、第1のブロックチェーンが第2のブロックチェーンからメッセージを取得することを可能にする解決策を示している。2つのクロスブロックチェーンでメッセージを交換できるように、クロスチェーン相互作用エンドが存在してもよく、第1のブロックチェーンと第2のブロックチェーンとの間に配置されてもよい。さらに、追加のブロックチェーンは、複数のクロスブロックチェーンの通信を可能にするために、追加または同じクロスチェーン相互作用エンドを使用することができる。本明細書で使用される第2のブロックチェーンは、クロスチェーン相互作用において別のブロックチェーンにメッセージを提供するブロックチェーンを表すが、第1のブロックチェーンはメッセージを受信する任意のブロックチェーンであり得る点に留意されたい。したがって、本明細書で説明するように、異なるブロックチェーンは、特定のメッセージの方向に応じて、第1のブロックチェーンまたは第2のブロックチェーンであり得る。
【０１０５】
いくつかの例では、第2のブロックチェーン(すなわち、メッセージの発信元またはパブリッシュ元)は、第2のブロックチェーン内でメッセージをパブリッシュすることができる。第1のブロックチェーンは、いくつかの例では、別のブロックチェーンからの特定のメッセージ、ここでは第2のブロックチェーンがそれらの条件を満たすときを定義するサブスクリプション条件のセットに関連付けられ得る。それらのサブスクリプション条件を実装するために、クロスチェーン相互作用エンドを使用することができる。特定のサブスクリプション条件が満たされているという決定に応答して、クロスチェーン相互作用エンドは、特定のサブスクリプション条件を満たす第2のブロックチェーンからメッセージを取得することができ、取得したメッセージを第1のブロックチェーンに提供する際に支援することができる。そうすることで、ブロックチェーン内の大量のブロックチェーンノードを、1つまたは複数の他のブロックチェーンにおいて監視されるサブスクリプション条件に基づいて調整することができる。
【０１０６】
いくつかの例では、クロスチェーン相互作用エンドがサブスクリプションクライアントに関連付けられている場合があり、サブスクリプションクライアントは、特定のサブスクリプション条件をブロックチェーン内の特定のノードにおいて監視できるようにするために、メッセージサブスクリプション機能を提供する。これらのサブスクリプション条件の特定のものが監視され、特定のメッセージによって満たされると決定された場合、サブスクリプションクライアントは、クロスチェーン相互作用エンドに関連してまたは組み合わせてそれらのメッセージを取得することができ、それらの条件に関連付けられる対応するブロックチェーンにそれらのメッセージを提供するチェーン間プロセスを可能にすることができる。いくつかの例では、サブスクリプションクライアントが単一のブロックチェーンノードに関連付けられてもよく、別の場合には、特定のサブスクリプションクライアントが複数のブロックチェーンノードに関連付けられて、対応する機能を維持してもよい。任意の数のサブスクリプションクライアントが、異なるブロックチェーンに含まれてもよく、関連付けられてもよい。
【０１０７】
いくつかの例では、サブスクリプションクライアントは、関連付けられるブロックチェーンノードに対応する1つまたは複数のメッセージキューを維持することができる。いくつかの例では、サブスクリプションクライアントはまた、1つまたは複数のメッセージキューでキューステータスを維持することができ、特定のメッセージキューのキューステータスを対応するクロスチェーン相互作用エンドに提供する(または、アクセス可能にする)ことができ、それによって、クロスチェーン相互作用エンドが、対応するメッセージキューから任意のメッセージを取得する必要があるかどうかを決定することを可能にする。
【０１０８】
いくつかの例では、サブスクリプション条件に対応する1つまたは複数のメッセージ獲得要求を、第2のブロックチェーンの特定のブロックチェーンノードに関連付けられるパブリッシングクライアントに提供できるという点で、1つまたは複数のパブリッシングクライアントが、サブスクリプションクライアントとは逆または反対の方法で使用され得る。パブリッシングクライアントは、それらのメッセージがサブスクリプション条件に一致するかどうかを決定するために、第2のブロックチェーン内で生成されたメッセージを分析することができる。それらの条件を満たす場合、そのメッセージを第1のブロックチェーンに返すか、提供することを可能にするために、パブリッシングクライアントは通知またはメッセージをクロスチェーン相互作用エンドに送信することができる。パブリッシングクライアントでこれを行う場合、パブリッシングクライアントによる発見または検出時に、任意の関連するメッセージをクロスチェーン相互作用エンドに送信または提供することができるため、メッセージキューは不要であり得る。この解決策は、パブリッシングクライアントに対する関係者の悪意のある行動を防止することができ、メッセージ送信プロセスにおける信頼性を向上させることができる。いくつかの例では、パブリッシングクライアントとサブスクリプションクライアントの両方が同じ相互作用の組合せにおいて使用され得る。
【０１０９】
図14の特定の実装形態を参照すると、1402において、サブスクリプション要求は、第1のブロックチェーン内のブロックチェーンノードによって、またはそれに関連付けられて、第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドに生成することができる。1402から、方法1400は1404に進む。
【０１１０】
1404において、第2のブロックチェーンからのメッセージは、サブスクリプション要求に基づいて、第1のブロックチェーン内のブロックチェーンノードによって取得される。1404から、方法1400は1406に進む。
【０１１１】
いくつかの例では、第2のブロックチェーン内のブロックチェーンノードによって取得されたメッセージは、サブスクリプション要求内で定義されたものなどの、第1のブロックチェーンノードの1つまたは複数のサブスクリプション条件を満たす、第2のブロックチェーン内でパブリッシュされるメッセージを備える。
【０１１２】
いくつかの例では、サブスクリプション要求は、クロスチェーン相互作用エンドに1つまたは複数のサブスクリプション条件を示すために使用される。サブスクリプション要求を使用するか、サブスクリプション要求に基づいて、クロスチェーン相互作用エンドは、サブスクリプション条件を満たす第2のブロックチェーン内でパブリッシュされるメッセージを取得する。次いで、取得したメッセージを、第1のブロックチェーンのブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューに追加することができる。
【０１１３】
1406において、メッセージに関連する動作は、第1のブロックチェーン内のブロックチェーンノードによって実施される。
【０１１４】
いくつかの例では、メッセージに関連する動作を実施するステップは、第1のブロックチェーンノードのブロックチェーンノードによって、取得したメッセージに関連するコントラクト動作を開始するステップを含むことができる。たとえば、コントラクト動作は、新しい受取人にある金額を送るなどの、実施されるべき新しい動作を含み得る。取得したメッセージが第1のブロックチェーンのブロックチェーンノードにおいて受信されると、対応するコントラクト動作が自動的に開始されるように、コントラクト動作はスマートコントラクトに関連付けられ得る。それぞれが異なるブロックチェーンに関連付けられる異なるアカウント間の転送の場合、異なるブロックチェーンに関連付けられるユーザ間の転送動作を遅延(たとえば、データ送信および処理において消費される通常の期間を除く、手動動作から)なしに確実に完了することができる。1406の後、方法1400は停止することができる。
【０１１５】
方法1400のいくつかの例では、第1のブロックチェーンのブロックチェーンノードは、サブスクリプションクライアントに対応する。それらの例では、サブスクリプションクライアントはメッセージキューのキューステータスを維持することができる。それらの例では、メッセージを取得することは、サブスクリプションクライアントによって、キューステータスをクロスチェーン相互作用エンドに送信することを含み得る。クロスチェーン相互作用エンドは、クロスチェーン相互作用エンドがキューステータスに基づいて、サブスクリプション条件を満たすメッセージをメッセージキューが含んでいないと決定するときに、サブスクリプション条件を満たす、第2のブロックチェーン内でパブリッシュされたメッセージを取得することができる。前述のように、サブスクリプション要求は1つまたは複数のサブスクリプション条件を備えることができる。いくつかの例では、サブスクリプション条件は、サブスクリプションクライアントとブロックチェーンノードとの間の1対1のマッピング関係を備える。
【０１１６】
いくつかの例では、第2のブロックチェーンはパブリッシングクライアントに対応する。
【０１１７】
本明細書で説明される実施形態および動作は、本明細書で開示される構造またはそれらの1つまたは複数の組合せを含む、デジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェアで実装することができる。動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶された、または他のソースから受信したデータに対してデータ処理装置によって実施される動作として実装することができる。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例として、前述のプログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または複数のもの、あるいは前述したものの組合せを含む、データを処理するための装置、デバイス、およびマシンを包含し得る。装置は、たとえば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)などの専用論理回路を含むことができる。装置はまた、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(たとえば、オペレーティングシステムまたはオペレーティングシステムの組合せ)、クロスプラットフォームのランタイム環境、仮想マシン、あるいはそれらの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々なコンピューティングモデルインフラストラクチャを実現することができる。
【０１１８】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイラ型またはインタープリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、またスタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットとしてなどを含む、任意の形式で展開することができる。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)を保持するファイルの一部、問題のプログラム専用の単一ファイル、または複数の調整ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行することができる。
【０１１９】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイスを含むか、あるいはそれらからデータを受信するか、それらにデータを転送するために、またはその両方のために、動作可能に結合される。コンピュータは、別のデバイス、たとえばモバイルデバイス、携帯情報端末(PDA)、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および光磁気ディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されてもよく、またはそれに組み込まれてもよい。
【０１２０】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、モバイル電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマート眼鏡)、人体に埋め込まれたデバイス(たとえば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含むことができる。モバイルデバイスは、ワイヤレスで(たとえば、無線周波数(RF)信号を使用して)様々な通信ネットワークと通信することができる(以下で説明する)。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含むことができる。センサは、カメラ、マイク、近接センサ、GPSセンサ、モーションセンサ、加速度計、環境光センサ、湿度センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよびセル無線)、熱センサ、または他のタイプのセンサを含むことができる。たとえば、カメラは、可動または固定レンズ、フラッシュ、画像センサ、および画像プロセッサを備えた前向きまたは後向きカメラを含むことができる。カメラは、顔および/または虹彩の認識のために詳細をキャプチャできるメガピクセルカメラであり得る。カメラとデータプロセッサ、およびメモリに記憶されているか、リモートでアクセスされる認証情報は、顔認識システムを形成することができる。顔認識システムあるいは1つまたは複数のセンサ、たとえば、マイク、モーションセンサ、加速度計、GPSセンサ、またはRFセンサをユーザ認証のために使用することができる。
【０１２１】
ユーザとの相互作用を提供するために、実施形態は、ディスプレイデバイスおよび入力デバイス、たとえば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびにタッチスクリーン、キーボード、およびユーザがコンピュータに入力を提供できるポインティングデバイスを有するコンピュータ上で実装することができる。ユーザとの相互作用を提供するために、他の種類のデバイスも使用することができ、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形式の感覚的フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信したリクエストに応じて、ユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【０１２２】
実施形態は、任意の形式または媒体のワイヤラインまたはワイヤレスのデジタルデータ通信(または、それらの組合せ)、たとえば通信ネットワークによって相互接続されたコンピューティングデバイスを使用して実装することができる。相互接続されたデバイスの例は、一般的に互いに離れており、通常は通信ネットワークを介して相互作用する、クライアントとサーバである。クライアント、たとえばモバイルデバイスは、サーバ自体を使用して、またはサーバを通じて、トランザクション自体を実行することができ、たとえば、購入、販売、支払い、贈与、送信、ローンのトランザクションを実行したり、トランザクションを承認したりできる。そのようなトランザクションは、アクションと応答が時間的に近接するようにリアルタイムであり得、たとえば、個人がアクションと応答が実質的に同時に発生していることを認識し、個人のアクション後の応答の時間差が1ミリ秒(ms)未満または1秒(s)未満、あるいは応答がシステムの処理制限を考慮に入れて意図的な遅延がない。
【０１２３】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せのすべてまたは一部を含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、または他のプロトコル、あるいはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信することができる。通信ネットワークは、接続されたコンピューティングデバイス間で音声、ビデオ、生体認証、認証データ、または他の情報を送信することができる。
【０１２４】
個別の実装形態として説明された機能は、組み合わせて、単一の実装形態において実装することができ、一方、単一の実装形態として説明された機能は、複数の実装形態において、個別に、または任意の適切なサブコンビネーションにおいて実装され得る。特定の順序で説明および主張されている動作は、特定の順序を必要とする、またはすべての図示された動作が実施される必要があると理解されるべきではない(一部の動作は任意であり得る)。必要に応じて、マルチタスクまたは並列処理(または、マルチタスクおよび並列処理の組合せ)を実施することができる。
【符号の説明】
【０１２５】
902  プロセッサ
904  内部バス
906  ネットワークインターフェース
908  メモリ
910  不揮発性メモリ
1001  獲得ユニット
1002  実行ユニット
1101  メッセージ獲得ユニット
1102  メッセージ提供ユニット
1103  維持ユニット
1104  要求受信ユニット
1105  検証ユニット
1201  獲得ユニット
1202  提供ユニット
1203  クエリユニット
1204  受信ユニット
1301  獲得ユニット
1302  送信ユニット
1400  方法
【図１】
2021507336.tif 000003
【図２】
2021507336.tif 000004
【図３】
2021507336.tif 000005
【図４】
2021507336.tif 000006
【図５】
2021507336.tif 000007
【図６】
2021507336.tif 000008
【図７】
2021507336.tif 000009
【図８】
2021507336.tif 000010
【図９】
2021507336.tif 000011
【図１０】
2021507336.tif 000012
【図１１】
2021507336.tif 000013
【図１２】
2021507336.tif 000014
【図１３】
2021507336.tif 000015
【図１４】
2021507336.tif 000016
【手続補正書】
【提出日】令和2年8月14日(2020.8.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
第1のブロックチェーン内の第1のブロックチェーンノードによって、前記第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドへのサブスクリプション要求を生成するステップと、
第2のブロックチェーンノードによって、前記サブスクリプション要求に基づいて、前記第2のブロックチェーンからのメッセージを取得するステップであって、前記メッセージが、前記第2のブロックチェーン内でパブリッシュされるとともに、前記第2のブロックチェーンノードのサブスクリプション条件を満たす、ステップと、
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連する動作を実行するステップとを含み、
前記クロスチェーン相互作用エンドが、前記メッセージを取得して、前記第2のブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューに追加することができるように、前記サブスクリプション要求が、前記サブスクリプション条件を前記クロスチェーン相互作用エンドに示す、
コンピュータで実行される方法。
【請求項２】
前記第1のブロックチェーンの前記第1のブロックチェーンノードが、 サブスクリプションクライアントに対応する、
請求項１に記載のコンピュータで実行される方法。
【請求項３】
前記サブスクリプションクライアントによって、前記メッセージキューのキューステータスを維持するステップをさらに含む、
請求項２に記載のコンピュータで実行される方法。
【請求項４】
前記メッセージを取得するステップが、
前記クロスチェーン相互作用エンドが、前記キューステータスに基づいて、前記メッセージキューが前記サブスクリプション条件を満たすメッセージを含まないと判定した場合に、前記クロスチェーン相互作用エンドが、前記第2のブロックチェーン内でパブリッシュされるとともに前記サブスクリプション条件を満たすメッセージを取得することができるように、前記サブスクリプションクライアントによって、前記キューステータスを前記クロスチェーン相互作用エンドに送信するステップを含む、
請求項３に記載のコンピュータで実行される方法。
【請求項５】
前記サブスクリプション条件が、サブスクリプションクライアントとブロックチェーンノードとの間の1対1のマッピング関係を含む、
請求項１に記載のコンピュータで実行される方法。
【請求項６】
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連する動作を実行するステップが、
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連するコントラクト動作を開始するステップを含む、
請求項１に記載のコンピュータで実行される方法。
【請求項７】
前記第2のブロックチェーンが、パブリッシングクライアントに対応する、
請求項１に記載のコンピュータで実行される方法。
【請求項８】
以下の動作を実行するために、コンピュータシステムによって実行可能な1つまたは複数の命令を記憶している非一時的コンピュータ可読記憶媒体であって、前記動作が、
第1のブロックチェーン内の第1のブロックチェーンノードによって、前記第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドへのサブスクリプション要求を生成するステップと、
第2のブロックチェーンノードによって、前記サブスクリプション要求に基づいて、前記第2のブロックチェーンからのメッセージを取得するステップであって、前記メッセージが、前記第2のブロックチェーン内でパブリッシュされるとともに、前記第2のブロックチェーンノードのサブスクリプション条件を満たす、ステップと、
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連する動作を実行するステップとを含み、
前記クロスチェーン相互作用エンドが、前記メッセージを取得して、前記第2のブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューに追加することができるように、前記サブスクリプション要求が、前記サブスクリプション条件を前記クロスチェーン相互作用エンドに示す、
非一時的コンピュータ可読記録媒体。
【請求項９】
前記第1のブロックチェーンの前記第1のブロックチェーンノードが、 サブスクリプションクライアントに対応する、
請求項８に記載の非一時的コンピュータ可読記録媒体。
【請求項１０】
前記動作が、
前記サブスクリプションクライアントによって、前記メッセージキューのキューステータスを維持するステップをさらに含み、
前記メッセージを取得するステップが、
前記クロスチェーン相互作用エンドが、前記キューステータスに基づいて、前記メッセージキューが前記サブスクリプション条件を満たすメッセージを含まないと判定した場合に、前記クロスチェーン相互作用エンドが、前記第2のブロックチェーン内でパブリッシュされるとともに前記サブスクリプション条件を満たすメッセージを取得することができるように、前記サブスクリプションクライアントによって、前記キューステータスを前記クロスチェーン相互作用エンドに送信するステップを含む、
請求項９に記載の非一時的コンピュータ可読記録媒体。
【請求項１１】
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連する動作を実行するステップが、
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連するコントラクト動作を開始するステップを含む、
請求項８に記載の非一時的コンピュータ可読記録媒体。
【請求項１２】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータと相互動作可能に結合された1つまたは複数のコンピュータメモリデバイスであって、前記1つまたは複数のコンピュータによって実行された場合に1つまたは複数の動作を実行するための1つまたは複数の命令を記憶している、有形の非一時的マシン可読記憶媒体を有する1つまたは複数のコンピュータメモリデバイスとを含む、
コンピュータで実装されるシステムであって、前記動作が、
第1のブロックチェーン内の第1のブロックチェーンノードによって、前記第1のブロックチェーンと第2のブロックチェーンとの間のクロスチェーン相互作用エンドへのサブスクリプション要求を生成するステップと、
第2のブロックチェーンノードによって、前記サブスクリプション要求に基づいて、前記第2のブロックチェーンからのメッセージを取得するステップであって、前記メッセージが、前記第2のブロックチェーン内でパブリッシュされるとともに、前記第2のブロックチェーンノードのサブスクリプション条件を満たす、ステップと、
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連する動作を実行するステップとを含み、
前記クロスチェーン相互作用エンドが、前記メッセージを取得して、前記第2のブロックチェーンノードに対応するサブスクリプションクライアントによって維持されるメッセージキューに追加することができるように、前記サブスクリプション要求が、前記サブスクリプション条件を前記クロスチェーン相互作用エンドに示す、
コンピュータで実装されるシステム。
【請求項１３】
前記サブスクリプション条件が、サブスクリプションクライアントとブロックチェーンノードとの間の1対1のマッピング関係を含む、
請求項８に記載の非一時的コンピュータ可読記録媒体。
【請求項１４】
前記第2のブロックチェーンが、パブリッシングクライアントに対応する、
請求項８に記載の非一時的コンピュータ可読記録媒体。
【請求項１５】
前記第1のブロックチェーンの前記第1のブロックチェーンノードが、サブスクリプションクライアントに対応する、
請求項１２に記載のコンピュータで実装されるシステム。
【請求項１６】
前記動作が、
前記サブスクリプションクライアントによって、前記メッセージキューのキューステータスを維持するステップをさらに含み、
前記メッセージを取得するステップが、
前記クロスチェーン相互作用エンドが、前記キューステータスに基づいて、前記メッセージキューが前記サブスクリプション条件を満たすメッセージを含まないと判定した場合に、前記クロスチェーン相互作用エンドが、前記第2のブロックチェーン内でパブリッシュされるとともに前記サブスクリプション条件を満たすメッセージを取得することができるように、前記サブスクリプションクライアントによって、前記キューステータスを前記クロスチェーン相互作用エンドに送信するステップを含む、
請求項１５に記載のコンピュータで実装されるシステム。
【請求項１７】
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連する動作を実行するステップが、
前記第2のブロックチェーンノードによって、前記取得されたメッセージに関連するコントラクト動作を開始する動作を含む
請求項１２に記載のコンピュータで実装されるシステム。
【請求項１８】
前記第2のブロックチェーンが、パブリッシングクライアントに対応する、
請求項１２に記載のコンピュータで実装されるシステム。
【請求項１９】
前記サブスクリプション条件が、サブスクリプションクライアントとブロックチェーンノードとの間の1対1のマッピング関係を含む、
請求項１２に記載のコンピュータで実装されるシステム。
【国際調査報告】
2021507336.tif 000017
2021507336.tif 000018