(57)【要約】  ブロックチェーンに基づいてスマートコントラクトの起動を開始するために使用される起動データを含むターゲットトランザクションを受信する、ここで、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む。第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行う。第三者ストレージシステムによって返信された暗号化されたターゲットデータを含むクエリ結果を受信する。暗号化されたターゲットデータを復号するために使用される鍵を取得し、暗号化されたターゲットデータを鍵に基づいて復号する。復号されたターゲットデータに対して内容検証を行う。検証が成功している場合には、スマートコントラクトを起動して起動データに対してスマートコントラクト計算を行う。スマートコントラクト計算が完了した後に計算結果をブロックチェーンの分散型データベースに記憶する。
2021507555.tif 000002
【特許請求の範囲】
【請求項１】
スマートコントラクトの起動のための方法であって、
ブロックチェーンに基づいて前記スマートコントラクトの前記起動を開始するために使用されるターゲットトランザクションを受信するステップであって、前記ターゲットトランザクションは、起動データを含み、前記起動データの少なくとも一部は、前記ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む、ステップと、
前記第三者ストレージシステムからの前記データダイジェストに対応する前記ターゲットデータについてクエリを行うステップと、
前記第三者ストレージシステムによって返信されたクエリ結果を受信するステップであって、前記クエリ結果は、暗号化されたターゲットデータを含む、ステップと、
前記暗号化されたターゲットデータを復号するために使用される鍵を取得するとともに前記鍵に基づいて前記暗号化されたターゲットデータを復号するステップと、
復号されたターゲットデータに対して内容検証を行うステップと、
前記ターゲットデータに対する前記検証が成功していると決定したことに応答して、前記スマートコントラクトを起動して前記ターゲットトランザクション中の前記起動データに対してスマートコントラクト計算を行うステップと、
前記スマートコントラクト計算が完了した後に前記ブロックチェーンの分散型データベースに計算結果を記憶するステップと
を含む、方法。
【請求項２】
前記第三者ストレージシステムは、前記ターゲットデータと前記ターゲットデータの前記データダイジェストとの間のマッピング関係を記憶する、請求項1に記載の方法。
【請求項３】
前記第三者ストレージシステムからの前記データダイジェストに対応する前記ターゲットデータについてクエリを行うステップは、
前記データダイジェストに対応する前記ターゲットデータについてクエリを行うために、クエリインデックスとして前記データダイジェストを使用して前記第三者ストレージシステムに対するクエリを開始するステップを含む、請求項1に記載の方法。
【請求項４】
前記クエリ結果は、前記鍵に対応する鍵メタデータをさらに含む、請求項1に記載の方法。
【請求項５】
前記暗号化されたターゲットデータを復号するために使用される前記鍵を取得するとともに前記鍵に基づいて前記暗号化されたターゲットデータを復号するステップは、
前記暗号化されたターゲットデータおよび前記鍵メタデータを前記ブロックチェーンと相互接続された第三者復号システムに送信するステップであって、前記第三者復号システムは、前記第三者復号システムが、前記マッピング関係についてクエリを行って前記鍵メタデータに対応する前記鍵を取得するために、前記鍵と前記鍵メタデータとの間のマッピング関係を維持管理し、前記鍵に基づいて前記暗号化されたターゲットデータを復号する、ステップと、
前記第三者復号システムによって返信された前記復号されたターゲットデータを受信するステップと
を含む、請求項4に記載の方法。
【請求項６】
前記復号されたターゲットデータに対して前記内容検証を行うステップは、
所定のダイジェストアルゴリズムに基づいて前記ターゲットデータのデータダイジェストを計算するステップと、
前記データダイジェストが前記ターゲットトランザクション中の前記ターゲットデータの前記データダイジェストと一致しているかどうかを決定するステップと、
前記データダイジェストが前記ターゲットトランザクション中の前記ターゲットデータの前記データダイジェストと一致していると決定したことに応答して、前記ターゲットデータに対する前記内容検証が成功していると決定するステップと
を含む、請求項1に記載の方法。
【請求項７】
前記第三者ストレージシステムは、中央集権型の内容アドレス記憶装置(CAS)システムまたは分散型のCASシステムを含む、請求項1に記載の方法。
【請求項８】
前記ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内の任意のメンバブロックチェーンである、請求項1に記載の方法。
【請求項９】
前記第三者ストレージシステムは、前記コンソーシアムブロックチェーン内の前記ブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである、請求項8に記載の方法。
【請求項１０】
前記鍵は、前記コンソーシアムブロックチェーンによって返信された公開鍵および秘密鍵のペアを含む、請求項8に記載の方法。
【請求項１１】
トランザクションキュー内の前記ターゲットトランザクションに対してコンセンサス処理を行うステップをさらに含む、請求項1に記載の方法。
【請求項１２】
コンセンサス処理を行うステップは、コンセンサスアルゴリズムに基づく、請求項11に記載の方法。
【請求項１３】
前記コンセンサスアルゴリズムは、Practical Byzantine Fault Toleranceアルゴリズムを含む、請求項12に記載の方法。
【請求項１４】
スマートコントラクトの起動のための装置、請求項1から13のいずれか一項に記載の方法を行うように構成された複数のモジュールを含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により組み込まれている、2018年6月27日に出願した、中国特許出願第201810681250.4号に対する優先権を主張する。
【０００２】
本明細書の1つまたは複数の実施形態は、ブロックチェーン技術の分野に関し、詳細には、ブロックチェーンベーススマートコントラクト起動方法および装置、ならびに電子デバイスに関する。
【背景技術】
【０００３】
分散型台帳技術とも称する、ブロックチェーン技術は、いくつかのコンピューティングデバイスが「会計処理」に連携して関与して分散データベース全体を維持管理する、新興技術である。ブロックチェーン技術は、分散化および透明性を特徴としており、各コンピューティングデバイスは、データベースにデータを記録し得るし、データは、コンピューティングデバイス間で迅速に同期され得る。したがって、ブロックチェーン技術は多くの分野に広く適用されている。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、ブロックチェーンベーススマートコントラクト起動方法を提供しており、ブロックチェーンベーススマートコントラクト起動方法は、スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信するステップであって、ターゲットトランザクションは、起動データを含み、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む、ステップと、第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い、第三者ストレージシステムによって返信されたクエリ結果を受信するステップであって、クエリ結果は、暗号化されたターゲットデータを含む、ステップと、暗号化されたターゲットデータを復号するために使用される鍵を取得するとともに鍵に基づいて暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行うステップと、ターゲットデータに対する検証が成功している場合には、スマートコントラクトを起動してターゲットトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶するステップとを含む。
【０００５】
必要に応じて、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を記憶し、第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行うステップは、データダイジェストに対応するターゲットデータについてクエリを行うために、クエリインデックスとしてデータダイジェストを使用して第三者ストレージシステムに対するクエリを開始するステップを含む。
【０００６】
必要に応じて、クエリ結果は、鍵に対応する鍵メタデータをさらに含み、暗号化されたターゲットデータを復号するために使用される鍵を取得するとともに鍵に基づいて暗号化されたターゲットデータを復号するステップは、暗号化されたターゲットデータおよび鍵メタデータをブロックチェーンと相互接続された第三者復号システムに送信するステップであって、第三者復号システムは、第三者復号システムが、マッピング関係についてクエリを行って鍵メタデータに対応する鍵を取得するために、鍵と鍵メタデータとの間のマッピング関係を維持管理し、取得した鍵に基づいて暗号化されたターゲットデータを復号する、ステップと、第三者復号システムによって返信された、復号されたターゲットデータを受信するステップとを含む。
【０００７】
必要に応じて、復号されたターゲットデータに対して内容検証を行うステップは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算するステップと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致しているかどうかを決定するステップと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致している場合には、ターゲットデータに対する検証が成功していると決定するステップとを含む。
【０００８】
必要に応じて、第三者ストレージシステムは、中央集権型の内容アドレス記憶装置CASシステムまたは分散型のCASシステムを含む。
【０００９】
必要に応じて、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内の任意のメンバブロックチェーンである。
【００１０】
必要に応じて、第三者ストレージシステムは、コンソーシアムブロックチェーン内のブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。
【００１１】
本明細書は、ブロックチェーンベーススマートコントラクト起動装置を提供しており、ブロックチェーンベーススマートコントラクト起動装置は、スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信するように構成される、受信モジュールであって、ターゲットトランザクションは、起動データを含み、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む、受信モジュールと、第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い、第三者ストレージシステムによって返信されたクエリ結果を受信するように構成される、クエリモジュールであって、クエリ結果は、暗号化されたターゲットデータを含む、クエリモジュールと、暗号化されたターゲットデータを復号するために使用される鍵を取得するとともに鍵に基づいて暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行うように構成される、復号モジュールと、ターゲットデータに対する検証が成功している場合には、スマートコントラクトを起動してターゲットトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶するように構成される、起動モジュールとを含む。
【００１２】
必要に応じて、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を記憶し、クエリモジュールは、データダイジェストに対応するターゲットデータについてクエリを行うために、クエリインデックスとしてデータダイジェストを使用して第三者ストレージシステムに対するクエリを開始するように構成される。
【００１３】
必要に応じて、クエリ結果は、鍵に対応する鍵メタデータをさらに含み、復号モジュールは、暗号化されたターゲットデータおよび鍵メタデータをブロックチェーンと相互接続された第三者復号システムに送信することであって、第三者復号システムは、第三者復号システムが、マッピング関係についてクエリを行って鍵メタデータに対応する鍵を取得するために、鍵と鍵メタデータとの間のマッピング関係を維持管理し、取得した鍵に基づいて暗号化されたターゲットデータを復号する、ことと、第三者復号システムによって返信された、復号されたターゲットデータを受信することとをするように構成される。
【００１４】
必要に応じて、クエリモジュールは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算することと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致しているかどうかを決定することと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致している場合には、ターゲットデータに対する検証が成功していると決定することとをするように構成される。
【００１５】
必要に応じて、第三者ストレージシステムは、中央集権型の内容アドレス記憶装置CASシステムまたは分散型のCASシステムを含む。
【００１６】
必要に応じて、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内の任意のメンバブロックチェーンである。
【００１７】
必要に応じて、第三者ストレージシステムは、コンソーシアムブロックチェーン内のブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。
【００１８】
本明細書は、プロセッサと、マシン実行可能命令を記憶するように構成されるメモリとを含む、電子デバイスをさらに提供しており、メモリに記憶されるとともにブロックチェーンベーススマートコントラクト起動の制御ロジックに対応するマシン実行可能命令を読み込み実行することによって、プロセッサは、スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信することであって、ターゲットトランザクションは、起動データを含み、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む、ことと、第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い、第三者ストレージシステムによって返信されたクエリ結果を受信することであって、クエリ結果は、暗号化されたターゲットデータを含む、ことと、暗号化されたターゲットデータを復号するために使用される鍵を取得し、鍵に基づいて暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行うことと、ターゲットデータに対する検証が成功している場合には、スマートコントラクトを起動してターゲットトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶することとをするように構成される。
【００１９】
上記の実施形態による、スマートコントラクトの起動を開始するために使用されるトランザクションは、データダイジェストに基づいてブロックチェーン内のトランザクションを受信するノードデバイスが、第三者ストレージシステムからの対応するターゲットデータについてクエリを行い、特定した暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行い、ターゲットデータに対する検証が成功していると、スマートコントラクトを起動してトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶することができるように、第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む。
【００２０】
ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータは、スマートコントラクトの起動を開始するために使用されるトランザクション中の起動データとして参照され、第三者ストレージシステムに記憶されているターゲットデータの元のコンテンツをブロックチェーン内の各ノードデバイスと同期することによって引き起こされるブロックチェーンデータストレージ冗長性を軽減し得る。
【００２１】
加えて、データダイジェストに対応するとともに第三者ストレージシステムから特定されるターゲットデータは暗号化されたデータであるため、データ利用セキュリティレベルを改善することができ、平文データをそのまま使用することによって引き起こされるデータ漏洩を軽減している。
【図面の簡単な説明】
【００２２】
【図１】例示的な実施形態による、ブロックチェーンベーススマートコントラクト起動方法を図示しているフローチャートである。
【図２】例示的な実施形態による、コンソーシアムブロックチェーンを図示している概略構造図である。
【図３】例示的な実施形態による、電子デバイスを図示している概略構造図である。
【図４】例示的な実施形態による、ブロックチェーンベーススマートコントラクト起動装置を図示しているブロック図である。
【発明を実施するための形態】
【００２３】
ブロックチェーンの従来のスマートコントラクト起動プロセスにおいては、スマートコントラクトを起動するために必要な起動データ(すなわち、スマートコントラクトに入力される起動パラメータ)は、通常、ブロックチェーンの分散型データベース(すなわち、ブロックチェーン台帳)に記憶されているデータコンテンツに由来しており、外部メモリに記憶されているデータコンテンツを参照することはできない。したがって、ブロックチェーンネットワーク内の各ノードデバイスがスマートコントラクトを起動する際にスマートコントラクト計算のために使用される起動データは、通常、チェーンに由来しており、それによって、「閉じたデータ利用ループ」を形成することになる。
【００２４】
しかしながら、ブロックチェーンの「閉じたデータ利用ループ」を脱するために、本明細書は、スマートコントラクトを起動する際に、第三者ストレージプラットフォーム上に記憶されている変更不可なデータコンテンツがトランザクションコンテンツとして参照される、技術的ソリューションを開示することを目的としている。
【００２５】
実施に際しては、ブロックチェーンは、事前に第三者ストレージシステムと相互接続され得るし、第三者ストレージシステムは、ブロックチェーンにデプロイされたスマートコントラクトにおいて参照され得るいくつかの変更不可なデータコンテンツを事前に記憶し得る。
【００２６】
スマートコントラクトの起動を開始する場合には、ブロックチェーンにアクセスするメンバユーザは、起動データとして第三者ストレージシステムに記憶されているデータコンテンツを参照するために、第三者ストレージシステムに記憶されているデータコンテンツのデータダイジェストを、スマートコントラクトの起動を開始するために使用されるトランザクションに追加し得る。
【００２７】
メンバユーザによって発行されたトランザクションを受信する場合には、ブロックチェーン内のノードデバイスは、データダイジェストに対応するデータコンテンツについてクエリを行うためにデータダイジェストに基づいて第三者ストレージシステムに対するクエリを開始し、特定したデータコンテンツに対して内容検証を行い得る。内容検証が成功している場合には、ノードデバイスは、スマートコントラクトを起動してスマートコントラクトにおいて宣言されたスマートコントラクトプログラムを宣言するとともにトランザクション中の起動データ全体に対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶し得る。
【００２８】
上記の実施形態においては、スマートコントラクトの起動を開始するために使用されるトランザクションは、データダイジェストに基づいてブロックチェーン内のトランザクションを受信するノードデバイスが、第三者ストレージシステムからの対応するターゲットデータについてクエリを行い、ターゲットデータに対して内容検証を行い、ターゲットデータに対する検証が成功していると、スマートコントラクトを起動してトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶することができるように、第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む。そのため、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータは、スマートコントラクトの起動を開始するために使用されるトランザクション中の起動データとして参照され、第三者ストレージシステムに記憶されているターゲットデータの元のコンテンツをブロックチェーン内の各ノードデバイスと同期することによって引き起こされるブロックチェーンデータストレージ冗長性を軽減し得る。
【００２９】
適用シナリオを参照して実施形態を使用して本明細書を以下に説明する。
【００３０】
図1を参照すれば、図1は、本明細書の実施形態によるブロックチェーンベーススマートコントラクト起動方法を示している。方法は、ブロックチェーン内のノードデバイスに適用され、以下のステップを含む。
【００３１】
ステップ102: スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信する、ここで、ターゲットトランザクションは、起動データを含み、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む。
【００３２】
ステップ104: 第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い、ターゲットデータに対して内容検証を行う。
【００３３】
ステップ106: 暗号化されたターゲットデータを復号するために使用される鍵を取得するとともに鍵に基づいて暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行う。
【００３４】
ステップ108: ターゲットデータに対する検証が成功している場合には、スマートコントラクトを起動してターゲットトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶する。
【００３５】
本明細書において説明したブロックチェーンは、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されている変更不可なデータコンテンツが、サポートされているスマートコントラクトによって起動データとして参照され得る、任意のタイプのブロックチェーンネットワークを含み得る。
【００３６】
例えば、あるシナリオでは、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内の任意のメンバブロックチェーンであり得る。コンソーシアムブロックチェーンにおいては、別のメンバブロックチェーンに記憶されているデータコンテンツは、各メンバブロックチェーンによってサポートされている各スマートコントラクトによって起動データとしてチェーンを越えて参照され得る。
【００３７】
第三者ストレージシステムは、ブロックチェーンに高信頼度のデータストレージサービスを提供する内容アドレス記憶装置(CAS)プラットフォームを含む。内容アドレス指定能力は、アドレス指定がストレージシステムにおけるデータストレージオフセットの代わりにデータコンテンツに基づいて行われることを意味している。
【００３８】
CASプラットフォーム上に、保存されているデータコンテンツのデータダイジェストは、元のデータコンテンツのクエリインデックスとして使用され得るし、データクエリ関係者がクエリインデックスとしてデータダイジェストを使用してCASプラットフォームからの対応する元のデータコンテンツについてクエリを行うことができるように、クエリインデックスと元のデータコンテンツとの間のマッピング関係を記憶する。
【００３９】
例えば、ある実施形態においては、データダイジェストは、データコンテンツに対してハッシュ計算を行うことによって得られるハッシュ値であり得る。データクエリ関係者は、クエリインデックスとしてハッシュ値を使用して、CASプラットフォームからのハッシュ値に対応する元のデータコンテンツについてクエリを行い得る。
【００４０】
実際の適用においては、第三者ストレージシステムは、従来の中央集権型の内容アドレス記憶装置(CAS)システムを含み得る、または、非中央集権型の分散CASシステムを含み得る。
【００４１】
例えば、あるシナリオでは、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内の任意のメンバブロックチェーンであり得る。加えて、第三者ストレージシステムは、コンソーシアムブロックチェーンにデプロイされるとともに、オブジェクトストレージサービス(OSS)機構などのコンソーシアムブロックチェーン内の各メンバブロックチェーンと相互接続され得る、分散システムであり得る。
【００４２】
あるいは、別の例においては、コンソーシアムブロックチェーン内のブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンは、メンバブロックチェーン間のクロスチェーンデータ参照を実施するために、ブロックチェーンと相互接続された第三者ストレージシステムとして使用され得る。換言すれば、第三者ストレージシステムは、ブロックチェーンとのクロスチェーン参照関係を有する別のブロックチェーンであり得る。「第三者ストレージシステムのデプロイメント」、「起動データの参照」、および「スマートコントラクトの起動および実行」を参照して、ブロックチェーンがいくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内のメンバブロックチェーンである例を使用して、本明細書の技術的ソリューションを以下に詳細に説明する。
【００４３】
(1) 第三者ストレージシステムのデプロイメント
【００４４】
本明細書では、事業者は、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーンを事前に確立し得る。コンソーシアムブロックチェーンにおいては、各メンバブロックチェーンは、コンソーシアムブロックチェーンのコンソーシアムメンバである。上記のブロックチェーンは、コンソーシアムブロックチェーン内の任意のメンバブロックチェーンであり得る。
【００４５】
コンソーシアムブロックチェーンの事業者は、コンソーシアムブロックチェーンに第三者ストレージシステムをさらにデプロイし得る。第三者ストレージシステムは、コンソーシアムブロックチェーン内の各メンバブロックチェーンと相互接続され、各メンバブロックチェーンに高信頼度のデータストレージサービスを提供する。
【００４６】
例えば、第三者ストレージシステムは、コンソーシアムブロックチェーン内の各メンバブロックチェーンがAPIアクセスインターフェースにアクセスすることによって第三者ストレージシステムと相互接続され得るように、各メンバブロックチェーンに常に信頼できるAPIアクセスインターフェースを提供し得る。
【００４７】
コンソーシアムブロックチェーン内の第三者ストレージシステムデプロイメント中に、グローバルな第三者ストレージシステムがコンソーシアムブロックチェーンに対してデプロイされ得る、または、独立した第三者ストレージシステムがコンソーシアムブロックチェーン内の各メンバブロックチェーンに対してデプロイされ得る。実施形態は本明細書において限定されない。
【００４８】
本明細書では、第三者ストレージシステムは、内容アドレス指定能力をサポートするCASシステムであり得る。実際の適用においては、第三者ストレージシステムは、従来の中央集権型のCASシステムであり得る、または、分散CASシステムであり得る。
【００４９】
分散CASシステムは、従来の中央集権型の分散システムと、非中央集権型の分散システムとを含み得る。
【００５０】
例示した実施形態においては、第三者ストレージシステムは、コンソーシアムブロックチェーンにデプロイされるとともにコンソーシアムブロックチェーン内の各メンバブロックチェーンと相互接続され得る、OSSアーキテクチャベースの中央集権型の分散システムなどであり得る。
【００５１】
別の例示した実施形態においては、第三者ストレージシステムは、非中央集権型の分散システムであり得る。実施に際しては、ブロックチェーンとのクロスチェーンデータ参照関係を有するコンソーシアムブロックチェーン内の別のメンバブロックチェーンは、ブロックチェーンと相互接続された第三者ストレージシステムとして使用され得る。換言すれば、コンソーシアムブロックチェーン内の任意のメンバブロックチェーンは、クロスチェーンデータ参照を実施するために、別のメンバブロックチェーンと相互接続された第三者ストレージシステムとして使用され得る。
【００５２】
例えば、あるシナリオでは、事業者は、実際のサービス要件に基づいてコンソーシアムブロックチェーンを確立し、異なるサービス任務をコンソーシアムブロックチェーン内のメンバブロックチェーンに割り当て得る。具体的には、コンソーシアムブロックチェーンがサービスプロセス全体に対応し、各メンバブロックチェーンはサービスプロセス全体の1つのサブプロセスに対応し得る。
【００５３】
サービス要件「オンライン住宅賃貸トランザクション」に基づいて事業者によって確立されるコンソーシアムブロックチェーンを例として使用しており、コンソーシアムブロックチェーンを形成する各メンバブロックチェーンは、「トランザクションチェーン」、「認証チェーン」、および「データチェーン」を含み得る。「トランザクションチェーン」、「認証チェーン」、および「データチェーン」は、「オンライン住宅賃貸トランザクション」のサービスプロセスの1つのサブプロセスに別々に対応し得る。例えば、「データチェーン」は、住宅賃貸ユーザの実名データを維持管理するために使用され、「認証チェーン」は、ユーザ固有の住宅賃貸実名認証を完遂するために使用され、「トランザクションチェーン」は、オンライン住宅賃貸トランザクションを完遂するために使用される。
【００５４】
その後、事業者は、メンバブロックチェーン間の一方向クロスチェーンデータ参照関係に基づいて、あるサービスレベルで、Directed Acyclic Graph(DAG)トポロジのトポロジダイアグラムとしてコンソーシアムブロックチェーンを確立し得る。
【００５５】
メンバブロックチェーン間の一方向クロスチェーンデータ参照関係は、通常、実際のサービス要件に依存するものであり、本明細書において限定されないことに留意されたい。
【００５６】
例えば、図2を参照すれば、図2は、例に示したDAG構造のコンソーシアムブロックチェーンを図示している概略図である。
【００５７】
図2に示しているように、サービス要件「オンライン住宅賃貸トランザクション」に基づいて事業者によって確立されるコンソーシアムブロックチェーンを例としてさらに使用しており、コンソーシアムブロックチェーンを形成するメンバブロックチェーンは各々、「トランザクションチェーン」、「認証チェーン」、および「データチェーン」を含み得る。「データチェーン」は、住宅賃貸ユーザの実名データを維持管理するために使用され、ユーザは、「データチェーン」においてトランザクションを発行することによって、「データチェーン」の分散型データベースに実名データを記憶し得る。「認証チェーン」は、ユーザ固有の住宅賃貸実名認証を完了するために、「データチェーン」において発行されたユーザの実名データを参照するために使用され、ユーザは、「認証チェーン」においてトランザクションを発行することによって実名認証を完了し、「認証チェーン」の分散型データベースにおいて実名認証結果を発行し得る。「トランザクションチェーン」は、ユーザが、「トランザクションチェーン」においてトランザクションを発行することによってオンライン住宅賃貸トランザクションを完了し、「認証チェーン」の分散型データベースにおいてトランザクション結果を発行することができるように、「認証チェーン」において発行されたユーザ固有の実名認証結果を参照するために使用される。
【００５８】
コンソーシアムブロックチェーン内の任意のターゲットメンバブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンは、ターゲットメンバブロックチェーンと相互接続された分散ストレージプラットフォームとして使用される。
【００５９】
メンバブロックチェーン間のクロスチェーンデータ参照は、あるサービスレベルで実施され得る。
【００６０】
加えて、第三者ストレージシステムとして使用されるメンバブロックチェーンがデプロイされたスマートコントラクトを起動および実行する際に、第三者ストレージシステムに記憶されているターゲットデータがスマートコントラクト計算のために使用される起動データにおいて参照される場合に、被参照ターゲットデータの元のコンテンツをターゲットメンバブロックチェーン内の各ノードデバイスと同期する必要はもはやなく、ターゲットメンバブロックチェーンは被参照ターゲットデータの元のコンテンツを記憶する必要はもはやない。
【００６１】
したがって、ターゲットメンバブロックチェーンは、ターゲットメンバブロックチェーンに記憶されている、ターゲットデータの、元のコンテンツ間の追加のデータ関連付けと第三者ストレージシステムとして使用されるメンバブロックチェーンから同期される被参照ターゲットデータとをセットアップする必要はもはやなく、被参照ターゲットデータのデータダイジェストだけを使用して2つの異なるブロックチェーンにおける被参照ターゲットデータ間のデータ関連付けを実施し得る、それによって、ターゲットメンバブロックチェーンにデプロイされたスマートコントラクトにおいて参照されるターゲットデータが第三者ストレージシステムとして使用されるメンバブロックチェーンに記憶されている被参照ターゲットデータとサービスセマンティックの観点で一致していることを保証している。
【００６２】
(2) 起動データの参照
【００６３】
本明細書では、コンソーシアムブロックチェーンにアクセスする必要がるユーザは、事前にコンソーシアムブロックチェーンにおいてユーザ登録を行って、コンソーシアムブロックチェーンによって返信された公開鍵および秘密鍵のペアを取得し得る。登録が完了した後に、コンソーシアムブロックチェーンは、ユーザのための対応するアカウントオブジェクトを作成し得る。
【００６４】
コンソーシアムブロックチェーン内の各メンバブロックチェーンによって提供されたAPIインターフェースを使用して登録を完了したユーザは、各メンバブロックチェーンにアクセスし、各メンバブロックチェーンにデプロイされたスマートコントラクトを起動するために保持している秘密鍵に基づいて署名したトランザクションを各メンバブロックチェーンに発行し得る。
【００６５】
図2に示したコンソーシアムブロックチェーン内の「トランザクションチェーン」を一例として使用する。コンソーシアムブロックチェーンの事業者は、「トランザクションチェーン」において、オンライン住宅賃貸会計処理を完了するために使用されるスマートコントラクトを発行し得るし、ユーザは、スマートコントラクトの起動をトリガし、オンライン住宅賃貸トランザクション会計処理を完了するために、「トランザクションチェーン」においてトランザクションを発行し得る。
【００６６】
コンソーシアムブロックチェーンの事業者がコンソーシアムブロックチェーンにスマートコントラクトをデプロイすることについての詳細なプロセスは、簡潔にするために本明細書では省略する。当業者は、本明細書において説明した技術的ソリューションを実施する際には、関連する技術的業績を参照することが可能である。
【００６７】
例えば、コンソーシアムブロックチェーンにアクセスする複数のメンバは、コンソーシアムブロックチェーン内のノードデバイスが、コンセンサス処理を行い、コンセンサスに達した後に、コンソーシアムブロックチェーンの分散型データベースにスマートコントラクトを記録および記憶してスマートコントラクトのデプロイメントを完遂するように、スマートコントラクトを連帯してネゴシエートし、スマートコントラクトにおいて開発されたスマートコントラクトプログラム(例えば、起動され得るいくつかの機能に関連するプログラムコード)を宣言し、その後、コンソーシアムブロックチェーンにおいてスマートコントラクトを発行し得る。
【００６８】
本明細書では、コンソーシアムブロックチェーンの事業者は、コンソーシアムブロックチェーンにアクセスするメンバユーザのためのクライアントソフトウェア(例えば、アプリ)を開発し得るし、メンバユーザは、クライアントソフトウェアを使用して、コンソーシアムブロックチェーンによってサポートされている標準トランザクションフォーマットに基づいてトランザクションデータを構築し、各メンバブロックチェーンによって提供されたAPIインターフェースを起動することによって、構築したトランザクションデータをメンバユーザによって指定されたコンソーシアムブロックチェーン内のターゲットメンバブロックチェーンに発行してターゲットメンバブロックチェーンにデプロイされたスマートコントラクトの起動を開始し得る。
【００６９】
クライアントソフトウェアを使用してメンバユーザによって構築されたトランザクションデータは、メンバユーザによって提供された起動データを含み得るし、起動データは、スマートコントラクトに入力される起動パラメータとして使用される。起動データの少なくとも一部をデータダイジェストによって置換することができる。
【００７０】
例示した実施形態においては、メンバユーザが、クライアントソフトウェアを使用して、ターゲットメンバブロックチェーンにおいて実行する必要があるトランザクションデータを構築する際には、メンバユーザは、クライアントソフトウェアを使用して、トランザクションに含める必要がある起動データを入力し得る。クライアントソフトウェアは、メンバユーザによって入力された起動データをパースして、ターゲットメンバブロックチェーンと相互接続された第三者ストレージシステムに記憶されているデータがメンバユーザによって入力された起動データに存在するかどうかを決定し得る、換言すれば、第三者ストレージシステムに記憶されているデータがメンバユーザによって入力された起動データにおいて参照されるのかどうかを決定し得る。
【００７１】
第三者ストレージシステムに記憶されているデータがメンバユーザによって入力された起動データに存在する場合には、起動データに対応するデータダイジェスト(すなわち、クエリインデックス)について第三者ストレージシステムからクエリを行い得る、または、第三者ストレージシステムによってサポートされているデータダイジェストアルゴリズムと同じデータダイジェストアルゴリズムに基づいてデータダイジェストをトランザクションコンテンツについて再計算し得るし、その後、データダイジェストを標準トランザクションフォーマットに入力し得る。
【００７２】
例えば、実施に際しては、起動データを含むために使用されるデータダイジェストフィールドが、コンソーシアムブロックチェーンによってサポートされている標準トランザクションフォーマットにおいて拡張され得る。標準トランザクションフォーマットでトランザクションデータを構築する際に、クライアントソフトウェアは、第三者ストレージシステムに記憶されている被参照データのすべてのデータダイジェストをデータダイジェストフィールドに入力し得る。
【００７３】
(3) スマートコントラクトの起動および実行
【００７４】
本明細書では、秘密鍵に基づいてメンバユーザによって発行されたトランザクションを受信した後に、ターゲットメンバブロックチェーン内のノードデバイスは、まず、ユーザによって保持されている秘密鍵に対応する公開鍵に基づいてユーザの識別認証を行い得る。
【００７５】
例えば、実際の適用においては、ユーザは、保持していた秘密鍵に基づいて開始されるトランザクションを署名し得るし、ブロックチェーン内のノードデバイスは、ユーザによって保持されている秘密鍵に対応する公開鍵に基づいて署名を認証し得る。署名に対する認証が成功した場合には、ユーザの識別認証が成功したことになる。
【００７６】
識別認証が成功した後に、ノードデバイスは、ターゲットメンバブロックチェーン内のトランザクションに対するコンセンサス処理を開始し、コンセンサスに達した後に、ターゲットメンバブロックチェーンの分散型データベースにトランザクションを記録および記憶し得る。トランザクションをターゲットメンバブロックチェーンの分散型データベースに記録および記憶することに成功すると、スマートコントラクトの起動が、スマートコントラクトにおいて宣言されたスマートコントラクトプログラムを実行するために、分散型データベースに記録されているトランザクションに基づいて以降でトリガされ得る。
【００７７】
例えば、実施に際しては、厳密なトリガ実行条件が、通常、スマートコントラクト内のスマートコントラクトプログラムに対して事前に定められている。スマートコントラクトは、分散型データベースに現時点記録されているトランザクションが実行条件を満足しているかどうかを定期的にチェックし、検証されることになるトランザクションキューに、実行条件を満足するとともに分散型データベースに記憶されているトランザクションを追加し、トランザクションキュー内のトランザクションに対してコンセンサス処理を行い得る。コンセンサスに達している場合に、スマートコントラクトにおいて宣言されたスマートコントラクトプログラムの実行がトリガされ得る。
【００７８】
ターゲットメンバブロックチェーンにおいてコンセンサス処理をトランザクションに対して行う際に使用されるコンセンサスアルゴリズムは本明細書において限定されないことに留意されたい。メンバブロックチェーンによってサポートされているコンセンサスアルゴリズムは、同一であり得る、または、異なり得る。例えば、コンソーシアムブロックチェーンはPBFTなどの主流のコンセンサスアルゴリズムを使用し得る、または、コンソーシアムブロックチェーンはコンセンサスアルゴリズムを独立して開発し得る。
【００７９】
本明細書では、スマートコントラクトにおいて宣言されたスマートコントラクトプログラムを実行するためにスマートコントラクトの起動がトランザクションに基づいてトリガされる場合には、スマートコントラクトは、まず、トランザクションに含まれる起動データをパースして、トランザクションに含まれる起動データにデータダイジェストが存在しているかどうかを決定し得る。
【００８０】
例えば、ノードデバイスは、パースすることによって、標準トランザクションフォーマットから拡張されるとともにトランザクションコンテンツを含むように使用されるデータダイジェストフィールドがヌル値であるかどうかを決定して、トランザクションに含まれるトランザクションコンテンツにデータダイジェストが存在しているかどうかを決定し得る。
【００８１】
トランザクションに含まれる起動データにデータダイジェストが存在している場合には、第三者ストレージシステムに記憶されているデータコンテンツは、トランザクション中のいくつかの起動データにおいて参照される。そのようなケースでは、トランザクションに含まれる起動データ全体を取得するために、スマートコントラクトは、ターゲットメンバブロックチェーンと相互接続された第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い得る。
【００８２】
実施に際しては、スマートコントラクトは、クエリ要求を確立し、クエリインデックスとしてデータダイジェストを使用してデータダイジェストをクエリ要求に追加し、その後、クエリ要求を第三者ストレージシステムに送信し得る。クエリ要求を受信すると、第三者ストレージシステムは、クエリ要求からクエリインデックスを読み込み、その後、クエリインデックスに基づいて、ローカルに保存されているデータコンテンツとデータダイジェストとの間のマッピング関係をトラバースして、クエリインデックスに対応するターゲットデータについてクエリを行い、特定したターゲットデータをスマートコントラクトに返信し得る。
【００８３】
第三者ストレージシステムがターゲットメンバブロックチェーンとのクロスチェーン参照関係を有する別のメンバブロックチェーンであり得ることに留意されたい。したがって、スマートコントラクトによって確立されたクエリ要求は、第三者ストレージシステムとして使用される別のメンバブロックチェーン内のノードデバイスにブロードキャストされ得る。
【００８４】
実際の適用においては、別のメンバブロックチェーンにおいて使用されるコンセンサスアルゴリズムの間に違いがあるため、スマートコントラクトがクエリ要求を別のメンバブロックチェーン内のノードデバイスに送信した後に異なるクエリ結果が得られ得る。
【００８５】
例えば、ブロックチェーンにおいて使用されるコンセンサスアルゴリズムは、通常、分散一貫性に基づいて2つのタイプに分類され得る。分散一貫性は、コンセンサスアルゴリズムを使用してコンセンサスに達するとブロックチェーン内のすべてのノードデバイス上に記憶されているデータが完全に同一となっていることを意味する。
【００８６】
第1のタイプのコンセンサスアルゴリズムは、各ノードデバイスの分散一貫性を保証し得るコンセンサスアルゴリズムである。例えば、フォールト・トレランス機構がPBFTコンセンサスアルゴリズムにおけるコンセンサスに達するために使用され、その結果、コンセンサスに達した後に各ノードデバイスによって記憶されているデータが厳密に同一となる。
【００８７】
第2のタイプのコンセンサスアルゴリズムは、各ノードデバイスの分散一貫性を保証し得ないコンセンサスアルゴリズムである。例えば、コンテンションベースの台帳機構がPoSまたはPoWコンセンサスアルゴリズムにおけるコンセンサスに達するために使用される。その結果、コンセンサスに達した後に各ノードデバイスによって記憶されているデータが同一であることを保証し得ない。PoWコンセンサスアルゴリズムを一例として使用する。ワークロード計算により台帳パーミッションを取得したノードデバイスはノードデバイスによって提示されているブロックのデータのみを記憶し得るため、その結果、ノードデバイスによってローカルに記憶されているブロックデータは異なり得る。
【００８８】
したがって、第三者ストレージシステムとして使用される別のメンバブロックチェーンによって使用されるコンセンサスアルゴリズムが上記で説明した第2のタイプのコンセンサスアルゴリズムである場合には、スマートコントラクトがクエリ要求を別のメンバブロックチェーン内の各ノードデバイスに送信した後に他のノードデバイスができる一方でいくつかのノードデバイスが関連するデータをローカルで特定できない可能性がある。
【００８９】
あるシナリオでは、第三者ストレージシステムとして使用される別のメンバブロックチェーンによって使用されるコンセンサスアルゴリズムが上記で説明した第1のタイプのコンセンサスアルゴリズムである場合には、スマートコントラクトは、コンセンサスアルゴリズムもサポートするクエリクライアントソフトウェアを使用して、他のメンバブロックチェーンに対してデータクエリを行って一貫性についてのクエリ結果を取得し得る。
【００９０】
PBFTコンセンサスアルゴリズムを一例として使用する。第三者ストレージシステムとして使用される別のメンバブロックチェーン内のノードデバイスの数が3f+1であると仮定する。スマートコントラクトがクエリクライアントソフトウェアを使用してクエリ要求を別のメンバブロックチェーン内のノードデバイスに別々に送信した後に、f+1個のノードデバイスによって返信された同一のクエリ結果が受信されるとクエリ結果は最終的なクエリ結果であるとみなされ得る。
【００９１】
あるシナリオでは、第三者ストレージシステムとして使用される別のメンバブロックチェーンによって使用されるコンセンサスアルゴリズムが上記で説明した第2のタイプのコンセンサスアルゴリズムである場合には、安定した信頼できるノードデバイスを別のメンバブロックチェーン内のクエリノードとして指定する必要がある。スマートコントラクトは、クエリ要求をクエリノードに送信し、関連するデータについてクエリノードによってローカルに記憶されているデータを検索し得る。
【００９２】
換言すれば、そのようなシナリオでは、クエリノードによってローカルに記憶されているデータがデータ参照関係者に対する一貫性についての結果であるとみなされ得るし、クエリノードによってローカルに記憶されているデータだけが別のメンバブロックチェーンにデプロイされたスマートコントラクトによって参照され得る。
【００９３】
実際の適用においては、データダイジェストに対応するターゲットデータを迅速に特定するために、クエリ要求がクエリインデックスとして使用されるデータダイジェストに加えていくつかの補助クエリパラメータを含み得ることに留意されたい。
【００９４】
例えば、ターゲットメンバブロックチェーンと相互接続された第三者ストレージシステムは、ターゲットメンバブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。そのようなケースでは、第三者ストレージシステムとして使用される別のメンバブロックチェーンに記憶されている、被参照データコンテンツと対応するデータダイジェストとは、通常、ブロックの形式でブロックチェーンの分散型データベースに記憶されている。したがって、クエリを容易にするために、クエリ要求は、データダイジェストが位置しているメンバブロックチェーンのシーケンス番号およびブロック番号などといった補助クエリパラメータをさらに含み得る。
【００９５】
本明細書では、データストレージセキュリティを改善するために、第三者ストレージシステムに記憶されているデータは、所定の暗号化アルゴリズムに基づいて事前に暗号化され得る。データ暗号化方法は、本明細書において限定されないが、従来の対称暗号化または非対称暗号化であり得る。すなわち、本明細書では、ターゲットデータが暗号化される際に使用される暗号化鍵と復号鍵とが同一の鍵または異なる鍵であり得る。
【００９６】
そのようなケースでは、スマートコントラクトによって送信されたクエリ要求を受信した後に、第三者ストレージシステムは、クエリ結果としてスマートコントラクトに暗号化されたターゲットデータを返信し得るし、スマートコントラクトは、暗号化されたターゲットデータを復号して、ターゲットデータの平文コンテンツを取得し得る。
【００９７】
例示した実施形態においては、暗号化されたターゲットデータは、コンソーシアムブロックチェーンと相互接続された独立した第三者復号システムによって復号され得る。
【００９８】
コンソーシアムブロックチェーンと相互接続された独立した第三者復号システムは、より容易に鍵に対する中央集権型管理を行うために、データを復号するために必要な鍵が独立した復号システムにおいて別々に維持管理されるように、第三者ストレージシステムに記憶されている暗号化されたデータを復号しており、データ利用セキュリティを改善している。
【００９９】
第三者復号システムは中央集権型システムであり得るまたは分散システムであり得ることに留意されたい。実施形態は本明細書において限定されない。
【０１００】
例えば、第三者復号システムは、コンソーシアムブロックチェーンと相互接続された独立した復号デバイスに基づいて確立された中央集権型システムであり得る、または、いくつかのデバイスを含むデバイスクラスタに基づいた分散システムであり得る。例えば、第三者復号システムはまた、第三者ストレージシステムに記憶されている暗号化されたデータを復号する責任を負っているコンソーシアムブロックチェーン内のメンバブロックチェーンであり得る。
【０１０１】
例示した実施形態においては、暗号化されたターゲットデータに加えて、第三者ストレージシステムによって返信されたクエリ結果は、ターゲットデータを暗号化するために使用される鍵に関連する鍵メタデータを含み得る。鍵メタデータは、データを暗号化するために使用される鍵に関連する記述情報である。
【０１０２】
第三者復号システムは、事前に、鍵と鍵メタデータとの間のマッピング関係を維持管理し得る。スマートコントラクトが暗号化されたターゲットデータの復号を開始する場合には、暗号化されたターゲットデータおよび鍵メタデータは、第三者復号システムにさらに送信され得る。
【０１０３】
暗号化されたターゲットデータおよび鍵メタデータを受信すると、第三者復号システムは、まず、マッピング関係についてクエリを行って鍵メタデータに対応する鍵を取得し、その後、取得した鍵および暗号化アルゴリズムに対応する復号アルゴリズムに基づいて暗号化されたターゲットデータを復号して、ターゲットデータの平文コンテンツを取得し得る。
【０１０４】
暗号化されたターゲットデータに対する復号動作を完了すると、第三者復号システムは、復号により取得したターゲットデータの平文コンテンツをスマートコントラクトに返信し得る。
【０１０５】
当然のことながら、実際の適用においては、第三者ストレージシステムに記憶されている暗号化されたデータを復号するプロセスもスマートコントラクトによって独立して完遂され得る。例えば、関連する復号プログラムもスマートコントラクトにおいて宣言され得るし、スマートコントラクトは宣言された復号プログラムを直接起動して第三者ストレージシステムから特定された暗号化されたターゲットデータを復号し得る。実施形態は本明細書において限定されない。
【０１０６】
本明細書では、スマートコントラクトが、受信したトランザクションに含まれるデータダイジェストに対応する暗号化されたターゲットデータをターゲットメンバブロックチェーンと相互接続された第三者ストレージシステムから特定し、以前説明した復号プロセスによって復号により取得したターゲットデータの平文コンテンツを取得した後に、スマートコントラクトの起動が、スマートコントラクトにおいて宣言されたスマートコントラクトプログラムを実行するために開始され、トランザクションに含まれる起動データ全体に対してスマートコントラクト計算を行い得る。まず、スマートコントラクトは、特定したターゲットデータがトランザクションに含まれるデータダイジェストに対応するデータコンテンツと一致していることを保証するために、特定したターゲットデータに対して内容検証を行い得る。
【０１０７】
実施に際しては、スマートコントラクトは、特定したターゲットデータのデータダイジェストを再計算し、再計算したデータダイジェストと受信したトランザクションに含まれるデータダイジェストとをマッチングして、再計算したデータダイジェストが受信したトランザクションに含まれるデータダイジェストと一致しているかどうかを決定し得る。
【０１０８】
一致している場合には、特定したターゲットデータに対する内容検証は成功しており、トランザクションは有効なトランザクションである。スマートコントラクトは、トランザクションに含まれる起動データ全体を取得し、スマートコントラクトにおいて宣言されたスマートコントラクトプログラムの入力パラメータとして起動パラメータのすべてを使用し、スマートコントラクト計算のためのスマートコントラクトプログラムにパラメータを入力し得る。
【０１０９】
一致していない場合には、特定したターゲットデータに対する内容検証は失敗している。そのようなケースでは、第三者ストレージシステムに記憶されている元の被参照ターゲットデータが、システムの信頼性の欠如に起因して、変更または更新されている可能性がある。その結果、トランザクションは無効なトランザクションであり、スマートコントラクトを起動するプロセスは直ちに終了され得る。
【０１１０】
スマートコントラクトが特定したターゲットデータのデータダイジェストを再計算する場合には、ノードデバイスと第三者ストレージシステムとが同一のターゲットデータに対してデータダイジェスト計算を行う際に同一の計算結果を得ることができることを保証するために、ターゲットデータのデータ構造、ターゲットデータのための符号化方法、および使用されるダイジェストアルゴリズムのすべてが第三者ストレージシステムのものと一致している必要があることに留意されたい。
【０１１１】
本明細書では、トランザクションに含まれる起動データ全体が、入力パラメータとして使用され、スマートコントラクト計算を完遂するためにスマートコントラクトにおいて宣言されたスマートコントラクトプログラムに入力されると、トランザクションの実行が完了し、スマートコントラクト計算の計算結果(すなわち、トランザクションの実行結果)がターゲットメンバブロックチェーンの分散型データベースにさらに記憶され得る。
【０１１２】
ブロックチェーンの分散型データベースに記録されている情報は、通常、トランザクションログおよびトランザクション状態を含む。
【０１１３】
トランザクションログは、トランザクションのログを記憶するために使用され、発生の順序で順番に接続された複数のブロック(単一のブロック)を含み、分散型データベース内のトランザクションレコードである。トランザクションに対するコンセンサスに達した後に、トランザクションは、トランザクションログの対応するブロックに記録および記憶され得る。
【０１１４】
トランザクション状態は、分散型データベースに記録されているトランザクションの実行によって生じた状態変化を記憶するために使用される。例えば、ブロックチェーンは、通常、多くのスモールオブジェクト(アカウントオブジェクト、コントラクトオブジェクト、およびアセットオブジェクトなど)を含む。トランザクションがブロックチェーンの分散型データベースに記録されるたびに、トランザクションに関連している状態は、トランザクションの実行が完了した後に同期して更新される。ブロックチェーンにおいて送信されるオンライン移転トランザクションを一例として使用する。関連するスマートコントラクトを起動することによってトランザクションが実行されると、経常移転に関連しているアカウントオブジェクトの残高が同期して更新される。
【０１１５】
そのようなケースでは、トランザクションに含まれる起動データ全体に対するスマートコントラクト計算を完了した後に、スマートコントラクトは、トランザクションによって生じた関連するオブジェクトの状態変化を更新するために、トランザクション状態にスマートコントラクト計算の計算結果をさらに記憶し得る。ブロックチェーンにおいて送信されるオンライン移転トランザクションを一例としてさらに使用する。トランザクションに含まれる起動データ全体に対するスマートコントラクト計算を完了した後に、スマートコントラクトは、トランザクション状態における経常移転に関連しているアカウントオブジェクトの残高を更新し得る。
【０１１６】
上記の実施形態においては、スマートコントラクトの起動を開始するために使用されるトランザクションは、データダイジェストに基づいてブロックチェーン内のトランザクションを受信するノードデバイスが、第三者ストレージシステムからの対応するターゲットデータについてクエリを行い、特定した暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行い、ターゲットデータに対する検証が成功していると、スマートコントラクトを起動してトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶することができるように、第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む。
【０１１７】
ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータは、スマートコントラクトの起動を開始するために使用されるトランザクション中の起動データとして参照され、第三者ストレージシステムに記憶されているターゲットデータの元のコンテンツをブロックチェーン内の各ノードデバイスと同期することによって引き起こされるブロックチェーンデータストレージ冗長性を軽減し得る。
【０１１８】
例えば、ターゲットブロックチェーンと相互接続された第三者ストレージシステムは、ブロックチェーンとのクロスチェーンデータ参照関係を有する別のブロックチェーンである。別のブロックチェーンが5個のノードデバイスを含み、ターゲットブロックチェーンが50個のノードデバイスを含むと仮定する。別のブロックチェーンに記憶されている被参照データコンテンツがターゲットブロックチェーンとさらに同期される場合には、被参照データコンテンツをターゲットブロックチェーン内の50個のノードと別々に同期する必要があり、ターゲットブロックチェーン内に大量の被参照データコンテンツの冗長性を結果として生じることになる。しかしながら、ターゲットブロックチェーンが被参照データコンテンツのデータダイジェストのみを記憶している場合には、別のブロックチェーンが被参照データコンテンツを50個のノードデバイスと別々に同期する必要はない。そのため、ターゲットブロックチェーン内のデータストレージ冗長性を大幅に低減することができる。
【０１１９】
加えて、データダイジェストに対応するとともに第三者ストレージシステムから特定されるターゲットデータは暗号化されたデータであるため、データ利用セキュリティレベルを改善することができ、平文データをそのまま使用することによって引き起こされるデータ漏洩を軽減している。
【０１２０】
方法の実施形態に対応して、本明細書は、ブロックチェーンベーススマートコントラクト起動装置の実施形態をさらに提供している。本明細書では、ブロックチェーンベーススマートコントラクト起動装置の実施形態は、電子デバイスに適用され得る。装置の実施形態は、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアとの組合せによって実施され得る。ソフトウェア実施形態を例として使用する。ロジック装置として、装置は、装置が位置している電子デバイスのプロセッサによって、電子デバイスの不揮発性メモリからメモリに対応するコンピュータプログラム命令を読み込むことによって形成される。ハードウェアに関しては、図3に示しているように、図3は、本明細書による、ブロックチェーンベーススマートコントラクト起動装置が位置している電子デバイスのハードウェア構造を図示している図である。図3に示したプロセッサ、メモリ、ネットワークインターフェース、および不揮発性メモリに加えて、本実施形態において装置が位置している電子デバイスは、通常、電子デバイスの実際の機能に基づいた他のハードウェア含み得る。簡潔にするために詳細は省略する。
【０１２１】
図4は、本明細書の例示的な実施形態による、ブロックチェーンベーススマートコントラクト起動装置を図示しているブロック図である。
【０１２２】
図4を参照すれば、ブロックチェーンベーススマートコントラクト起動装置40は、図3に示した電子デバイスに適用され得るし、受信モジュール401、クエリモジュール402、復号モジュール403、および起動モジュール404を含む。
【０１２３】
受信モジュール401は、スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信することであって、ターゲットトランザクションは、起動データを含み、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む、ことをするように構成される。
【０１２４】
クエリモジュール402は、第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い、第三者ストレージシステムによって返信されたクエリ結果を受信することであって、クエリ結果は、暗号化されたターゲットデータを含む、ことをするように構成される。
【０１２５】
復号モジュール403は、暗号化されたターゲットデータを復号するために使用される鍵を取得するとともに鍵に基づいて暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行うように構成される。
【０１２６】
起動モジュール404は、ターゲットデータに対する検証が成功している場合には、スマートコントラクトを起動してターゲットトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶するように構成される。
【０１２７】
本明細書では、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を記憶する。
【０１２８】
クエリモジュール402は、データダイジェストに対応するターゲットデータについてクエリを行うために、クエリインデックスとしてデータダイジェストを使用して第三者ストレージシステムに対するクエリを開始するように構成される。
【０１２９】
本実施形態においては、クエリ結果は、鍵に対応する鍵メタデータをさらに含む。
【０１３０】
復号モジュール403は、暗号化されたターゲットデータおよび鍵メタデータをブロックチェーンと相互接続された第三者復号システムに送信することであって、第三者復号システムは、第三者復号システムが、マッピング関係についてクエリを行って鍵メタデータに対応する鍵を取得するために、鍵と鍵メタデータとの間のマッピング関係を維持管理し、取得した鍵に基づいて暗号化されたターゲットデータを復号する、ことと、第三者復号システムによって返信された、復号されたターゲットデータを受信することとをするように構成される。
【０１３１】
本実施形態においては、クエリモジュールは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算することと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致しているかどうかを決定することと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致している場合には、ターゲットデータに対する検証が成功していると決定することとをするように構成される。
【０１３２】
本実施形態においては、第三者ストレージシステムは、中央集権型の内容アドレス記憶装置CASシステムまたは分散型のCASシステムを含む。
【０１３３】
本実施形態においては、ブロックチェーンは、いくつかのメンバブロックチェーンを含むコンソーシアムブロックチェーン内の任意のメンバブロックチェーンである。
【０１３４】
本実施形態においては、第三者ストレージシステムは、コンソーシアムブロックチェーン内のブロックチェーンとのクロスチェーンデータ参照関係を有する別のメンバブロックチェーンである。
【０１３５】
装置内のモジュールの機能および役割の実施プロセスについては、上記の方法における対応するステップの実施プロセスを参照されたい。簡潔にするために詳細はここでは省略する。
【０１３６】
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態におけるいくつかの説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したモジュールは、物理的に別個のものであってもなくてもよいし、モジュールとして表示した部分は、物理モジュールであってもなくてもよいし、1つのロケーションに配置されてもよいし、または複数のネットワークモジュールに分散されてもよい。本明細書のソリューションの目的を実現するために実際の要件に基づいてモジュールの一部またはすべてを選択することができる。当業者は、創造的努力無しで本明細書の実施形態を理解および実施できよう。
【０１３７】
上記の実施形態において説明したシステム、装置、またはモジュールは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施デバイスは、コンピュータであり、コンピュータの形式は、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１３８】
上記の方法の実施形態に対応して、本明細書は、電子デバイスの実施形態をさらに提供している。電子デバイスは、プロセッサと、マシン実行可能命令を記憶するように構成されるメモリとを含む。プロセッサとメモリとは、通常、内部バスを使用して互いに接続されている。別の可能な実施形態においては、デバイスは、他のデバイスまたはコンポーネントとデバイスが通信することができるように、外部インターフェースをさらに含み得る。
【０１３９】
本実施形態においては、メモリに記憶されるとともにブロックチェーンベーススマートコントラクト起動の制御ロジックに対応するマシン実行可能命令を読み込み実行することによって、プロセッサは、スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信することであって、ターゲットトランザクションは、起動データを含み、起動データの少なくとも一部は、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータのデータダイジェストを含む、ことと、第三者ストレージシステムからのデータダイジェストに対応するターゲットデータについてクエリを行い、第三者ストレージシステムによって返信されたクエリ結果を受信することであって、クエリ結果は、暗号化されたターゲットデータを含む、ことと、暗号化されたターゲットデータを復号するために使用される鍵を取得し、鍵に基づいて暗号化されたターゲットデータを復号し、復号されたターゲットデータに対して内容検証を行うことと、ターゲットデータに対する検証が成功している場合には、スマートコントラクトを起動してターゲットトランザクション中の起動データに対してスマートコントラクト計算を行い、スマートコントラクト計算が完了した後にブロックチェーンの分散型データベースに計算結果を記憶することとをするように構成される。
【０１４０】
本実施形態においては、第三者ストレージシステムは、ターゲットデータとターゲットデータのデータダイジェストとの間のマッピング関係を記憶する。
【０１４１】
メモリに記憶されるとともにブロックチェーンベーススマートコントラクト起動の制御ロジックに対応するマシン実行可能命令を読み込み実行することによって、プロセッサは、データダイジェストに対応するターゲットデータについてクエリを行うために、クエリインデックスとしてデータダイジェストを使用して第三者ストレージシステムに対するクエリを開始するように構成される。
【０１４２】
本実施形態においては、クエリ結果は、鍵に対応する鍵メタデータをさらに含む。
【０１４３】
メモリに記憶されるとともにブロックチェーンベーススマートコントラクト起動の制御ロジックに対応するマシン実行可能命令を読み込み実行することによって、プロセッサは、暗号化されたターゲットデータおよび鍵メタデータをブロックチェーンと相互接続された第三者復号システムに送信することであって、第三者復号システムは、第三者復号システムが、マッピング関係についてクエリを行って鍵メタデータに対応する鍵を取得するために、鍵と鍵メタデータとの間のマッピング関係を維持管理し、取得した鍵に基づいて暗号化されたターゲットデータを復号する、ことと、第三者復号システムによって返信された、復号されたターゲットデータを受信することとをするように構成される。
【０１４４】
本実施形態においては、メモリに記憶されるとともにブロックチェーンベーススマートコントラクト起動の制御ロジックに対応するマシン実行可能命令を読み込み実行することによって、プロセッサは、所定のダイジェストアルゴリズムに基づいてターゲットデータのデータダイジェストを計算することと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致しているかどうかを決定することと、計算したデータダイジェストがターゲットトランザクション中のターゲットデータのデータダイジェストと一致している場合には、ターゲットデータに対する検証が成功していると決定することとをするように構成される。
【０１４５】
当業者は、本明細書を検討しここで本開示を実施した後であれば、本明細書の別の実施形態を容易に把握し得よう。本明細書は、本明細書の任意の変形、使用、または適合をカバーすることを意図しており、これらの変形、使用、または適合は、本明細書の一般的な原理に従っており、本明細書の技術分野において開示していない一般常識または従来の技法を含む。本明細書および実施形態は例としてみなされるものに過ぎず、本明細書の実際の範囲および精神は以下の特許請求の範囲によって示されている。
【０１４６】
本明細書は上記で説明し添付の図面に示したものと寸分違わぬ構造に限定されず、本開示の範囲から逸脱しない限り様々な修正および変化をなし得ることを理解されたい。本明細書の範囲は、添付の特許請求の範囲のみによって限定される。
【０１４７】
上記の説明は、本明細書の望ましい実施形態に過ぎず、本明細書を限定することは意図していない。本明細書の精神および原理から逸脱することなくなされた任意の修正、均等物との置換、または改良は、本明細書の保護範囲に含まれるものとする。
【０１４８】
本明細書において説明した実施形態および動作は、本明細書において開示した構造またはそれらのうちの1つまたは複数の組合せを含む、デジタル電子回路の形式で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアの形式で実装され得る。動作は、1つまたは複数のコンピュータ可読記憶デバイス上に記憶されるまたは他のソースから受信されるデータに対してデータ処理装置によって行われる動作として実装され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例として、プログラマブルプロセッサ、コンピュータ、システム・オン・チップ、または前述したもののうちの複数もしくは組合せを含む、処理データのための装置、デバイス、マシンを含み得る。装置は、例えば、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)といった、特殊用途ロジック回路を含み得る。装置はまた、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(例えばオペレーティングシステムもしくはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの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  復号モジュール
404  起動モジュール
【図１】
2021507555.tif 000003
【図２】
2021507555.tif 000004
【図３】
2021507555.tif 000005
【図４】
2021507555.tif 000006
【手続補正書】
【提出日】令和2年7月29日(2020.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スマートコントラクトを起動するためのコンピュータ実施方法であって、
スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信するステップであって、前記ターゲットトランザクションは、起動データを含み、前記起動データは、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータに関連付けられたデータダイジェストを含む、ステップと、
前記第三者ストレージシステムからの前記データダイジェストに関連付けられた前記ターゲットデータについてクエリを行うステップと、
前記第三者ストレージシステムによって返信されたクエリ結果を受信するステップであって、前記クエリ結果は、暗号化されたターゲットデータを含む、ステップと、
前記暗号化されたターゲットデータを復号するために鍵を取得して復号されたターゲットデータを生成するステップと、
前記復号されたターゲットデータに対して内容検証を行うステップと、
前記復号されたターゲットデータに対する前記内容検証が成功していることを決定するステップと、
前記復号されたターゲットデータに対する前記内容検証が成功していると決定したことに応答して、前記スマートコントラクトを起動して前記ターゲットトランザクションに含まれる前記起動データに対してスマートコントラクト計算を行うステップと、
前記スマートコントラクト計算が完了した後に前記ブロックチェーンに関連付けられた分散型データベースに前記スマートコントラクト計算からの計算結果を記憶するステップと
を含む、コンピュータ実施方法。
【請求項２】
前記ブロックチェーンは、コンソーシアムブロックチェーン内の第1のブロックチェーンであり、前記第三者ストレージシステムは、前記ブロックチェーンにデータストレージサービスを提供する内容アドレス記憶装置(CAS)プラットフォームを含む、請求項1に記載のコンピュータ実施方法。
【請求項３】
前記第三者ストレージシステムは、前記第1のブロックチェーンとのクロスチェーンデータ参照関係を有する前記コンソーシアムブロックチェーン内の第2のブロックチェーンである、請求項2に記載のコンピュータ実施方法。
【請求項４】
前記第三者ストレージシステムからの前記データダイジェストに関連付けられた前記ターゲットデータについてクエリを行うステップは、
前記ターゲットデータのためのクエリインデックスとして前記データダイジェストを使用して前記第三者ストレージシステムに対するクエリを開始するステップを含む、請求項1に記載のコンピュータ実施方法。
【請求項５】
前記クエリ結果は、前記鍵に対応する鍵メタデータを含む、請求項1に記載のコンピュータ実施方法。
【請求項６】
前記暗号化されたターゲットデータを復号するために前記鍵を取得するステップは、
前記暗号化されたターゲットデータおよび前記鍵メタデータを前記ブロックチェーンと相互接続された第三者復号システムに送信するステップであって、前記第三者復号システムは、前記鍵と前記鍵メタデータとの間のマッピング関係を維持管理し、前記第三者復号システムは、前記鍵に基づいて前記暗号化されたターゲットデータを復号する、ステップと、
前記第三者復号システムによって返信された前記復号されたターゲットデータを受信するステップと
を含む、請求項5に記載のコンピュータ実施方法。
【請求項７】
前記復号されたターゲットデータに対して前記内容検証を行うステップは、
所定のダイジェストアルゴリズムに基づいて前記ターゲットデータに関連付けられた追加のデータダイジェストを計算するステップと、
前記追加のデータダイジェストが前記ターゲットトランザクション中の前記ターゲットデータに関連付けられた前記データダイジェストと一致していることを決定するステップと、
前記追加のデータダイジェストが前記ターゲットトランザクション中の前記ターゲットデータに関連付けられた前記データダイジェストと一致していると決定したことに応答して、前記ターゲットデータに対する前記内容検証が成功していると決定するステップと
を含む、請求項1に記載のコンピュータ実施方法。
【請求項８】
スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信するステップであって、前記ターゲットトランザクションは、起動データを含み、前記起動データは、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータに関連付けられたデータダイジェストを含む、ステップと、
前記第三者ストレージシステムからの前記データダイジェストに関連付けられた前記ターゲットデータについてクエリを行うステップと、
前記第三者ストレージシステムによって返信されたクエリ結果を受信するステップであって、前記クエリ結果は、暗号化されたターゲットデータを含む、ステップと、
前記暗号化されたターゲットデータを復号するために鍵を取得して復号されたターゲットデータを生成するステップと、
前記復号されたターゲットデータに対して内容検証を行うステップと、
前記復号されたターゲットデータに対する前記内容検証が成功していることを決定するステップと、
前記復号されたターゲットデータに対する前記内容検証が成功していると決定したことに応答して、前記スマートコントラクトを起動して前記ターゲットトランザクションに含まれる前記起動データに対してスマートコントラクト計算を行うステップと、
前記スマートコントラクト計算が完了した後に前記ブロックチェーンに関連付けられた分散型データベースに前記スマートコントラクト計算からの計算結果を記憶するステップと
を含む、動作を行うようにコンピュータシステムによって実行可能な1つまたは複数の命令を記憶する、非一時的コンピュータ可読媒体。
【請求項９】
前記ブロックチェーンは、コンソーシアムブロックチェーン内の第1のブロックチェーンであり、前記第三者ストレージシステムは、前記ブロックチェーンにデータストレージサービスを提供する内容アドレス記憶装置(CAS)プラットフォームを含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項１０】
前記第三者ストレージシステムは、前記第1のブロックチェーンとのクロスチェーンデータ参照関係を有する前記コンソーシアムブロックチェーン内の第2のブロックチェーンである、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記第三者ストレージシステムからの前記データダイジェストに関連付けられた前記ターゲットデータについてクエリを行うステップは、
前記ターゲットデータのためのクエリインデックスとして前記データダイジェストを使用して前記第三者ストレージシステムに対するクエリを開始するステップを含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記クエリ結果は、前記鍵に対応する鍵メタデータを含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記暗号化されたターゲットデータを復号するために前記鍵を取得するステップは、
前記暗号化されたターゲットデータおよび前記鍵メタデータを前記ブロックチェーンと相互接続された第三者復号システムに送信するステップであって、前記第三者復号システムは、前記鍵と前記鍵メタデータとの間のマッピング関係を維持管理し、前記第三者復号システムは、前記鍵に基づいて前記暗号化されたターゲットデータを復号する、ステップと、
前記第三者復号システムによって返信された前記復号されたターゲットデータを受信するステップと
を含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記復号されたターゲットデータに対して前記内容検証を行うステップは、
所定のダイジェストアルゴリズムに基づいて前記ターゲットデータに関連付けられた追加のデータダイジェストを計算するステップと、
前記追加のデータダイジェストが前記ターゲットトランザクション中の前記ターゲットデータに関連付けられた前記データダイジェストと一致していることを決定するステップと、
前記追加のデータダイジェストが前記ターゲットトランザクション中の前記ターゲットデータに関連付けられた前記データダイジェストと一致していると決定したことに応答して、前記ターゲットデータに対する前記内容検証が成功していると決定するステップと
を含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項１５】
コンピュータ実施システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータと相互運用可能なように結合されるとともに、1つまたは複数の命令を記憶している有形非一時的マシン可読媒体を有する、1つまたは複数のコンピュータメモリデバイスとを含み、前記1つまたは複数の命令は、前記1つまたは複数のコンピュータによって実行されると、
スマートコントラクトの起動を開始するために使用されるターゲットトランザクションを受信するステップであって、前記ターゲットトランザクションは、起動データを含み、前記起動データは、ブロックチェーンと相互接続された第三者ストレージシステムに記憶されているターゲットデータに関連付けられたデータダイジェストを含む、ステップと、
前記第三者ストレージシステムからの前記データダイジェストに関連付けられた前記ターゲットデータについてクエリを行うステップと、
前記第三者ストレージシステムによって返信されたクエリ結果を受信するステップであって、前記クエリ結果は、暗号化されたターゲットデータを含む、ステップと、
前記暗号化されたターゲットデータを復号するために鍵を取得して復号されたターゲットデータを生成するステップと、
前記復号されたターゲットデータに対して内容検証を行うステップと、
前記復号されたターゲットデータに対する前記内容検証が成功していることを決定するステップと、
前記復号されたターゲットデータに対する前記内容検証が成功していると決定したことに応答して、前記スマートコントラクトを起動して前記ターゲットトランザクションに含まれる前記起動データに対してスマートコントラクト計算を行うステップと、
前記スマートコントラクト計算が完了した後に前記ブロックチェーンに関連付けられた分散型データベースに前記スマートコントラクト計算からの計算結果を記憶するステップと
を含む、1つまたは複数の動作を行う、コンピュータ実施システム。
【請求項１６】
前記ブロックチェーンは、コンソーシアムブロックチェーン内の第1のブロックチェーンであり、前記第三者ストレージシステムは、前記ブロックチェーンにデータストレージサービスを提供する内容アドレス記憶装置(CAS)プラットフォームを含む、請求項15に記載のコンピュータ実施システム。
【請求項１７】
前記第三者ストレージシステムは、前記第1のブロックチェーンとのクロスチェーンデータ参照関係を有する前記コンソーシアムブロックチェーン内の第2のブロックチェーンである、請求項16に記載のコンピュータ実施システム。
【請求項１８】
前記第三者ストレージシステムからの前記データダイジェストに関連付けられた前記ターゲットデータについてクエリを行うステップは、
前記ターゲットデータのためのクエリインデックスとして前記データダイジェストを使用して前記第三者ストレージシステムに対するクエリを開始するステップを含む、請求項15に記載のコンピュータ実施システム。
【請求項１９】
前記クエリ結果は、前記鍵に対応する鍵メタデータを含む、請求項15に記載のコンピュータ実施システム。
【請求項２０】
前記暗号化されたターゲットデータを復号するために前記鍵を取得するステップは、
前記暗号化されたターゲットデータおよび前記鍵メタデータを前記ブロックチェーンと相互接続された第三者復号システムに送信するステップであって、前記第三者復号システムは、前記鍵と前記鍵メタデータとの間のマッピング関係を維持管理し、前記第三者復号システムは、前記鍵に基づいて前記暗号化されたターゲットデータを復号する、ステップと、
前記第三者復号システムによって返信された前記復号されたターゲットデータを受信するステップと
を含む、請求項19に記載のコンピュータ実施システム。
【国際調査報告】
2021507555.tif 000007
2021507555.tif 000008
2021507555.tif 000009