(57)【要約】  本明細書の実施形態は、ブロックチェーンベースのスマートコントラクト呼び出し処理を開示する。実施形態において、スマートコントラクトの呼び出しを開始するために使用される呼び出しデータを有するターゲットトランザクションが受信され、ターゲットトランザクションは呼び出しデータを含み、呼び出しデータの少なくとも一部が、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む。データダイジェストに対応するターゲットデータが第三者ストレージシステムからクエリされる。実行条件が満たされるか否かを判定することによって、ターゲットデータについてのコンテンツの検証が実行される。ターゲットデータについての検証が成功したとの決定に応答して、スマートコントラクトが呼び出され、ターゲットトランザクションの呼び出しデータについてのスマートコントラクト計算が実行される。スマートコントラクト計算が完了した後、ブロックチェーンの分散データベースに計算結果が格納される。
2021512379.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンベースのスマートコントラクト呼び出しのための方法であって、
スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信するステップであって、前記ターゲットトランザクションは呼び出しデータを含み、前記呼び出しデータの少なくとも一部が、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む、ステップと、
前記第三者ストレージシステムから前記データダイジェストに対応する前記ターゲットデータをクエリするステップと、
実行条件が満たされるか否かを判定することによって、前記ターゲットデータについてコンテンツの検証を実行するステップと、
前記ターゲットデータについての前記検証が成功したとの決定に応答して、前記スマートコントラクトを呼び出して、前記ターゲットトランザクションの前記呼び出しデータについてスマートコントラクト計算を実行するステップと、
前記スマートコントラクト計算が完了した後、前記ブロックチェーンの分散データベースに計算結果を格納するステップと、
を備える方法。
【請求項２】
前記第三者ストレージシステムは、前記ターゲットデータと前記ターゲットデータの前記データダイジェストとの間のマッピング関係を格納する、請求項1に記載の方法。
【請求項３】
前記第三者ストレージシステムから前記データダイジェストに対応する前記ターゲットデータをクエリするステップは、
クエリインデックスとして前記データダイジェストを使用することによって前記第三者ストレージシステムへのクエリを開始して、前記データダイジェストに対応する前記ターゲットデータをクエリするステップ
を備える、請求項2に記載の方法。
【請求項４】
前記ターゲットデータについて前記コンテンツの前記検証を実行するステップは、
所定のダイジェストアルゴリズムに基づいて前記ターゲットデータのデータダイジェストを計算するステップと、
前記計算したデータダイジェストが前記ターゲットトランザクションの前記ターゲットデータの前記データダイジェストに一致するか否かを判定するステップと、
前記計算したデータダイジェストが前記ターゲットトランザクションの前記ターゲットデータの前記データダイジェストに一致したとの決定に応答して、前記ターゲットデータについての前記検証が成功したと決定するステップと
を備える、請求項1に記載の方法。
【請求項５】
前記第三者ストレージシステムは、集中型連想記憶CASシステムまたは分散型CASシステムを備える、請求項1に記載の方法。
【請求項６】
前記ブロックチェーンは、複数のメンバブロックチェーンを含むコンソーシアムブロックチェーンの任意のメンバブロックチェーンである、請求項1に記載の方法。
【請求項７】
前記第三者ストレージシステムは、前記コンソーシアムブロックチェーンの前記ブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである、請求項6に記載の方法。
【請求項８】
前記第三者ストレージシステムは、集中型の連想記憶システムまたは非集中型の分散システムを備える、請求項1に記載の方法。
【請求項９】
前記第三者ストレージシステムは、前記ブロックチェーンに展開され、オブジェクト・ストレージ・サービス・アーキテクチャに従って前記ブロックチェーンの各メンバと相互接続された分散システムを備える、請求項8に記載の方法。
【請求項１０】
トランザクションキューの中の前記ターゲットトランザクションについてコンセンサス処理を実行するステップ
をさらに備える、請求項1に記載の方法。
【請求項１１】
前記コンセンサス処理を実行するステップが、コンセンサスアルゴリズムに基づく、請求項10に記載の方法。
【請求項１２】
前記コンセンサスアルゴリズムが、PBFT(Practical Byzantine Fault Tolerance)アルゴリズムを備える、請求項11に記載の方法。
【請求項１３】
ブロックチェーンベースのスマートコントラクト呼び出しのための装置であって、請求項1〜12のいずれか一項に記載の方法を実行するように構成された複数のモジュールを備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、参照によりその全体が本明細書に組み込まれる、2018年6月27日に出願された中国特許出願201810681249.1の優先権を主張する。
【０００２】
本明細書の1つまたは複数の実施形態は、ブロックチェーン技術の分野に関し、特に、ブロックチェーンベースのスマートコントラクト呼び出し方法および装置、および電子デバイスに関する。
【背景技術】
【０００３】
分散台帳技術とも称される、ブロックチェーン技術は、完全な分散データベースを共同で維持するためにいくつかのコンピューティングデバイスが「アカウンティング」に共同で参加する注目の技術である。ブロックチェーン技術は、分散化と透明性により特徴付けられ、各コンピューティングデバイスはデータベースにデータを記録でき、コンピューティングデバイス間でデータを迅速に同期できる。従って、ブロックチェーン技術は多くの分野に広く適用されている。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、ブロックチェーンベースのスマートコントラクト呼び出し方法を提供し、方法は、スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信するステップであって、ターゲットトランザクションは呼び出しデータを含み、呼び出しデータの少なくとも一部が、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む、ステップと、第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリするステップと、ターゲットデータについてコンテンツの検証を実行するステップと、ターゲットデータについての検証が成功した場合、スマートコントラクトを呼び出して、ターゲットトランザクションの呼び出しデータについてスマートコントラクト計算を実行するステップと、スマートコントラクト計算が完了した後、ブロックチェーンの分散データベースに計算結果を格納するステップと、を備える。
【０００５】
任意選択で、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を格納し、第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリするステップは、クエリインデックスとしてデータダイジェストを使用することによって第三者ストレージシステムへのクエリを開始して、データダイジェストに対応するターゲットデータをクエリするステップを備える。
【０００６】
任意選択で、ターゲットデータについてコンテンツの検証を実行するステップは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算するステップと、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致するか否かを判定するステップと、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致した場合、ターゲットデータについての検証が成功したと決定するステップとを備える。
【０００７】
任意選択で、第三者ストレージシステムは、集中型連想記憶CASシステムまたは分散型CASシステムを備える。
【０００８】
任意選択で、ブロックチェーンは、複数のメンバブロックチェーンを含むコンソーシアムブロックチェーンの任意のメンバブロックチェーンである。
【０００９】
任意選択で、第三者ストレージシステムは、コンソーシアムブロックチェーンのブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。
【００１０】
本明細書はさらに、ブロックチェーンベースのスマートコントラクト呼び出し装置を提供し、装置は、スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信するように構成された受信モジュールであって、ターゲットトランザクションは呼び出しデータを含み、呼び出しデータの少なくとも一部が、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む、受信モジュールと、第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリし、ターゲットデータについてコンテンツの検証を実行するように構成されたクエリモジュールと、ターゲットデータについての検証が成功した場合、スマートコントラクトを呼び出して、ターゲットトランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後、ブロックチェーンの分散データベースに計算結果を格納するように構成された呼び出しモジュールとを備える。
【００１１】
任意選択で、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を格納し、クエリモジュールは、クエリインデックスとしてデータダイジェストを使用することによって第三者ストレージシステムへのクエリを開始して、データダイジェストに対応するターゲットデータをクエリするように構成される。
【００１２】
任意選択で、クエリモジュールは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算し、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致するか否かを判定し、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致した場合、ターゲットデータについての検証が成功したと決定するようにさらに構成される。
【００１３】
任意選択で、第三者ストレージシステムは、集中型連想記憶CASシステムまたは分散型CASシステムを備える。
【００１４】
任意選択で、ブロックチェーンは、複数のメンバブロックチェーンを含むコンソーシアムブロックチェーンの任意のメンバブロックチェーンである
【００１５】
任意選択で、第三者ストレージシステムは、コンソーシアムブロックチェーンのブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。
【００１６】
本明細書はさらに、プロセッサとマシン実行可能命令を格納するように構成されたメモリとを備える電子デバイスをさらに提供し、メモリに格納され、ブロックチェーンベースのスマートコントラクト呼び出しの制御ロジックに対応するマシン実行可能命令を読み出して実行することによって、プロセッサは、スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信することであって、ターゲットトランザクションは呼び出しデータを含み、呼び出しデータの少なくとも一部が、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む、ことと、第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリすることと、ターゲットデータについてコンテンツの検証を実行することと、ターゲットデータについての検証が成功した場合、スマートコントラクトを呼び出して、ターゲットトランザクションの呼び出しデータについてスマートコントラクト計算を実行することと、スマートコントラクト計算が完了した後、ブロックチェーンの分散データベースに計算結果を格納することとを行うように構成される。
【００１７】
前述の実施によれば、スマートコントラクトの呼び出しを開始するために使用されるトランザクションは、第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含み、それにより、ブロックチェーンのトランザクションを受信するノードデバイスは、データダイジェストに基づいて第三者ストレージシステムから対応するターゲットデータをクエリし、ターゲットデータについてコンテンツ検証を実行し、ターゲットデータについての検証が成功した後に、スマートコントラクトを呼び出してトランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後に、ブロックチェーンの分散データベースに計算結果を格納することができる。したがって、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータは、スマートコントラクトの呼び出しを開始するために使用されるトランザクションの呼び出しデータとして参照され、第三者ストレージシステムに格納されたターゲットデータのオリジナルコンテンツをブロックチェーンの各ノードデバイスと同期することによって生じるブロックチェーン・データ・ストレージの冗長性を軽減する。
【図面の簡単な説明】
【００１８】
【図１】例示的な実施形態による、ブロックチェーンベースのスマートコントラクト呼び出し方法を示すフローチャートである。
【図２】例示的な実施形態による、コンソーシアムブロックチェーンを示す概略的構造図である。
【図３】例示的な実施形態による、電子デバイスを示す概略的構造図である。
【図４】例示的な実施形態による、ブロックチェーンベースのスマートコントラクト呼び出し装置を示すブロック図である。
【発明を実施するための形態】
【００１９】
ブロックチェーンの従来のスマートコントラクト呼び出しプロセスでは、スマートコントラクトを呼び出すために必要とされる呼び出しデータ(すなわち、スマートコントラクトに入力される呼び出しパラメータ)は通常、ブロックチェーンの分散データベース(すなわち、分散台帳)に格納されたデータコンテンツから取得され、外部メモリに格納されたデータコンテンツは参照され得ない。したがって、ブロックチェーンネットワークの各ノードデバイスがスマートコントラクトを呼び出すときのスマートコントラクト計算のために使用される呼び出しデータは通常、チェーンから取得され、それにより「閉鎖データ使用ループ」を形成する。
【００２０】
しかしながら、本明細書は、第三者ストレージプラットフォームに格納された不変のデータコンテンツが、スマートコントラクトが呼び出されるときにトランザクションコンテンツとして参照され、ブロックチェーンの「閉鎖データ使用ループ」を壊すという技術的解決策を開示することを目的とする
【００２１】
実施形態では、ブロックチェーンは、事前に第三者ストレージシステムと相互接続され、第三者ストレージシステムは、ブロックチェーンに展開されたスマートコントラクトに参照され得るいくつかの不変のデータコンテンツを事前に格納できる。
【００２２】
スマートコントラクトの呼び出しを開始すると、ブロックチェーンにアクセスするメンバユーザは、第三者ストレージシステムに格納されたデータコンテンツのデータダイジェストを、スマートコントラクトの呼び出しを開始するために使用されるトランザクションに追加でき、第三者ストレージシステムに格納されたデータコンテンツを呼び出しデータとして参照する。
【００２３】
メンバユーザによって発行されたトランザクションを受信すると、ブロックチェーンのノードデバイスは、データダイジェストに基づいて第三者ストレージシステムへのクエリを開始でき、データダイジェストに対応するデータコンテンツをクエリし、識別されたデータコンテンツについてコンテンツの検証を実行できる。コンテンツの検証が成功すると、ノードデバイスは、スマートコントラクトを呼び出してスマートコントラクト内に宣言されたスマートコントラクトプログラムを宣言し、トランザクションの完全な呼び出しデータについてスマートコントラクト計算を実行でき、スマートコントラクト計算が完了した後にブロックチェーンの分散データベースに計算結果を格納できる。
【００２４】
前述の実施形態では、スマートコントラクトの呼び出しを開始するために使用されるトランザクションは、第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含み、その結果、ブロックチェーンのトランザクションを受信するノードデバイスは、データダイジェストに基づいて第三者ストレージシステムに対応するターゲットデータをクエリし、ターゲットデータについてコンテンツ検証を実行し、ターゲットデータについての検証が成功した後、スマートコントラクトを呼び出してトランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後、ブロックチェーンの分散データベースに計算結果を格納できる。したがって、ブロックチェーンと相互接続された第三者ストレージシステムに格納されたターゲットデータは、スマートコントラクトの呼び出しを開始するために使用されるトランザクションの呼び出しデータとして参照され、第三者ストレージシステムに格納されたターゲットデータのオリジナルコンテンツをブロックチェーンの各ノードデバイスに同期することによって生じるブロックチェーン・データ・ストレージの冗長性を軽減する。
【００２５】
以下は、適用シナリオを参照して実施形態を使用して本明細書について説明する。
【００２６】
図1を参照すると、図1は、本明細書の実施形態による、ブロックチェーンベースのスマートコントラクト呼び出し方法を示す。方法は、ブロックチェーンのノードデバイスに適用され、以下のステップを含む。
【００２７】
ステップ102:スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信し、ターゲットトランザクションは呼び出しデータを含み、呼び出しデータの少なくとも一部は、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む。
【００２８】
ステップ104:第三者ストレージシステムにデータダイジェストに対応するターゲットデータをクエリし、ターゲットデータについてコンテンツの検証を実行する。
【００２９】
ステップ106:ターゲットデータについての検証が成功する場合、スマートコントラクトを呼び出してターゲットトランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後、ブロックチェーンの分散データベースに計算結果を格納する。
【００３０】
本明細書に説明されるブロックチェーンは、ブロックチェーンと相互接続された第三者ストレージシステムに格納された不変のデータコンテンツが、サポートされたスマートコントラクトによって呼び出しデータとして参照され得る任意のタイプのブロックチェーンを含むことができる。
【００３１】
例えば、シナリオでは、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーンの任意のメンバブロックチェーンであってよい。コンソーシアムブロックチェーンでは、別のメンバブロックチェーンに格納されたデータコンテンツが、各メンバブロックチェーンによってサポートされる各スマートコントラクトによって呼び出しデータとして複数チェーンにわたって参照され得る。
【００３２】
第三者ストレージシステムは、ブロックチェーンのために信頼できるデータストレージサービスを提供できる連想記憶(CAS)プラットフォームを含む。コンテンツのアドレス指定能力は、ストレージシステムのデータ・ストレージ・オフセットではなく、データコンテンツに基づいてアドレス指定が実行されることを意味する。
【００３３】
CASプラットフォーム上では、格納されたデータコンテンツのデータダイジェストが、オリジナルのデータコンテンツのクエリインデックスとして使用され、クエリインデックスとオリジナルのデータコンテンツとの間のマッピング関係が格納され、その結果、データクエリの当事者は、クエリインデックスとしてデータダイジェストを使用することによってCASプラットフォームから対応するオリジナルのデータコンテンツをクエリできる。
【００３４】
例えば、実施形態では、データダイジェストは、データコンテンツについてハッシュ計算を実行することによって取得されるハッシュ値であってよい。データクエリの当事者は、クエリインデックスとしてハッシュ値を使用して、CASプラットフォームからハッシュ値に対応するオリジナルのデータコンテンツをクエリできる。
【００３５】
実際の適用では、第三者ストレージシステムは、従来の集中型の連想記憶(CAS)システムを含み得るし、非集中型の分散型CASシステムを含み得る。
【００３６】
例えば、シナリオでは、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーンの任意のメンバブロックチェーンであってよい。加えて、第三者ストレージシステムは、コンソーシアムブロックチェーンに展開された分散システムであってよく、オブジェクトストレージサービス(OSS)アーキテクチャなど、コンソーシアムブロックチェーンの各メンバブロックチェーンと相互接続され得る。
【００３７】
代わりに、別の例では、コンソーシアムブロックチェーンのブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンが、ブロックチェーンと相互接続された第三者ストレージシステムとして使用され得、メンバブロックチェーン間のクロスチェーンデータ参照を実施する。言い換えると、第三者ストレージシステムは、ブロックチェーンとのクロスチェーンデータ参照関係を有する別のブロックチェーンであり得る。本明細書の技術的解決策は、「第三者ストレージシステムの展開」、「呼び出しデータの参照」、および「スマートコントラクトの呼び出しおよび実行」を参照して、ブロックチェーンがいくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーンのメンバブロックチェーンである例を使用して、以下に詳細に説明される。
【００３８】
(1)第三者ストレージシステムの展開
【００３９】
本明細書では、オペレータは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーンを事前に確立できる。コンソーシアムブロックチェーンでは、各メンバブロックチェーンは、コンソーシアムブロックチェーンのコンソーシアムメンバである。前述のブロックチェーンは、コンソーシアムブロックチェーンの任意のメンバブロックチェーンであってよい。
【００４０】
コンソーシアムブロックチェーンのオペレータは、コンソーシアムブロックチェーンの第三者ストレージシステムをさらに展開できる。第三者ストレージシステムは、コンソーシアムブロックチェーンの各メンバブロックチェーンと相互接続され、各メンバブロックチェーンのために信頼できるデータストレージサービスを提供する。
【００４１】
例えば、第三者ストレージシステムは、各メンバブロックチェーンのために常に信頼できるAPIアクセスインターフェースを提供でき、その結果、コンソーシアムブロックチェーン中の各メンバブロックチェーンは、APIアクセスインターフェースにアクセスすることによって第三者ストレージシステムに相互接続され得る。
【００４２】
コンソーシアムブロックチェーンの第三者ストレージシステムでは、グローバルな第三者ストレージシステムが、コンソーシアムブロックチェーンのために展開され得るか、独立した第三者ストレージシステムが、コンソーシアムブロックチェーン中の各メンバブロックチェーンに対して展開され得る。実施形態は、本明細書では限定されない。
【００４３】
本明細書では、第三者ストレージシステムは、コンテンツのアドレス指定能力をサポートするCASシステムであってよい。実際の適用では、第三者ストレージシステムは、従来の集中型CASシステムであるか、分散型CASシステムであってよい。
【００４４】
分散型CASシステムは、従来の集中型の分散システムと非集中型の分散システムを含み得る。
【００４５】
示される実施形態では、第三者ストレージシステムは、コンソーシアムブロックチェーンに展開されたOSSアーキテクチャベースの集中型の分散システムなどであってよく、コンソーシアムブロックチェーン中の各メンバブロックチェーンと相互接続され得る。
【００４６】
示される別の実施形態では、第三者ストレージシステムは、非集中型の分散システムであってよい。実施形態では、ブロックチェーンとのクロスチェーンデータ参照関係を有するコンソーシアムブロックチェーン中の別のメンバブロックチェーンが、ブロックチェーンと相互接続された第三者ストレージシステムとして使用され得る。言い換えると、コンソーシアムブロックチェーン中の任意のメンバブロックチェーンは、別のメンバブロックチェーンと相互接続された第三者ストレージシステムとして使用され、クロスチェーンデータ参照を実施できる。
【００４７】
例えば、シナリオでは、オペレータは、実際のサービス要件に基づいてコンソーシアムブロックチェーンを確立でき、コンソーシアムブロックチェーン中のメンバブロックチェーンに異なるサービス役割を割り当てることができる。具体的には、コンソーシアムブロックチェーンは完全なサービスプロセスに対応し、各メンバブロックチェーンは完全なサービスプロセスのうちの一つのサブプロセスに対応できる。
【００４８】
「オンライン住宅賃貸トランザクション」というサービス要件に基づいてオペレータによって確立されたコンソーシアムブロックチェーンが、例として使用され、コンソーシアムブロックチェーンを形成する各メンバブロックチェーンが、「トランザクションチェーン」、「認証チェーン」、および「データチェーン」を含むことができる。「トランザクションチェーン」、「認証チェーン」、および「データチェーン」は、「オンライン住宅賃貸トランザクション」のサービスプロセスの一つのサブプロセスに個別に対応できる。例えば、「データチェーン」は、住宅賃貸ユーザの実名のデータを維持するために使用され、「認証チェーン」は、ユーザ固有の住宅賃貸の実名の認証を完了するために使用され、「トランザクションチェーン」は、オンラインの住宅賃貸トランザクションを完了するために使用される。
【００４９】
次いで、オペレータは、メンバブロックチェーン間の単方向クロスチェーンデータ参照関係に基づいて、サービスレベルで有向非巡回グラフ(DAG)トポロジのトポロジ図としてコンソーシアムブロックチェーンを確立できる。
【００５０】
メンバブロックチェーン間の単方向クロスチェーンデータ参照関係は通常、実際のサービス要件に依存し、本明細書では限定されないことに留意すべきである。
【００５１】
例えば、図2を参照すると、図2は、例に示されたDAG構造のコンソーシアムブロックチェーンを示す概略図である。
【００５２】
図2に示すように、「オンライン住宅賃貸トランザクション」というサービス要件に基づいてオペレータによって確立されたコンソーシアムブロックチェーンが例として使用され、コンソーシアムブロックチェーンを形成する各メンバブロックチェーンが、「トランザクションチェーン」、「認証チェーン」、および「データチェーン」を含むことができる。「データチェーン」は、住宅賃貸ユーザの実名のデータを維持するために使用され、ユーザは、「データチェーン」にトランザクションを発行することによって「データチェーン」の分散データベースに実名のデータを格納できる。「認証チェーン」は、「データチェーン」に発行されたユーザの実名のデータを参照するために使用され、ユーザ固有の住宅賃貸実名認証を検証し、ユーザは、「認証チェーン」にトランザクションを発行することによって実名の認証を完了でき、「認証チェーン」の分散データベースに実名認証結果を発行できる。「トランザクションチェーン」が、「認証チェーン」に発行されたユーザ固有の実名認証結果を参照するために使用され、その結果、ユーザは、「トランザクションチェーン」にトランザクションを発行することによってオンライン住宅賃貸トランザクションを完了でき、「認証チェーン」の分散データベースにトランザクション結果を発行できる。
【００５３】
コンソーシアムブロックチェーン中の任意のターゲット・メンバ・ブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンは、ターゲット・メンバ・ブロックチェーンに相互接続された分散型ストレージプラットフォームとして使用される。
【００５４】
メンバブロックチェーン間のクロスチェーンデータ参照は、サービスレベルで実施され得る。
【００５５】
加えて、第三者ストレージシステムとして使用されるメンバブロックチェーンは、展開されたスマートコントラクトを呼び出して実行し、第三者ストレージシステムに格納されたターゲットデータがスマートコントラクト計算のために使用される呼び出しデータ中に参照される場合、参照されたターゲットデータのオリジナルコンテンツは、ターゲット・メンバ・ブロックチェーンの各ノードデバイスともはや同期される必要がなく、ターゲット・メンバ・ブロックチェーンはもはや参照されるターゲットデータのオリジナルコンテンツを格納する必要がない。
【００５６】
したがって、ターゲット・メンバ・ブロックチェーンはもはや、ターゲット・メンバ・ブロックチェーンおよび第三者ストレージシステムとして使用されるメンバブロックチェーンから同期された参照されるターゲットデータに格納された、ターゲットデータのオリジナルコンテンツ間の追加のデータ関係をセットアップする必要はなく、参照されるターゲットデータのデータダイジェストを使用することによってのみ2つの異なるブロックチェーンの参照されるターゲットデータ間のデータ関係を実施でき、それによって、ターゲット・メンバ・ブロックチェーンに展開されたスマートコントラクトにおいて参照されるターゲットデータが、第三者ストレージシステムとして使用されるメンバブロックチェーンに格納された参照されるターゲットデータを用いたサービスセマンティクスの点で一致することを確実にする。
【００５７】
(2)呼び出しデータの参照
【００５８】
本明細書では、コンソーシアムブロックチェーンにアクセスする必要のあるユーザは、事前にコンソーシアムブロックチェーンにユーザ登録を実行でき、コンソーシアムブロックチェーンによって返される公開鍵と秘密鍵のペアを取得する。登録が完了した後、コンソーシアムブロックチェーンは、ユーザのために対応するアカウントオブジェクトを作成できる。
【００５９】
登録を完了したユーザは、コンソーシアムブロックチェーンの各メンバブロックチェーンによって提供されるAPIインターフェースを使用することによって各メンバブロックチェーンにアクセスでき、所有する秘密鍵に基づいて署名されたトランザクションを各メンバブロックチェーンに発行でき、各メンバブロックチェーンに展開されたスマートコントラクトを呼び出す。
【００６０】
図2に示されたコンソーシアムブロックチェーンの「トランザクションチェーン」が例として使用される。コンソーシアムブロックチェーンのオペレータは、「トランザクションチェーン」に、オンライン住宅賃貸アカウンティングを完了するために使用されるスマートコントラクトを発行でき、ユーザは、「トランザクションチェーン」にトランザクションを発行でき、スマートコントラクトの呼び出しをトリガして、オンライン住宅賃貸トランザクションアカウンティングを完了する。
【００６１】
コンソーシアムブロックチェーンのオペレータがコンソーシアムブロックチェーンにスマートコントラクトを展開する詳細プロセスは、本明細書では簡潔にするために省略する。本明細書に説明される技術的な解決策を実施する際、当業者は関連する技術的記録を参照できる。
【００６２】
例えば、コンソーシアムブロックチェーンにアクセスする複数のメンバは、共同でスマートコントラクトにネゴシエートし、スマートコントラクト内の展開されたスマートコントラクトプログラム(例えば、呼び出され得るいくつかの機能に関連するプログラムコード)を宣言し、次いでコンソーシアムブロックチェーンにスマートコントラクトを発行し、その結果、コンソーシアムブロックチェーンのノードデバイスは、コンセンサスプロセスを実行し、コンセンサスが達成された後、コンソーシアムブロックチェーンの分散データベースにスマートコントラクトを記録および格納して、スマートコントラクトの展開を完了する。
【００６３】
本明細書では、コンソーシアムブロックチェーンのオペレータは、コンソーシアムブロックチェーンにアクセスするメンバユーザのためにクライアントソフトウェア(例えば、APP)を展開でき、メンバユーザが、クライアントソフトウェアを使用することによって、コンソーシアムブロックチェーンによってサポートされる標準のトランザクションフォーマットに基づいてトランザクションデータを組み立て、各メンバブロックチェーンによって提供されたAPIインターフェースを呼び出すことによって、組み立てたトランザクションデータをメンバユーザによって指定されるコンソーシアムブロックチェーンのターゲット・メンバ・ブロックチェーンに発行して、ターゲット・メンバ・ブロックチェーンに展開されるスマートコントラクトの呼び出しを開始する。
【００６４】
クライアントソフトウェアを使用することによってメンバユーザによって組み立てられたトランザクションデータは、メンバユーザによって提供される呼び出しデータを含むことができ、呼び出しデータは、スマートコントラクトへの入力である呼び出しパラメータとして使用される。少なくとも呼び出しデータの一部がデータダイジェストによって置き換えられ得る。
【００６５】
示される実施形態では、メンバユーザは、クライアントソフトウェアを使用することによって、ターゲット・メンバ・ブロックチェーンにおいて実行される必要のあるトランザクションデータを組み立てるとき、メンバユーザは、クライアントソフトウェアを使用することによって、トランザクションに含まれる必要のある呼び出しデータを入力できる。クライアントソフトウェアは、メンバユーザによって入力された呼び出しデータを解析して、ターゲット・メンバ・ブロックチェーンと相互接続された第三者ストレージシステムに格納されたデータが、メンバユーザによって入力された呼び出しデータ中に存在するか否かを判定する、言い換えると、第三者ストレージシステムに格納されたデータがメンバユーザによって入力された呼び出しデータ中に参照されるか否かを判定する。
【００６６】
第三者ストレージシステムに格納されたデータがメンバユーザによって入力された呼び出しデータ中に存在する場合、呼び出しデータに対応するデータダイジェスト(すなわち、クエリインデックス)が、第三者ストレージシステムにクエリされ得るか、データダイジェストが、第三者ストレージシステムによってサポートされるデータダイジェストアルゴリズムと同じデータダイジェストアルゴリズムに基づいてトランザクションコンテンツに対して再度計算され得、次いで、データダイジェストが、標準のトランザクションフォーマットに入力され得る。
【００６７】
例えば、実施形態では、呼び出しデータを含むために使用されるデータダイジェストフィールドが、コンソーシアムブロックチェーンによってサポートされる標準のトランザクションフォーマットに拡張され得る。標準のトランザクションフォーマットでトランザクションデータを組み立てると、クライアントソフトウェアは、第三者ストレージシステムに格納された参照されるデータのすべてのデータダイジェストをデータダイジェストフィールドに入力できる。
【００６８】
(3)スマートコントラクトの呼び出しおよび実行
【００６９】
本明細書では、秘密鍵に基づいてメンバユーザによって発行されたトランザクションを受信した後、ターゲット・メンバ・ブロックチェーンのノードデバイスはまず、ユーザが所有する秘密鍵に対応する公開鍵に基づいてユーザの識別認証を実行できる。
【００７０】
例えば、実際の適用では、ユーザは、所有する秘密鍵に基づいて開始されるトランザクションに署名でき、ブロックチェーンのノードデバイスが、ユーザが所有する秘密鍵に対応する公開鍵に基づいて署名を認証できる。署名についての認証が成功する場合、ユーザの識別認証が成功する。
【００７１】
識別認証が成功した後、ノードデバイスは、ターゲット・メンバ・ブロックチェーンのトランザクションについてのコンセンサスプロセスを開始でき、コンセンサスが達成された後、ターゲット・メンバ・ブロックチェーンの分散データベースにトランザクションを記録および格納できる。一旦、トランザクションを、ターゲット・メンバ・ブロックチェーンの分散データベースに記録および格納することが成功すると、スマートコントラクトの呼び出しが、分散データベースに記録されたトランザクションに基づいて続いてトリガされ得、スマートコントラクト内に宣言されたスマートコントラクトプログラムを実行する。
【００７２】
例えば、実施形態では、厳密なトリガ実行条件は通常、スマートコントラクトのスマートコントラクトプログラムに事前に決められている。スマートコントラクトは、分散データベースに現在記録されているトランザクションが実行条件を満たすか否かを確認し、検証されるべきトランザクションキューに、実行条件を満たし、分散データベースに格納されるトランザクションを追加して、トランザクションキューのトランザクションについてコンセンサスプロセスを実行する。コンセンサスが達成される場合、スマートコントラクト内に宣言されるスマートコントラクトプログラムの実行がトリガされる。
【００７３】
コンセンサスプロセスがターゲット・メンバ・ブロックチェーンのトランザクションについて実行されるときに使用されるコンセンサスアルゴリズムは、本明細書では限定されないことに留意すべきである。メンバブロックチェーンによってサポートされるコンセンサスアルゴリズムは同じでも異なっていてもよい。例えば、コンソーシアムブロックチェーンは、PBFTなどメインストリームのコンセンサスアルゴリズムを使用してよく、あるいはコンソーシアムブロックチェーンはコンセンサスアルゴリズムを独自に展開することもできる。
【００７４】
本明細書では、スマートコントラクトの呼び出しは、スマートコントラクト内に宣言されたスマートコントラクトプログラムを実行するために、トランザクションに基づいてトリガされると、スマートコントラクトはまずトランザクションに含まれる呼び出しデータを解析でき、トランザクションに含まれる呼び出しデータにデータダイジェストがあるか否かを判定する。
【００７５】
例えば、ノードデバイスは、解析を通して、標準のトランザクションフォーマットから拡張され、トランザクションコンテンツを含むように使用されるデータダイジェストが、ヌル値であるか否かを判定でき、トランザクションに含まれるトランザクションコンテンツにデータダイジェストがあるか否かを判定する。
【００７６】
トランザクションに含まれる呼び出しデータにデータダイジェストがある場合、第三者ストレージシステムに格納されたデータコンテンツは、トランザクションのいくつかの呼び出しデータ中に参照される。そのような場合、トランザクションに含まれる完全な呼び出しデータを取得するために、スマートコントラクトは、ターゲット・メンバ・ブロックチェーンに相互接続された第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリできる。
【００７７】
実施形態では、スマートコントラクトは、クエリ要求を確立でき、クエリインデックスとしてデータダイジェストを使用することによって、データダイジェストをクエリ要求に追加し、次いで、クエリ要求を第三者ストレージシステムに送ることができる。クエリ要求を受信した後、第三者ストレージシステムは、クエリ要求からクエリインデックスを読み出し、次いで、クエリインデックスに基づいて、ローカルに格納されたデータコンテンツとデータダイジェストとの間のマッピング関係を調査して、クエリインデックスに対応するターゲットデータをクエリして、識別されたターゲットデータをスマートコントラクトに返す。
【００７８】
第三者ストレージシステムが、ターゲット・メンバ・ブロックチェーンとのクロスチェーン参照関係を有する別のメンバブロックチェーンとできることに留意すべきである。したがって、スマートコントラクトによって確立されたクエリ要求は、第三者ストレージシステムとして使用される別のメンバブロックチェーンのノードデバイスにブロードキャストされ得る。
【００７９】
実際の適用では、別のメンバブロックチェーンにおいて使用されるコンセンサスアルゴリズム間の差により、スマートコントラクトが別のメンバブロックチェーンのノードデバイスにクエリ要求を送信した後、異なるクエリ結果が取得され得る。
【００８０】
例えば、ブロックチェーンに使用されるコンセンサスアルゴリズムは通常、分散型の一貫性に基づいて2つのタイプに分類され得る。分散型の一貫性は、ブロックチェーンのすべてのノードデバイス上に格納されたデータが、コンセンサスアルゴリズムを使用することによってコンセンサス達成された後に完全に同じであることを意味する。
【００８１】
コンセンサスアルゴリズムの第1のタイプは、各ノードデバイスの分散型の一貫性を保証できるコンセンサスアルゴリズムである。例えば、フォールトトレランス機構が、PBFTコンセンサスアルゴリズムのコンセンサスを達成するために使用され、その結果、コンセンサスが達成された後に各ノードデバイスによって格納されたデータは、厳密に同じである。
【００８２】
コンセンサスアルゴリズムの第2のタイプは、各ノードデバイスの分散型の一貫性を保証できないコンセンサスアルゴリズムである。例えば、コンテンションベースの台帳(contention-based ledger)メカニズムが、PoSまたはPoWコンセンサスアルゴリズムのコンセンサスを達成するために使用される。結果的に、コンセンサスが達成された後に、各ノードデバイスによって格納されたデータが同じであることを保証できない。PoWコンセンサスアルゴリズムを例として使用する。作業量の計算を通して台帳許可を取得するノードデバイスは、ノードデバイスによって提案されたブロックのデータのみを格納でき、結果的に、ノードデバイスによってローカルに格納されたブロックデータは異なることがある。
【００８３】
したがって、第三者ストレージシステムとして使用される別のメンバブロックチェーンによって使用されるコンセンサスアルゴリズムが、上述の第2のタイプのコンセンサスアルゴリズムであると、スマートコントラクトが別のメンバブロックチェーンの各ノードデバイスにクエリ要求を送った後に、他のノードデバイスは識別できるが、いくつかのノードデバイスは関連データを識別できない可能性がある。
【００８４】
シナリオでは、第三者ストレージシステムとして使用される別のメンバブロックチェーンによって使用されるコンセンサスアルゴリズムが上述の第1のタイプのコンセンサスアルゴリズムである場合、スマートコントラクトは、コンセンサスアルゴリズムをまたサポートするクエリ・クライアント・ソフトウェアを使用することによって、他のメンバブロックチェーンへのデータクエリを実行でき、一貫性クエリ結果を取得する。
【００８５】
PBFTアルゴリズムを例として使用する。第三者ストレージシステムとして使用される別のメンバブロックチェーンのノードデバイスの数が3f+1であると仮定する。スマートコントラクトが、クエリ・クライアント・ソフトウェアを使用することによって別のメンバブロックチェーンのノードデバイスにクエリ要求を個別に送った後に、f+1個のノードデバイスによって返される同じクエリ結果が受信される場合、クエリ結果が最終的なクエリ結果であると考えられ得る。
【００８６】
シナリオでは、第三者ストレージシステムとして使用される別のメンバブロックチェーンによって使用されるコンセンサスアルゴリズムが、上述の第2のタイプのコンセンサスアルゴリズムである場合、安定性と信頼性の高いノードデバイスは、別のメンバブロックチェーンのクエリノードとして指定される必要がある。スマートコントラクトは、クエリ要求をクエリノードに送ることができ、関連データのためにクエリノードによってローカルに格納されたデータを検索できる。
【００８７】
言い換えると、そのようなシナリオでは、クエリノードによってローカルに格納されたデータは、データ参照の当事者のために一貫性の結果であると考えられ、クエリノードによってローカルに格納されるデータのみが、別のメンバブロックチェーンに展開されたスマートコントラクトによって参照され得る。
【００８８】
実際の適用では、クエリ要求は、クエリインデックスとして使用されるデータダイジェストに加えて、いくつかの補助クエリパラメータを含むことができ、データダイジェストに対応するターゲットデータをすばやく識別することに留意すべきである。
【００８９】
例えば、ターゲット・メンバ・ブロックチェーンと相互接続された第三者ストレージシステムは、ターゲット・メンバ・ブロックチェーンとのクロスチェーン参照関係を有する別のメンバブロックチェーンである。参照されたデータコンテンツと、第三者ストレージシステムとして使用される別のメンバブロックチェーンに格納された対応するデータダイジェストは通常、ブロックの形態で、ブロックチェーンの分散データベースに格納される。したがって、クエリを簡単にするために、クエリ結果はさらに、データダイジェストが位置するメンバブロックチェーンのシーケンス番号およびブロック番号などの補助クエリパラメータを含むことができる。
【００９０】
本明細書では、スマートコントラクトがターゲット・メンバ・ブロックチェーンと相互接続された第三者ストレージシステムから、受信したトランザクションに含まれるデータダイジェストに対応するターゲットデータを識別した後、スマートコントラクトの呼び出しが開始され、スマートコントラクト内に宣言されたスマートコントラクトプログラムを実行し、トランザクションに含まれる呼び出しデータについてスマートコントラクト計算を実行する。
【００９１】
第1に、スマートコントラクトは識別されたターゲットデータについてコンテンツ検証を実行でき、識別されたターゲットデータが、トランザクションに含まれるデータダイジェストに対応するデータコンテンツに一致することを保証する。
【００９２】
実施形態では、スマートコントラクトが識別されたターゲットデータのデータダイジェストを再計算でき、次いで、再計算されたデータダイジェストと受信されたトランザクションに含まれるデータダイジェストとを整合し、再計算されたデータダイジェストが、受信したトランザクションに含まれるデータダイジェストに一致するか否かを判定する。
【００９３】
一致する場合、識別されたターゲットデータについてのコンテンツ検証が成功し、トランザクションは有効なトランザクションである。スマートコントラクトがトランザクションに含まれる完全な呼び出しデータを含むことができ、スマートコントラクト内に宣言されたスマートコントラクトプログラムの入力パラメータとして完全な呼び出しパラメータを使用し、スマートコントラクト計算のためにスマートコントラクトプログラムにパラメータを入力できる。
【００９４】
一致しない場合、識別されたターゲットデータについてのコンテンツ検証が失敗する。そのような場合、第三者ストレージシステムに格納されたオリジナルの参照されたターゲットデータは、システムの低信頼性に起因して変更および更新されていることがある。結果的に、トランザクションは無効なトランザクションであり、スマートコントラクトを呼び出すプロセスがすぐに終了され得る。
【００９５】
スマートコントラクトが識別されたターゲットデータのデータダイジェストを再計算するとき、ターゲットデータのデータ構造、ターゲットデータのための符号化方法、および使用されたダイジェストアルゴリズムはすべて、第三者ストレージシステムのそれらの一致する必要があり、ノードデバイスおよび第三者ストレージシステムは、同じターゲットデータについてデータダイジェスト計算を実行するとき同じ計算結果を取得できることを保証することに留意すべきである。
【００９６】
本明細書では、トランザクションに含まれる完全な呼び出しデータは、入力パラメータとして使用され、スマートコントラクト計算を完了するためにスマートコントラクト内に宣言されたスマートコントラクトプログラムへの入力であり、トランザクションの実行が完了され、スマートコントラクト計算の計算結果(すなわち、トランザクションの実行結果)がさらに、ターゲット・メンバ・ブロックチェーンの分散データベースに格納され得る。
【００９７】
ブロックチェーンの分散データベースに記録された情報は通常、トランザクションログおよびトランザクション状態を含む。
【００９８】
トランザクションログは、トランザクションログを格納するために使用され、発生順序で一連の接続された複数のブロック(または一つのブロック)を含み、分散データベースのトランザクションレコードである。トランザクションについてのコンセンサスが達成された後、トランザクションが記録され、トランザクションログの対応するブロックに格納され得る。
【００９９】
トランザクション状態は、分散データベースに記録されたトランザクションの実行によって生じるステータス変更を格納するために使用される。例えば、ブロックチェーンは通常、多くの小さなオブジェクト(アカウントオブジェクト、コントラクトオブジェクト、および資産オブジェクトなど)を含む。ブロックチェーンの分散データベースにトランザクションが記録されるたびに、トランザクションに関連するステータスが、トランザクションの実行が完了した後に同期更新される。ブロックチェーンに送られたオンライン譲渡トランザクションを例として使用する。トランザクションが関連するスマートコントラクトを呼び出すことによって実行された後、現在の譲渡に関連するアカウントオブジェクトの残高が同期更新される。
【０１００】
そのような場合、トランザクションに含まれる完全な呼び出しデータについてスマートコントラクト計算を完了した後に、スマートコントラクトはさらに、トランザクション状態にスマートコントラクト計算の計算結果を格納し、トランザクションによって生じた関連するオブジェクトのステータス変更を更新する。ブロックチェーンに送られたオンライン譲渡トランザクションを例としてさらに使用する。トランザクションに含まれる完全な呼び出しデータについてスマートコントラクト計算を完了した後、スマートコントラクトはトランザクション状態に現在の譲渡に関連するアカウントオブジェクトの残高を更新できる。
【０１０１】
前述の実施形態では、スマートコントラクトの呼び出しを開始するために使用されるトランザクションは、第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含み、その結果、ブロックチェーンのトランザクションを受信するノードデバイスは、データダイジェストに基づいて第三者ストレージシステムから対応するターゲットデータをクエリでき、ターゲットデータについてのコンテンツ検証を実行できる。ターゲットデータについての検証が成功した後、スマートコントラクトを呼び出して、トランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後に、ブロックチェーンの分散データベースに計算結果を格納する。したがって、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータは、スマートコントラクトの呼び出しを開始するために使用されるトランザクションの呼び出しデータとして参照され、ブロックチェーンの各ノードデバイスに第三者ストレージシステムに格納されたターゲットデータのオリジナルコンテンツを同期することによって生じるブロックチェーン・データ・ストレージの冗長性を軽減する。
【０１０２】
例えば、ターゲットブロックチェーンに相互接続された第三者ストレージシステムは、ブロックチェーンとのクロスチェーンデータ参照関係を有する別のブロックチェーンである。別のブロックチェーンは、5つのノードデバイスを含み、ターゲットブロックチェーンが50のノードデバイスを含むと仮定する。別のブロックチェーンに格納された参照データコンテンツは、ターゲットブロックチェーンにやはり同期される場合、参照データコンテンツは、ターゲットブロックチェーンの50のノードに個別に同期される必要があり、大量のターゲットブロックチェーンの参照データコンテンツの冗長が生じる。しかしながら、ターゲットブロックチェーンが、参照データコンテンツのデータダイジェストのみを格納する場合、別のブロックチェーンは、50のノードデバイスの参照データコンテンツを個別に同期する必要はない。したがって、ターゲットブロックチェーンのデータストレージ冗長性を著しく減らすことができる。
【０１０３】
方法の実施形態に対応して、本明細書は、ブロックチェーンベースのスマートコントラクト呼び出し装置の実施形態をさらに提供する。本明細書では、ブロックチェーンベースのスマートコントラクト呼び出し装置の実施形態は、電子デバイスに適用できる。装置の実施形態は、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアの組み合わせによって実施され得る。ソフトウェアの実施形態が例として使用される。論理装置として、装置に配置された電子デバイスのプロセッサが、不揮発性メモリから電子デバイスのメモリに、対応するコンピュータプログラム命令を読み出すことによって、装置が形成される。ハードウェアでは、図3に示すように、図3は、本明細書による、ブロックチェーンベースのスマートコントラクト呼び出し装置が配置された電子デバイスのハードウェア構造を示す図である。図3に示すプロセッサ、メモリ、ネットワークインターフェース、および不揮発性メモリに加えて、本実施形態の装置が配置される電子デバイスは通常、電子デバイスの実際の機能に基づいて他のハードウェアを含むことができる。詳細は簡潔のため省略される。
【０１０４】
図4は、本明細書の例示的な実施形態による、ブロックチェーンベースのスマートコントラクト呼び出し装置を示すブロック図である。
【０１０５】
図4を参照すると、ブロックチェーンベースのスマートコントラクト呼び出し装置40は、図3に示す電子デバイスに適用され、受信モジュール401、クエリモジュール402、および呼び出しモジュール403を含む。
【０１０６】
受信モジュール401は、スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信するように構成され、ターゲットトランザクションは呼び出しデータを含み、少なくとも呼び出しデータの一部は、ブロックチェーンに相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む。
【０１０７】
クエリモジュール402は、第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリして、ターゲットデータについてコンテンツ検証を実行するように構成される。
【０１０８】
呼び出しモジュール403は、ターゲットデータについての検証が成功した場合、スマートコントラクトを呼び出してターゲットトランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後にブロックチェーンの分散データベースに計算結果を格納するように構成される。
【０１０９】
本実施形態では、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を格納する。
【０１１０】
クエリモジュール402は、クエリインデックスとしてデータダイジェストを使用することによって第三者ストレージシステムへのクエリを開始し、データダイジェストに対応するターゲットデータをクエリするように構成される。
【０１１１】
本実施形態では、クエリモジュール402は、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算し、計算したデータダイジェストが、ターゲットトランザクションのターゲットデータのデータダイジェストに一致するか否かを判定し、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致する場合、ターゲットデータについての検証が成功したと決定するようにさらに構成される。
【０１１２】
本実施形態では、第三者ストレージシステムは、集中型連想記憶CASシステムまたは分散型CASシステムを含む。
【０１１３】
本実施形態では、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーンの任意のメンバブロックチェーンであってよい。
【０１１４】
本実施形態では、第三者ストレージシステムは、コンソーシアムブロックチェーンのブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。
【０１１５】
装置における機能の実施プロセスおよびモジュールの役割について、前述の方法の対応するステップの実施プロセスを参照できる。詳細は簡潔のため省略する。
【０１１６】
装置の実施形態は基本的に方法の実施形態に対応するので、関連する部分について、方法の実施形態の説明を参照できる。上に説明された装置の実施形態は、例に過ぎない。個別の部分として説明されるモジュールは、物理的に分離していてもしていなくてもよく、モジュールとして表示される部分は、物理的なモジュールであってもなくてもよく、一か所に配置されていてもよいし、複数のネットワークモジュール上に分散されていてもよい。モジュールのいくつかまたはすべては、本明細書の解決策の目的を達成するために実際の要件に基づいて選択可能である。当業者は、創造的な努力なしに、本明細書の実施形態を理解し実装できる。
【０１１７】
先の実施形態に示したシステム、装置、またはモジュールは、コンピュータチップまたはエンティティを使用することによって実装され得るか、またはある機能を有する製品を使用することによって実装され得る。典型的な実装デバイスは、コンピュータであり、コンピュータの形態は、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、個人情報端末、メディアプレイヤー、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、あるいはこれらのデバイスの任意の組み合わせであってよい。
【０１１８】
前述の方法の実施形態に対応して、本明細書はさらに電子デバイスの実施形態を提供する。電子デバイスは、プロセッサとマシン実行可能命令を格納するように構成されたメモリとを含む。プロセッサおよびメモリは通常、内部バスを使用することによって互いに接続されている。別の可能な実施形態では、デバイスはさらに、外部インターフェースを含むことができ、デバイスは、他のデバイスまたは構成要素と通信できる。
【０１１９】
本実施形態では、メモリに格納された、ブロックチェーンベースのスマートコントラクト呼び出しの制御ロジックに対応するマシン実行可能命令を読み出して実行することによって、プロセッサは、スマートコントラクトの呼び出しを開始するために使用されるターゲットトランザクションを受信することであって、ターゲットトランザクションが呼び出しデータを含み、呼び出しデータの少なくとも一部がブロックチェーンと相互接続された第三者ストレージシステムに格納されたターゲットデータのデータダイジェストを含む、ことと、第三者ストレージシステムからデータダイジェストに対応するターゲットデータをクエリして、ターゲットデータについてコンテンツ検証を実行することと、ターゲットデータについての検証が成功した場合、スマートコントラクトを呼び出してターゲットトランザクションの呼び出しデータについてスマートコントラクト計算を実行し、スマートコントラクト計算が完了した後にブロックチェーンの分散データベースに計算結果を格納することとを行うように構成される。
【０１２０】
本実施形態では、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとのマッピング関係を格納する。
【０１２１】
メモリに格納された、ブロックチェーンベースのスマートコントラクト呼び出しの制御ロジックに対応するマシン実行可能命令を読み出して実行することによって、プロセッサは、クエリインデックスとしてデータダイジェストを使用することによって第三者ストレージシステムへのクエリを開始し、データダイジェストに対応するターゲットデータをクエリするように構成される。
【０１２２】
本実施形態では、メモリに格納された、ブロックチェーンベースのスマートコントラクト呼び出しの制御ロジックに対応するマシン実行可能命令を読み出して実行することによって、プロセッサは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算することと、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致するか否かを判定することと、計算したデータダイジェストがターゲットトランザクションのターゲットデータのデータダイジェストに一致する場合、ターゲットデータについての検証が成功したと決定することとを行うように構成される。
【０１２３】
当業者は、本明細書全体を検討して本明細書の開示を解析した後に、本明細書の別の実施形態を容易に見つけることができる。本明細書は、本明細書のあらゆる変形、使用、または適合を網羅することを意図しており、これらの変形、使用、または適合は、本明細書の一般原則に従い、本明細書の技術分野に記載されていない共通の知識または一般的に使用される技術的手段を含む。明細書および実施形態は、単に例として考慮され、本明細書の実際の範囲および精神は、添付の特許請求の範囲によって示される。
【０１２４】
本明細書は、上に説明され添付の図面に示された正確な構造に限定されず、本明細書の範囲から逸脱することなく様々な変形や変化がなされることは理解されよう。本明細書の範囲は、添付の特許請求の範囲によってのみ限定される。
【０１２５】
前述の説明は、本明細書の好ましい実施形態にすぎず、本明細書を限定することを意図しない。本明細書の精神および原則を逸脱せずになされた、いかなる変更、均等な交換、または改善は、本明細書の保護範囲に含まれる。
【０１２６】
本明細書に説明された実施形態および動作は、本明細書に開示された構造を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、あるいはハードウェア、またはそれらの1つまたは複数の組み合わせで実装され得る。動作は、1つまたは複数のコンピュータ可読デバイスに格納した、または他のソースから受信したデータについて、データ処理装置によって実行される動作として実装され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例えば、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、またはそれらの複数または組み合わせなどの、装置、デバイス、およびデータ処理のための機械を包含してよい。装置は、例えば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途組み込み回路(ASIC)などの専用論理回路を含むことができる。装置はまた、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(例えば、単一のオペレーティングシステムまたはオペレーティングシステムの組み合わせ)、クロスプラットフォーム実行環境、仮想マシン、あるいはそれらの1つまたは複数の組み合わせを構成するコードなど、当のコンピュータプログラムに対する実行環境を作成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現できる。
【０１２７】
コンピュータプログラム(例えば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型またはプロシージャ型言語を含む、任意の形式のプログラミング言語で書かれ、スタンドアロンプログラムとして、あるいは、モジュール、コンポーネント、サブルーチン、オブジェクト、あるいは、コンピューティング環境での使用に適した他のユニットとしてなどを含む、任意の形式で展開され得る。プログラムは、当のプログラム専用の単一のファイルに、または複数の協調ファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に、他のプログラムまたはデータ(例えば、マークアップ言語ドキュメントに格納された1つまたは複数のスクリプト)を保持するファイルの一部に記憶され得る。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに位置するか、あるいは複数のサイトにわたり分散して通信ネットワークによって相互接続される複数のコンピュータ上で実行され得る。
【０１２８】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの1つまたは複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令にしたがってアクションを実行するためのプロセッサと、命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを格納する1つまたは複数のマスストレージデバイスを含むか、データの送受信のために、データを格納する1つまたは複数のマスストレージデバイスに動作可能に接続される。コンピュータは、例えば、モバイルデバイス、個人情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイスなどの別のデバイスに組み込まれ得る。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および磁気光ディスクを含む、非一時的メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路に補完されるか、または組み込まれ得る。
【０１２９】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、携帯電話(例えば、スマートフォン)、タブレット、ウェアラブルデバイス(例えば、スマートウォッチおよびスマート眼鏡)、人体埋め込みデバイス(例えば、バイオセンサ、人工内耳)、あるいは他のタイプのモバイルデバイスを含むことができる。モバイルデバイスは、様々な通信ネットワーク(後述される)とワイヤレスに(例えば、無線周波数(RF)信号を使用して)通信できる。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含むことができる。センサは、カメラ、マイク、近接センサ、GPSセンサ、動きセンサ、加速度計、周辺光センサ、湿度センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認証システム、RFセンサ(例えば、Wi-Fiおよびセルラ無線)、温度センサ、あるいは他のタイプのセンサを含むことができる。例えば、カメラは、可動または固定レンズ、フラッシュ、イメージセンサ、およびイメージプロセッサを備えた前向きまたは後ろ向きのカメラを含むことができる。カメラは、顔および/または虹彩の認識のために詳細をキャプチャできるメガピクセルカメラであってよい。データプロセッサを備えるカメラ、およびメモリに保存されているか、または遠隔にアクセスされる認証情報は、顔認識システムを形成できる。顔認証システム、あるいは、例えばマイク、動きセンサ、加速度計、GPSセンサ、またはRFセンサなどの1つまたは複数のセンサは、ユーザ認証のために使用され得る。
【０１３０】
ユーザとの対話を提供するために、例えば、ユーザに情報を表示するための、液晶ディスプレイ(LCD)または有機発行ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、それによりユーザがコンピュータに入力を提供できるタッチスクリーン、キーボード、およびポインティングデバイスなど、表示デバイスおよび入力デバイスを有するコンピュータにおいて実施形態が実装され得る。同様にユーザとの対話のために別の種類のデバイスを提供でき、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの任意の形式のセンサフィードバックであってよく、ユーザからの入力が、音声、会話、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、例えば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスとドキュメントを送受信することによってユーザと対話できる。
【０１３１】
実施形態は、例えば、コンピュータネットワークなど、任意の形式または媒体の有線またはワイヤレスのデジタルデータ通信(あるいはその組み合わせ)によって相互接続されたコンピューティングデバイスを使用して実装され得る。相互接続されたデバイスの例は、クライアントとサーバであり、一般に互いに離れており、通信ネットワークを介して対話する。例えば、モバイルデバイスなどのクライアントは、サーバと自身のトランザクションを実行するか、サーバを介して、例えば、購入、売却、支払い、譲渡、送信、あるいはローントランザクションを実行する、または同様の認証を行う。そのようなトランザクションはリアルタイムであってよく、そのためアクションおよびレスポンスが時間的に近い、例えば、個人がアクションとレスポンスを実質的に同時に感じ、個人のアクションに続くレスポンスの時間差が1ミリ秒(ms)または1秒(s)より小さいか、レスポンスがシステムの処理限界を考慮した意図的な遅延がない。
【０１３２】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネットのすべてまたは一部、別の通信ネットワーク、あるいは通信ネットワークの組み合わせを含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE802、インターネットプロトコル(IP)、または他のプロトコル、あるいはプロトコルの組み合わせを含む、様々なプロトコルおよび規格にしたがって、通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイスの間で、音声、ビデオ、生体情報、認証データ、あるいは他の情報を送信できる。
【０１３３】
個別の実施形態として説明された特徴は、組み合わせても一つの実施形態でも実装でき、一方で単一の実施形態として記載された特徴は、複数の実施形態に個別に、あるいは任意の適切なサブコンビネーションで実装されてよい。特定の順序で説明あるいは特許請求の範囲に記載された動作は、その特定の順序を必要とすると理解するのではなく、またすべての示された動作が実行されなければならないと理解すべきではない(いくつかの動作は任意であってよい)。必要に応じて、マルチタスクまたは並列処理(または、マルチタスクおよび並列処理の組み合わせ)が実行され得る。
【符号の説明】
【０１３４】
40  ブロックチェーンベースのスマートコントラクト呼び出し装置
401  受信モジュール
402  クエリモジュール
403  呼び出しモジュール
【図１】
2021512379.tif 000003
【図２】
2021512379.tif 000004
【図３】
2021512379.tif 000005
【図４】
2021512379.tif 000006
【国際調査報告】
2021512379.tif 000007
2021512379.tif 000008