(57)【特許請求の範囲】
【請求項１】
スマートコントラクトサービスを提供するためのコンピュータ実施方法であって、
信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを受信するステップであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義され、前記スマートコントラクトサービスプロバイダは、前記ターゲットブロックチェーンネットワーク外にある、ステップと、
前記スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、前記クロスチェーンデータについてのリクエストを送信するステップと、
前記スマートコントラクトサービスプロバイダによって、前記データ閲覧サービスプロバイダから前記クロスチェーンデータを受信するステップと、
前記TEEによって、前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて結果を生成するステップと、
前記スマートコントラクトサービスプロバイダによって、前記結果を前記クライアントに返信するステップとを含む、コンピュータ実施方法。
【請求項２】
前記スマートコントラクトサービスプロバイダによって、前記クライアントに、前記TEEが前記リクエスト内の前記スマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項３】
前記クライアントからリクエストを受信することに先立って、前記スマートコントラクトサービスプロバイダによって、前記クライアントに、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを証明するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項４】
前記スマートコントラクトサービスプロバイダによって、前記データ閲覧サービスプロバイダに、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを証明するステップと、
前記スマートコントラクトサービスプロバイダによって、前記データ閲覧サービスプロバイダがTEEを含んでいることを検証するステップとをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項５】
前記スマートコントラクトサービスプロバイダによって、前記結果を前記ターゲットブロックチェーンネットワークにアップロードするステップをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項６】
前記結果を前記ターゲットブロックチェーンネットワークにアップロードすることに先立って、前記スマートコントラクトサービスプロバイダによって、前記ターゲットブロックチェーンネットワークに、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを証明するステップをさらに含む、請求項5に記載のコンピュータ実施方法。
【請求項７】
前記スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む、請求項1に記載のコンピュータ実施方法。
【請求項８】
前記結果は、秘密鍵を使用して前記TEEによって署名される、請求項1に記載のコンピュータ実施方法。
【請求項９】
前記クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される、請求項1に記載のコンピュータ実施方法。
【請求項１０】
スマートコントラクトサービスを提供するためのコンピュータ実施方法であって、
ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを生成するステップであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義される、ステップと、
前記クライアントから、前記リクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信するステップであって、前記スマートコントラクトサービスプロバイダは、前記ターゲットブロックチェーンネットワーク外にある、ステップと、
前記クライアントによって、前記スマートコントラクトサービスプロバイダから結果を受信するステップであって、前記結果は、前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて前記TEEによって生成される、ステップとを含む、コンピュータ実施方法。
【請求項１１】
前記クライアントによって、前記受信した結果を前記ターゲットブロックチェーンネットワークに送信するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
【請求項１２】
前記リクエストを前記スマートコントラクトサービスプロバイダに送信することに先立って、前記クライアントによって、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを検証するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
【請求項１３】
前記クライアントによって、前記TEEが前記リクエスト内の前記スマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するステップをさらに含む、請求項12に記載のコンピュータ実施方法。
【請求項１４】
前記クライアントは、ソフトウェア開発キット(SDK)を含む、請求項10に記載のコンピュータ実施方法。
【請求項１５】
前記結果は、秘密鍵を使用して前記TEEによって署名され、前記方法は、前記クライアントによって、前記秘密鍵に対応する公開鍵を使用して前記受信した結果を復号するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
【請求項１６】
前記リクエストを前記スマートコントラクトサービスプロバイダに送信することに先立って、前記クライアントによって、前記リクエストを暗号化するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
【請求項１７】
前記クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される、請求項10に記載のコンピュータ実施方法。
【請求項１８】
1つまたは複数のコンピュータに結合される、非一時的コンピュータ可読記憶媒体であって、前記非一時的コンピュータ可読記憶媒体は、請求項1から9のいずれか一項に記載の方法を行うように前記1つまたは複数のコンピュータによって実行可能な命令で構成される、非一時的コンピュータ可読記憶媒体。
【請求項１９】
1つまたは複数のコンピュータに結合される、非一時的コンピュータ可読記憶媒体であって、前記非一時的コンピュータ可読記憶媒体は、請求項10から17のいずれか一項に記載の方法を行うように前記1つまたは複数のコンピュータによって実行可能な命令で構成される、非一時的コンピュータ可読記憶媒体。
【請求項２０】
スマートコントラクトサービスを提供するためのシステムであって、
ターゲットブロックチェーンネットワークに関連付けられたクライアントから、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを受信するように構成される、インターフェースであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義され、前記システムは、前記ターゲットブロックチェーンネットワーク外にある、インターフェースと、
信頼できる計算実行環境(TEE)とを含み、前記TEEは、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、前記1つまたは複数のコンピュータ可読メモリは、
前記クロスチェーンデータについてのリクエストをデータ閲覧サービスプロバイダに送信することと、
前記データ閲覧サービスプロバイダから前記クロスチェーンデータを受信することと、
前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて結果を生成することとをするように前記1つまたは複数のコンピュータによって実行可能な命令で構成され、
前記インターフェースは、前記結果を前記クライアントに返信するように構成される、システム。
【請求項２１】
スマートコントラクトサービスを提供するためのシステムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、前記1つまたは複数のコンピュータ可読メモリは、
ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを生成することであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義される、ことと、
前記クライアントから、前記リクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、前記スマートコントラクトサービスプロバイダは、前記ターゲットブロックチェーンネットワーク外にある、ことと、
前記クライアントによって、前記スマートコントラクトサービスプロバイダから結果を受信することであって、前記結果は、前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて前記TEEによって生成される、こととをするように前記1つまたは複数のコンピュータによって実行可能な命令で構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービスに関する。
【背景技術】
【０００２】
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称することができる分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でデータを記憶することを可能にする。DLSは、任意の特定のユーザケースを指すわけではなく、ブロックチェーンネットワークと一般には指す。ブロックチェーンネットワークのタイプの例には、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、DLSを使用し、コンセンサスプロセスに関与するように、すべてのエンティティに対してオープンとなっている。プライベートブロックチェーンネットワークは、特定のエンティティに提供されており、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御する、限定されたエンティティのグループに提供されており、アクセス制御レイヤを含む。
【０００３】
ブロックチェーンは、分散化されるとともに改竄耐性のある分散データストレージ技術である。ユーザデータおよびコントラクトは、パブリック方式でチェーン上で論理的に処理および記憶される。多くのシナリオでは、ユーザは、プライバシー保護要件を満たす必要があり、その者らのデータおよびロジックが不正な関係者に漏洩することを望まない。
【０００４】
いくつかの特定のシナリオ設計に関してプライバシー保護を強化するために暗号化を使用することはできるが、ブロックチェーン処理についての既存のプライバシーの問題を解決するためにより汎用的で効率的なソリューションが切望されている。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書の実施形態は、ブロックチェーン技術に基づいたオフチェーンスマートコントラクトサービス(ブロックチェーンオフチェーンスマートコントラクトサービス、または、単にスマートコントラクトサービスと称する)のためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、信頼できる実行環境においてクロスチェーンデータ(TEE)を処理することができるオフチェーンスマートコントラクトサービスを提供することを目的としている。
【０００６】
いくつかの実施形態においては、アクションは、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信するステップであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ステップと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、クロスチェーンデータについてのリクエストを送信するステップと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダからクロスチェーンデータを受信するステップと、TEEによって、クロスチェーンデータを使用して結果を生成するステップと、スマートコントラクトサービスプロバイダによって、結果をクライアントに返信するステップとを含む。他の実施形態は、対応するシステムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
【０００７】
いくつかの実施形態においては、非一時的コンピュータ可読記憶媒体は、1つまたは複数のコンピュータに結合され、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、クロスチェーンデータについてのリクエストを送信することと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダからクロスチェーンデータを受信することと、TEEによって、クロスチェーンデータを使用して結果を生成することと、スマートコントラクトサービスプロバイダによって、結果をクライアントに返信することとをするように1つまたは複数のコンピュータによって実行可能な命令で構成される。
【０００８】
いくつかの実施形態においては、スマートコントラクトサービスを提供するためのシステムは、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信するように構成される、インターフェースであって、システムは、ターゲットブロックチェーンネットワーク外にある、インターフェースと、信頼できる計算実行環境(TEE)とを含み、TEEは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、1つまたは複数のコンピュータ可読メモリは、クロスチェーンデータについてのリクエストをデータ閲覧サービスプロバイダに送信することと、データ閲覧サービスプロバイダからクロスチェーンデータを受信することと、クロスチェーンデータを使用して結果を生成することとをするように1つまたは複数のコンピュータによって実行可能な命令で構成され、インターフェースは、結果をクライアントに返信するように構成される。
【０００９】
これらの実施形態および他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含み得る。
【００１０】
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。
【００１１】
下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックは、クライアントによって自己設計される。
【００１２】
下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、結果は、クロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するTEEによって生成される。
【００１３】
下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、スマートコントラクトサービスプロバイダによって、クライアントに、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明するステップをさらに含む。
【００１４】
下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、クライアントからクロスチェーンデータを処理するためのリクエストを受信することに先立って、スマートコントラクトサービスプロバイダによって、クライアントに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するステップをさらに含む。
【００１５】
下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するステップと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダがTEEを含んでいることを検証するステップをさらに含む。
【００１６】
下記の特徴のいずれかと組み合わせることが可能な第7の特徴としては、スマートコントラクトサービスプロバイダによって、結果をターゲットブロックチェーンネットワークにアップロードするステップをさらに含む。
【００１７】
下記の特徴のいずれかと組み合わせることが可能な第8の特徴としては、結果をターゲットブロックチェーンネットワークにアップロードするステップと、スマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するステップとをさらに含む。
【００１８】
下記の特徴のいずれかと組み合わせることが可能な第9の特徴としては、スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む。
【００１９】
下記の特徴のいずれかと組み合わせることが可能な第10の特徴としては、結果は、秘密鍵を使用してTEEによって署名される。
【００２０】
下記の特徴のいずれかと組み合わせることが可能な第11の特徴としては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【００２１】
いくつかの実施形態においては、アクションは、ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成するステップであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ステップと、クライアントから、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信するステップであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ステップと、クライアントによって、スマートコントラクトサービスプロバイダから結果を受信するステップであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、ステップとを含む。他の実施形態は、対応するシステムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
【００２２】
いくつかの実施形態においては、非一時的コンピュータ可読記憶媒体は、1つまたは複数のコンピュータに結合され、ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成することであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ことと、クライアントから、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、クライアントによって、スマートコントラクトサービスプロバイダから結果を受信することであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、こととをするように1つまたは複数のコンピュータによって実行可能な命令で構成される。
【００２３】
いくつかの実施形態においては、システムは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、1つまたは複数のコンピュータ可読メモリは、ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成することであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ことと、クライアントから、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、クライアントによって、スマートコントラクトサービスプロバイダから結果を受信することであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、こととをするように1つまたは複数のコンピュータによって実行可能な命令で構成される。
【００２４】
これらの実施形態および他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含み得る。
【００２５】
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、クライアントによって、受信した結果をターゲットブロックチェーンネットワークに送信するステップをさらに含む。
【００２６】
下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、クライアントによって、スマートコントラクトサービスプロバイダがTEEを含んでいることを検証するステップをさらに含む。
【００２７】
下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、クライアントによって、TEEがリクエスト内のクロスチェーンデータを処理するためのスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するステップをさらに含む。
【００２８】
下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、クライアントによって、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを設計するステップをさらに含む。
【００２９】
下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、クライアントは、ソフトウェア開発キット(SDK)を含む。
【００３０】
下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、結果は、秘密鍵を使用してTEEによって署名され、方法は、クライアントによって、秘密鍵に対応する公開鍵を使用して受信した結果を復号するステップをさらに含む。
【００３１】
下記の特徴のいずれかと組み合わせることが可能な第7の特徴としては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、クライアントによって、クロスチェーンデータを処理するためのリクエストを暗号化するステップをさらに含む。
【００３２】
下記の特徴のいずれかと組み合わせることが可能な第8の特徴としては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【００３３】
本明細書はまた、1つまたは複数のプロセッサに結合されるとともに、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供した方法の実施形態による処理を行わせる命令を記憶している、1つまたは複数の非一時的コンピュータ可読記憶媒体を提供している。
【００３４】
本明細書は、本明細書で提供した方法を実施するためのシステムをさらに提供している。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるとともに命令を記憶しているコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行されると、命令は、1つまたは複数のプロセッサに、本明細書で提供した方法の実施形態により処理を行わせる、コンピュータ可読記憶媒体とを含む。
【００３５】
説明したオフチェーンスマートコントラクトサービスプロバイダは、任意の特定のブロックチェーンネットワークと結合されていない、そのため、提供したサービスは、(例えば、特定のブロックチェーンネットワークについて構成された)特定の形式のコントラクトに限定されず、ユーザに定義されたオフチェーン計算をサポートする。加えて、説明したオフチェーンスマートコントラクトサービスプロバイダは、クロスチェーンデータ閲覧をサポートし、相互に信頼できない関係者が1つまたは複数のブロックチェーンネットワークからプライベートデータを通じてスマートコントラクトを動作させることを可能にし得る。説明している技法は、いくつかの利点を達成し得る。例えば、計算を実行するために中間媒体としてTEEを使用することは、データのプライバシーを保護し得る。さらに、計算タスクをブロックチェーンネットワークからオフチェーンTEEへとオフロードすることは、ブロックチェーンネットワークの計算時間およびリソースを節約し得る。加えて、ユーザはそれが必要とするおよび要求する計算のための計算ロジックを自己設計し得るため、TEEはこれらの計算ロジックを使用して計算を実行し、様々な計算をよりフレキシブルな方法で行うことができる。
【００３６】
本明細書による方法が本明細書に記載の態様および特徴の任意の組合せを含み得ることは諒解されよう。すなわち、本明細書による方法が、本明細書に記載の態様および特徴の組合せに特に限定されるわけではなく、提供した態様および特徴の任意の組合せも含む。
【００３７】
本明細書の1つまたは複数の実施形態の詳細を以下の添付の図面および説明に記載している。本明細書の他の特徴および利点が説明および図面からおよび特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００３８】
【図１】本明細書の実施形態を実行するために使用され得る環境の例を示す図である。
【図２】本明細書の実施形態による、概念的機構の例を示す図である。
【図３】本明細書の実施形態による、クロスチェーンデータサービスをクライアントに提供するプロセスの例を示す図である。
【図４】本明細書の実施形態により実行され得るプロセスの例を示す図である。
【図５】本明細書の実施形態による、クロスチェーンデータ処理装置のモジュールを図示している図の例を示す図である。
【図６】本明細書の実施形態による、別のクロスチェーンデータ処理装置のモジュールを図示している図の例を示す図である。
【発明を実施するための形態】
【００３９】
様々な図面における類似の参照記号は類似の要素を示す。
【００４０】
本明細書の実施形態は、ブロックチェーン技術(ブロックチェーンオフチェーンスマートコントラクトサービス、または、単にスマートコントラクトサービスと称する)に基づいて、オフチェーンスマートコントラクトサービスのためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、信頼できる実行環境においてクロスチェーンデータを処理することができるオフチェーンスマートコントラクトサービスを提供することを目的としている。
【００４１】
本明細書の実施形態のためのさらなるコンテキストを提供するために、上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)、およびブロックチェーンネットワークとも称することができる、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でトランザクションを実施しデータを記憶することを可能にする。ブロックチェーンという用語を、任意の特定のユースケースを指すのではなく、一般的にDLSを指すために本明細書では使用している。
【００４２】
ブロックチェーンは、トランザクションが変更不可能となる方法でトランザクションを記憶するデータ構造であり、後ほど検証することができる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内のその直前にある前のブロックに連結される。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによって既に検証されているトランザクションは、ハッシュ化され、Merkleツリーに符号化される。Merkleツリーは、ツリーのリーフノードにおけるデータがハッシュ化され、ツリーの各ブランチにおけるすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方へと進行し続け、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶している。ツリーに記憶されているトランザクションであることを意味するハッシュは、それがツリーの構造と一致しているかどうかを決定することによって素早く検証され得る。
【００４３】
ブロックチェーンが、トランザクションを記憶するためのデータ構造であるのに対して、ブロックチェーンネットワークは、1つまたは複数のブロックチェーンを管理、更新、および保持するコンピューティングノードのネットワークである。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
【００４４】
パブリックブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。例えば、数百、数千、さらには数百万のエンティティがパブリックブロックチェーンネットワークに協力し得るし、その各々がパブリックブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、パブリックブロックチェーンネットワークを、関与エンティティに対するパブリックネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加するために、大部分のエンティティ(ノード)はブロックごとに記帳する必要がある。例示的なパブリックブロックチェーンネットワークは、ブロックチェーンと称する分散型台帳を活用する特定のピア・ツー・ピア支払ネットワークを含む。しかしながら、上述したように、ブロックチェーンという用語を、任意の特定のブロックチェーンネットワークを特に指すのではなく、一般的に分散型台帳を指すために使用している。
【００４５】
一般に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてに共有され、グローバルブロックチェーンに記憶されている。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全ステータスコンセンサスとなる。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがパブリックブロックチェーンネットワークにおいて実施される。コンセンサスプロトコルの例には、限定ではないが、プルーフ・オブ・ワーク(POW)、プルーフ・オブ・ステーク(POS)、およびプルーフ・オブ・オーソリティ(POA)を含む。POWを非限定的な例として本明細書ではさらに参照する。
【００４６】
一般に、プライベートブロックチェーンネットワークは、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する特定のエンティティに対して提供されるものである。エンティティは、どのノードがブロックチェーンネットワークに関与することができるかを制御する。それゆえ、プライベートブロックチェーンネットワークは、誰がネットワークに関与することができるかについての制約、およびそれらの関与のレベル(例えば、あるトランザクションに限定)についての制約を設定している、パーミッション型ネットワークと一般的には称される。(例えば、既存の関与者が新規エンティティの追加について表決する、監督機関が許可を制御することができるといった)様々なタイプのアクセス制御機構を使用することができる。
【００４７】
一般に、コンソーシアムブロックチェーンネットワークは、関与エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは権限を与えられたノードのセットによって制御され、1つまたは複数のノードがそれぞれのエンティティ(例えば、金融機関、保険会社)によって管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、コンソーシアムブロックチェーンネットワークを、関与エンティティに対するプライベートネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、各エンティティ(ノード)はブロックごとに記帳する必要がある。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、少なくともエンティティ(ノード)のサブセット(例えば、少なくとも7つのエンティティ)はブロックごとに記帳する必要がある。
【００４８】
ブロックチェーンは、パブリックまたはプライベートピア・ツー・ピアネットワーク内のトランザクションを記録する、改竄耐性のある、共有デジタル台帳である。台帳はネットワーク内のすべてのメンバノードに分散されており、ネットワークにおいて生じるアセットトランザクションの履歴はブロックに恒久的に記録される。トランザクションに関与することに先立って、ブロックチェーン上のノードは、様々な技法を使用して計算を実行する必要があり得る。現在のソリューションの下では、各ブロックチェーンは独立しているため、一方のブロックチェーンのノードが他方のチェーンと通信することはできない。例えば、ノードが他のブロックチェーンからデータを読み出すまたは他のブロックチェーンとデータを交換することはできない。加えて、たとえノードが計算を実行するために他のブロックチェーンからデータを読み出す必要がなくとも、ブロックチェーンの全体でそのような計算を行うことは、それが複雑な計算ロジックおよびプロトコルを必要とする場合には、ブロックチェーンの多くの時間および計算リソースを消費し得る。
【００４９】
関与エンティティ間でパブリックとなっているコンソーシアムブロックチェーンネットワークを参照して、本明細書の実施形態をここではさらに詳細に説明している。しかしながら、本明細書の実施形態が任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることも考えられる。
【００５０】
上記の事情を考慮してここではさらに詳細に本明細書の実施形態を説明している。より詳細には、上述したように、本明細書の実施形態は、信頼できる実行環境においてクロスチェーンデータを処理することができるオフチェーンスマートコントラクトサービスを提供することを目的としている。
【００５１】
これらの問題に対処するための技法は、計算を行うためにオフチェーンスマートコントラクトサービスを使用し、クロスチェーンデータを処理することを含み得る。スマートコントラクトは、情報的な様式でコントラクトを周知、検証、または実施するように設計されたコンピュータ合意であり得る。スマートコントラクトは、信頼できるトランザクションを第三者の関与なしで行うことを可能にする。これらのトランザクションは、追跡可能かつ不可逆的である。スマートコントラクトは、トランザクションの合意またはルールを具現化するロジックまたはコンピュータプログラムを含む。例えば、スマートコントラクトは、ある条件下における関係者間のデジタル通貨または資産の送金を制御するロジックを含み得る。スマートコントラクトは、プログラミング言語で符号化され、ブロックチェーンネットワークランタイムプラットフォームにデプロイされ得る。
【００５２】
いくつかの実施形態においては、オフチェーン処理は、スマートコントラクトを実行または実施するために使用され得る。例えば、スマートコントラクトに含まれるロジックは、ブロックチェーンネットワークの信頼と透明性とをそのまま維持しつつ、例えば、オフチェーンスマートコントラクトサービスプロバイダによって、ブロックチェーンネットワークの境界外で行われ得る。例えば、オフチェーンスマートコントラクトサービスプロバイダは、ブロックチェーンネットワークから独立したコンピュータ、サーバ、または他のタイプのデータ処理装置であり得る。オフチェーン処理を用いて、スマートコントラクトロジックは、ブロックチェーンネットワークの信頼と透明性とを維持するために信頼できる実行環境(TEE)において実行され得る。TEEは、ブロックチェーンネットワークの外部において、スマートコントラクト内のロジックを実行し、スマートコントラクトに含まれる他の処理およびトランザクションを行うために使用され得る。TEEは、コードをスマートコントラクトに紐付けて、本人確認、キー管理、セログラフィカルサービス、および外界とのインタラクションなどの多数のサービスを提供し得る。TEEの信頼できる環境は、認可されたコードのみがデータにアクセスすることを許可されていることを保証しており、そのような保護は、その内部でのコードの実行全体にわたって実施される。いくつかの実施形態においては、オフチェーンスマートコントラクトサービスによって返信されたスマートコントラクトの実行結果が、例えば、ブロックチェーンネットワークの状態を更新するために、ブロックチェーンネットワークにアップロードまたさもなければ送信され得る。そのため、オフチェーンスマートコントラクトサービスプロバイダは、ブロックチェーンネットワークから計算負荷をオフロードし、様々な複雑な計算ロジックおよびプロトコルを実施する際により多くのフレキシビリティを有し得る。
【００５３】
いくつかの実施形態においては、説明したオフチェーンスマートコントラクトサービスプロバイダは、任意の特定のブロックチェーンネットワークと結合されていない、そのため、提供したサービスは、(例えば、特定のブロックチェーンネットワークについて構成された)特定の形式のコントラクトに限定されず、ユーザに定義されたオフチェーン計算をサポートする。
【００５４】
加えて、説明したオフチェーンスマートコントラクトサービスプロバイダは、クロスチェーンデータ閲覧をサポートし、相互に信頼できない関係者が1つまたは複数のブロックチェーンネットワークからプライベートデータを通じてスマートコントラクトを動作させることを可能にし得る。例えば、ブロックチェーンネットワークAのクライアントは、ブロックチェーンネットワークAからのクライアントのデータだけでなく、異なるブロックチェーンネットワーク、ブロックチェーンネットワークBからのデータも処理するスマートコントラクトを定義し得る。いくつかの実施形態においては、クライアントは、オフチェーンコントラクトサービスを呼び出して、その定義されたスマートコントラクトを実行する。オフチェーンコントラクトサービスは、ブロックチェーンネットワークAおよびブロックチェーンネットワークBから要求されたデータを取り出し、ブロックチェーンネットワークAおよびブロックチェーンネットワークBの外でクライアントが定義したスマートコントラクトを実行して結果を取得し、その後、結果をブロックチェーンネットワークAに送信してクライアントの状態を更新し得る。
【００５５】
ブロックチェーンネットワークノードが複雑な計算を実行することを可能および容易にし、1つまたは複数の他のブロックチェーンネットワークからデータを使用してそのような計算を行う、例示的な技法を説明する。例示的な技法は、信頼できる実行環境(TEE)に基づき得る。TEEは、環境にロードされたコードおよびデータの安全性、機密性、および完全性を保証するホストプロセッサ上のセキュアな領域である。TEEは、隔離された実行、信頼できるアプリケーションの完全性、信頼できるデータの機密性、およびセキュアなストレージなどといったいくつかの安全性の特徴を有する、隔離された実行環境(例えば、専用かつ隔離されたハードウェアを使用して)を提供する。説明したオフチェーンスマートコントラクトサービスプロバイダは、TEEを含み、TEE内のブロックチェーンネットワーク計算を実施し得る。説明している技法は、いくつかの利点を有し得る。例えば、計算を実行するために中間媒体としてTEEを使用することは、データのプライバシーを保護し得る。例えば、ブロックチェーンネットワークAのユーザは、計算を行うためにブロックチェーンネットワークBおよびブロックチェーンネットワークCからのデータを必要とする。通常、ブロックチェーンネットワークBおよびCの各々は、クローズドチェーンであり、プライバシーへの懸念に起因してそれらについてのデータをブロックチェーンネットワークAのユーザと進んで共有することはしない。TEEを使用して、ブロックチェーンネットワークBおよびCからのデータについての詳細な情報をブロックチェーンネットワークAに開示することなく計算を実行し得るし、クロスチェーンデータに基づいてスマートコントラクトのクロスチェーンデータ閲覧および実行をかわらず実現し得る。さらに、前述したように、チェーンのブロックチェーンネットワークコスト計算リソース上で複雑な計算を行う。計算タスクをブロックチェーンネットワークからオフチェーンTEEへとオフロード処理することは、ブロックチェーンネットワークの計算時間およびリソースを節約し得る。加えて、それが必要とするおよび要求する計算のための計算ロジックをユーザが自己設計し得るため、TEEはこれらの計算ロジックを使用して計算を実行し、様々な計算をよりフレキシブルかつ拡張性のある方法で行うことができる。
【００５６】
いくつかの実施形態においては、提案した技法は、プライバシー保護を有する普遍的なスマートコントラクトサービスを提供し得る。例えば、金融トランザクションのために使用されるスマートコントラクトは、プライバシーへの懸念に起因して送金量および関係者(送信元および支払先など)を秘匿化する必要がある。提案したアプローチの下では、送信元は、トランザクションの内容をまず暗号化して、オフチェーンスマートコントラクトサービスを呼び出し得る。オフチェーンスマートコントラクトサービスは、TEE内のトランザクションの内容を復号し、TEE内のトランザクションを実行し、その後、トランザクション結果を(例えば、トランザクションが正しいロジックで実行されている証明を用いて)暗号文の形式でチェーンに返信し得る。ブロックチェーンネットワークが返信された結果を検証した後に、結果は、ブロックチェーンネットワーク上で最新の状態を反映するために更新され得る。
【００５７】
いくつかの実施形態においては、提案した技法は、クロスチェーンデータ計算サービスを提供し得る。例として、提案した技法は、パーソナル信用スコアを計算するために使用され得る。実際には、人々は信用力調査を含む様々なサービスに関与する必要に迫られる。例えば、銀行ローンの申し込み、不動産物件の賃貸、およびレンタカーである。各サービスは、独立したコンソーシアムブロックチェーンネットワークまたはプライベートブロックチェーンネットワークによって運用および維持管理され得る。各サービスは他のサービスとデータを共有することを望んでいない場合があり、それらはいくつかのケースにおいてそれらの保有パーソナルデータを暗号化している場合がある。様々なエリアからある人物の包括的な信用力調査を取得するために、提案したソリューションを使用し得る。いくつかの実施形態においては、ユーザは、信用計算ロジック(コード)、プライベートチャネルを使用して信用力調査要求を開始する(例えば、署名または秘密鍵を使用して)データリクエスト権限を提供し得る。提案したソリューションにおけるサービスは、複数のチェーンからデータを要求し、TEE内のデータを復号しており、結果が正しい計算ロジックの下で生成されていることを保証している。結果およびその結果についての証明書がユーザに返信され、ユーザは検証の証明を経てデータおよびロジックの機密性および完全性を保証することができる。ユーザは、その後、本結果および証明を使用して、認証済みのパーソナル信用スコアをそのブロックチェーンネットワーク上の他のノードに提供し得る。
【００５８】
いくつかの実施形態においては、ユーザがブロックチェーンネットワークのコントラクトの下でトランザクションを実行する必要がある場合には、それは、事前にコントラクト内の複雑な計算をオフチェーンスマートコントラクトサービスに引き渡し、その後、ブロックチェーンネットワークに結果をアップロードおよび記憶する。いくつかの実施形態においては、結果を、ブロックチェーンネットワーク上で行われるトランザクションへの入力として直接使用しようすることができ、ブロックチェーンネットワークのコントラクトの動作時間を低減し、効率を改善している。そのような実施形態においては、ユーザがブロックチェーンネットワーク上で実施されるプライベートコントラクトまたはセキュリティプロトコルを公開することを望んでいない場合には、オフチェーンスマートコントラクトサービスを使用して計算をなし得るし、ブロックチェーンネットワークのデータに信頼できる形でアクセスし得る。
【００５９】
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を示している。いくつかの例においては、環境100は、エンティティがブロックチェーンネットワーク102に関与することを可能にする。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。いくつかの例においては、ネットワーク110は、ブロックチェーンネットワーク102との通信およびブロックチェーンネットワーク102内の通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。いくつかのケースにおいては、コンピューティングデバイス106、108は、クラウドコンピューティングシステムのノード(図示せず)であり得る、または、コンピューティングデバイス106、108の各々は、ネットワークによって相互接続された多数のコンピュータを含み、分散処理システムとして機能する、独立したクラウドコンピューティングシステムであり得る。
【００６０】
図示した例においては、コンピューティングシステム106、108は各々、ブロックチェーンネットワーク102内のノードとしての関与を可能にする任意の適切なコンピューティングシステムを含み得る。コンピューティングデバイスの例には、限定ではないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例においては、コンピューティングシステム106、108は、ブロックチェーンネットワーク102と相互接続するための1つまたは複数のコンピュータ実施サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(例えば、他の関与者)とのそのトランザクションを管理するために使用するトランザクション管理システムなどといった、第1のエンティティ(例えば、関与者A)のコンピュータ実施サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(例えば、他の関与者)とのそのトランザクションを管理するために使用するトランザクション管理システムなどといった、第2のエンティティ(例えば、関与者B)のコンピュータ実施サービスをホストすることができる。図1の例においては、ブロックチェーンネットワーク102を、ノードのピア・ツー・ピアネットワークとして表しており、コンピューティングシステム106、108は、ブロックチェーンネットワーク102に関与する、第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
【００６１】
図2は、本明細書の実施形態による、概念的機構200の例を示している。概念的機構200の例は、関与者A、関与者B、および関与者Cにそれぞれ対応する関与者システム202、204、206を含む。各関与者(例えば、ユーザ、企業)は、その少なくとも一部がブロックチェーン216に情報を変更不可能な形で記録する多数のノード214を含むピア・ツー・ピアネットワークとして提供されたブロックチェーンネットワーク212に関与する。単一のブロックチェーン216をブロックチェーンネットワーク212内に概略的に図示しているが、本明細書でさらに詳細に説明しているように、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって維持管理される。
【００６２】
図示した例においては、関与者システム202、204、206の各々は、関与者A、関与者B、および関与者Cによってまたはそれらの代わりにそれぞれ提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書で使用されており、ノードは、ブロックチェーンネットワーク212に接続されている個々のシステム(例えば、コンピュータ、サーバ)を一般的に指し、それぞれの関与者がブロックチェーンネットワークに関与することを可能にする。図2の例においては、関与者は、各ノード214に対応する。しかしながら、関与者がブロックチェーンネットワーク212内の複数のノード214を処理し得ることおよび/または複数の関与者がノード214を共有し得ることも考えられる。いくつかの例においては、関与者システム202、204、206は、あるプロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用して、および/またはリモートプロシージャコール(RPC)を使用して、ブロックチェーンネットワーク212と通信するまたはブロックチェーンネットワーク212を介して通信する。
【００６３】
ノード214は、ブロックチェーンネットワーク212内の関与についての様々な度合いを有し得る。例えば、いくつかのノード214がコンセンサスプロセス(例えば、ブロックをブロックチェーン216に追加するマイナーノードとして)関与し得る一方で、他のノード214はコンセンサスプロセスには関与しない。別の例としては、いくつかのノード214がブロックチェーン216の完全なコピーを記憶する一方で、他のノード214はブロックチェーン216の一部のコピーのみを記憶する。例えば、データアクセス権は、それぞれの関与者がそのそれぞれのシステムに記憶しているブロックチェーンデータに制限し得る。図2の例においては、関与者システム202、204、206は、ブロックチェーン216の完全なコピー216'、216''、216'''をそれぞれ記憶している。
【００６４】
ブロックチェーン(例えば、図2)のブロックチェーン216は、各ブロックがデータを記憶しているブロックのチェーンで構成される。データの例としては、2つ以上の関与者間のトランザクションを表すトランザクションデータを含む。トランザクションを非限定的な例として本明細書では使用しているが、任意の適切なデータがブロックチェーンに記憶され得ること(例えば、ドキュメント、画像、ビデオ、オーディオ)も考えられる。トランザクションの例には、限定ではないが、価値のあるもの(例えば、資産、製品、サービス、および通貨)の交換を含み得る。トランザクションデータは、ブロックチェーン内に変更不可能な形で記憶される。すなわち、トランザクションデータを変更することはできない。
【００６５】
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長のハッシュ値(文字列データとしても提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにおけるわずかな変化でさえも完全に異なるハッシュ値という結果になることを保証している。さらに、上述したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なく、ハッシュ値の長さは固定される。ハッシュ化は、ハッシュ機能によってトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ機能の例には、限定ではないが、256ビットハッシュ値を出力するセキュアなハッシュアルゴリズム(SHA)-256を含む。
【００６６】
複数のトランザクションのトランザクションデータがハッシュ化されブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供されると、それら自身がハッシュ化され別のハッシュを提供する。このプロセスは、すべてのトランザクションがブロックに記憶されるように、単一のハッシュ値が提供されるまで繰り返される。このようなハッシュ値は、Merkleルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションについての何らかの変化は、そのハッシュ値における変化、最終的に、Merkleルートハッシュにおける変化をもたらすことになる。
【００６７】
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに関与し、競合してブロックをブロックチェーンに追加する。そのようなノードをマイナー(またはマイナーノード)と称する。上記で記載したPOWを非限定的な例として使用する。
【００６８】
マイナーノードは、コンセンサスプロセスを実行して、トランザクションをブロックチェーンに追加する。複数のマイナーノードがコンセンサスプロセスに関与しているが、1つのマイナーノードのみがブロックをブロックチェーンに書き込むことができる。すなわち、マイナーノードは、コンセンサスプロセスにおいて競合してそれらのブロックをブロックチェーンに追加する。さらに詳細には、マイナーノードは、(例えば、存在するのであれば、ブロックに含めることができるトランザクションの数についての所定の制限まで)トランザクションプールから保留となっているトランザクションを定期的に収集する。トランザクションプールは、ブロックチェーンネットワーク内の関与者からトランザクションメッセージを含む。マイナーノードは、ブロックを構築し、トランザクションをブロックに追加する。トランザクションをブロックに追加する前に、マイナーノードは、トランザクションのいずれかがブロックチェーンのブロックに既に含まれているかどうかをチェックする。あるトランザクションが別のブロックに既に含まれている場合には、そのトランザクションは破棄する。
【００６９】
マイナーノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、単一のハッシュ値がブロック内のすべてのトランザクションに提供される(Merkleルートハッシュ)まで、ハッシュ値がペアとなるように組み合わせてさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。マイナーはまた、ブロックチェーン内の最新のブロック(すなわち、ブロックチェーンに追加された最終ブロック)のハッシュ値を決定する。マイナーノードはまた、ノンス値およびタイムスタンプをブロックヘッダに追加する。マイニングプロセスにおいては、マイナーノードは、所要のパラメータを満たすハッシュ値を探し出すことを試みる。マイナーノードは、所要のパラメータを満たすハッシュ値を探し出すまでノンス値を変化し続ける。
【００７０】
ブロックチェーンネットワーク内のいずれのマイナーも、所要のパラメータを満たすハッシュ値を探し出すことを試み、このようにして、互いに競合する。最終的には、マイナーノードの1つが、所要のパラメータを満たすハッシュ値を探し出し、これをブロックチェーンネットワーク内の他のマイナーノードのすべてに公告する。他のマイナーノードは、ハッシュ値を検証し、正しいと決定された場合には、ブロック内の各トランザクションを検証し、ブロックを受諾し、ブロックをそれらのブロックチェーンのコピーに付け加える。このように、ブロックチェーンのグローバルな状態が、ブロックチェーンネットワーク内のすべてのマイナーノードにわたって一致することになる。上記で説明したプロセスはPOWコンセンサスプロトコルである。
【００７１】
非限定的な例を図2を参照して提供している。この例においては、関与者Aが一定額の資金を関与者Bに送金することを望んでいる。関与者Aは、トランザクションメッセージ(例えば、From、To、およびValueのフィールを含む)を生成し、ブロックチェーンネットワークにトランザクションメッセージを送信する、ブロックチェーンネットワークは、トランザクションメッセージをトランザクションプールに追加する。ブロックチェーンネットワーク内の各マイナーノードは、ブロックを作成し、(例えば、存在するのであれば、ブロックに追加することができるトランザクションの数の所定の制限まで)トランザクションプールからすべてのトランザクションを取り出し、トランザクションをブロックに追加する。このように、関与者Aによって発行されたトランザクションが、マイナーノードのブロックに追加される。
【００７２】
いくつかのブロックチェーンネットワークにおいては、暗号化がトランザクションのプライバシーを保持するために実施される。例えば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を理解することができないように、2つのノードがトランザクションをプライベートな状態を維持することを望む場合には、ノードはトランザクションデータを暗号化し得る。暗号化方法の例には、限定ではないが、対称暗号化、および非対称暗号化を含む。対称暗号化とは、暗号化(平文から暗号文を生成すること)および復号(暗号文から平文を生成すること)の両方に関する単一の鍵を使用する暗号化プロセスを指す。対称暗号化においては、同一の鍵が複数のノードで利用可能であるため、各ノードがトランザクションデータを暗号化/復号し得る。
【００７３】
非対称暗号化は、各々が秘密鍵および公開鍵を含む鍵のペアを使用しており、秘密鍵はそれぞれのノードにのみに対して既知となっており、公開鍵はブロックチェーンネットワーク内の他のノードのいずれかまたはすべてに対して既知となっている。あるノードは、別のノードの公開鍵を使用してデータを暗号化し、暗号化されたデータは、他のノードの秘密鍵を使用して復号され得る。例えば、図2を再び参照すれば、関与者Aは、関与者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを関与者Bに送信し得る。関与者Bは、その秘密鍵を使用して、暗号化されたデータ(暗号文)を復号し、元のデータ(平文)を抽出し得る。ノードの公開鍵で暗号化されたメッセージのみが、ノードの秘密鍵を使用して復号され得る。
【００７４】
非対称暗号化は、トランザクション内の関与者がトランザクション内の他の関与者だけでなくトランザクションの有効性を確認することを可能にするデジタル署名を提供するために使用される。例えば、あるノードは、メッセージをデジタル的に署名し得るし、別のノードは、関与者Aのデジタル署名に基づいてメッセージがそのノードによって送信されたことを確認し得る。デジタル署名はまた、メッセージが送信中に改竄されていないことを保証するために使用され得る。例えば、図2を再び参照すれば、関与者Aは、メッセージを関与者Bに送信しようとしている。関与者Aは、メッセージのハッシュを生成し、その後、その秘密鍵を使用して、ハッシュを暗号化して、暗号化したハッシュとしてデジタル署名を提供する。関与者Aは、デジタル署名をメッセージに付け加え、デジタル署名付きのメッセージを関与者Bに送信する。関与者Bは、関与者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。関与者Bは、メッセージをハッシュ化し、ハッシュを比較する。ハッシュが同一である場合には、関与者Bは、メッセージが確かに関与者Aからのものであり改竄されていないことを確認することができる。
【００７５】
図3は、本明細書の実施形態による、クロスチェーンデータサービスをクライアントに提供するプロセス300の例を示している。いくつかの実施形態においては、クライアント302は、ターゲットブロックチェーンネットワーク306などのブロックチェーンネットワークと通信するアプリケーション(例えば、クライアントアプリケーション)を表している。例えば、クライアント302は、ブロックチェーンネットワーク306へアクセスするためのおよびブロックチェーンネットワーク306と通信するためのクライアントソフトウェア開発キット(SDK)を含み得る。クライアント302は、ユーザ(図3には図示せず)のデバイス(クライアント端末またはノードとも称する)にインストールされ得る。いくつかの実施形態においては、ユーザは、クライアント302を使用してトランザクションを開始することによって、ターゲットブロックチェーンネットワーク306のトランザクションに関与し得る。いくつかの実施形態においては、ユーザのアカウント情報は、ターゲットブロックチェーンネットワーク306上に記憶され得るし、ユーザは、ターゲットブロックチェーンネットワーク上でトランザクションを行う権限を有する。クライアント302は、ターゲットブロックチェーンネットワーク306上に記憶されているデータにアクセスし読み出し得る。いくつかの実施形態においては、クロスチェーンデータ、例えば、1つまたは複数の異なるブロックチェーンネットワーク(例えば、図3中の316、328および320)からのデータを取得するために、クライアント302は、ターゲットブロックチェーンネットワーク306のクライアント302と他の異なるブロックチェーンネットワークとの間の通信ギャップを橋渡しをするために、リレーまたは信頼できるデータ閲覧サービスプロバイダ312を必要とし得る。
【００７６】
いくつかの実施形態においては、クライアント302は、ターゲットブロックチェーンネットワークのコントラクトの下で機密トランザクションを開始し得るし、そのようなトランザクション情報は、クライアント302のユーザおよび場合によってはトランザクションの他の関与者または関係者のみに対して閲覧可能となるが、ブロックチェーンネットワーク上または外の任意の他の関係者に対しては閲覧可能とならない。いくつかの実施形態においては、クライアント302は、結果をターゲットブロックチェーンネットワーク306上または外の別のエンティティに提示する必要がある。
【００７７】
いくつかの実施形態においては、ターゲットブロックチェーンネットワーク316のクライアント302のトランザクションは、ターゲットブロックチェーンネットワーク316からのデータ、クロスチェーンデータ(例えば、1つまたは複数の異なるブロックチェーンネットワーク316、318、または320からのデータ)、またはその両方を使用した様々な計算処理を含み得る。いくつかの実施形態においては、ターゲットブロックチェーンネットワーク316のクライアント302のトランザクションは、ターゲットブロックチェーンネットワーク316からデータ、クロスチェーンデータ、またはその両方を使用して計算された結果を含み得る。いくつかの実施形態においては、トランザクションは、様々な計算ロジックおよびプロトコルを含み得る。いくつかの実施形態においては、計算が、複雑なものとなると、ブロックチェーンネットワークの計算リソースを消費し得る。いくつかの実施形態においては、トランザクションは、クライアント302によって設計されたスマートコントラクトに指定され得る。
【００７８】
例えば、図3に示しているように、クライアント302は、例えば、クライアントSDK304を使用して、自己設計された計算ロジックおよびプロトコルを含むスマートコントラクトを準備して、クロスチェーンデータ(例えば、1つまたは複数の異なるブロックチェーンネットワーク316、318、または320からのデータ)に基づいてトランザクションを行い得る。クライアント302は、スマートコントラクトを実行のためのスマートコントラクトサービスプロバイダ308に送信し得る。スマートコントラクトサービスプロバイダ308は、スマートコントラクトサービスプロバイダ308がターゲットブロックチェーンネットワーク306から独立してスマートコントラクトに定義されているような計算ロジックおよびプロトコルを行うことができるようにターゲットブロックチェーンネットワーク306外に存在する。
【００７９】
スマートコントラクトを受信および分析すると、スマートコントラクトサービスプロバイダ308は、クロスチェーンデータがスマートコントラクトを実行するために必要であると決定する。スマートコントラクトサービスプロバイダ308は、クロスチェーンデータからデータを取得するために、クロスチェーンデータについてのリクエストを信頼できるデータ閲覧サービスプロバイダ312に送信し得る。例えば、クライアント302は、「a+b」の計算を行うことを望む場合がある、ここで、aはターゲットブロックチェーンネットワーク306からデータであり、bはブロックチェーンネットワーク316からプライベートデータである。この場合には、クライアント302から送信されたスマートコントラクトは、aとbとをともに加算する計算ロジックを含むとともに、データaおよびbの指示が存在する。スマートコントラクトサービスプロバイダ308は、ブロックチェーンネットワーク316のプライベートデータbを取得するために、リクエストを信頼できるデータ閲覧サービスプロバイダ312に送信し得る。いくつかの実施形態においては、ユーザのプライバシーを保護するためにスマートコントラクトを暗号化し得る。
【００８０】
いくつかの実施形態においては、オフチェーンスマートコントラクトサービスプロバイダ308は、クラウドベースサーバプロバイダであり得る。いくつかの実施形態においては、そのようなクラウドサーバプロバイダは、Alibaba(登録商標)などの独立した第三者のサービスプロバイダであり得る。いくつかの実施形態においては、複数のエンティティは、クロスチェーンデータのデータリソースであり、それらのいずれも、それら自身のデータを第三者のサービスプロバイダにアップロードすることを望まない。そのようなケースにおいては、これらのエンティティは、スマートコントラクトサービスプロバイダを自身で構築し得る。
【００８１】
オフチェーンスマートコントラクトサービスプロバイダ308は、セキュアな計算実行環境を提供する、信頼できる計算実行環境(TEE)310を含む。いくつかの実施形態においては、計算TEE310は、TEE310内で実行されるデータの安全性を独立して保証する独立したハードウェアモジュールである。いくつかの実施形態においては、ブロックチェーンネットワーク処理のためにTEE310を設定するために、仮想マシン、アプリケーションインターフェース、またはオペレーティングシステムのうちの1つまたは複数は、TEE310がスマートコントラクトに定義された計算ロジックを実行するのに適したものとなるようにプログラム、ハードコード化、またさもなければ、TEE310に設定され得る。いくつかの実施形態においては、スマートコントラクトをオフチェーンスマートコントラクトサービスプロバイダ308に送信する前に、クライアント302は、オフチェーンスマートコントラクトサービスプロバイダ308がTEE310を含んでいることを検証してもよく、TEE310は、クライアント302に対応する実行プログラムまたは環境を含み、例えば、ターゲットブロックチェーンネットワーク306がEthereumベースのブロックチェーンネットワークであるとともにクライアント302のSDK304が(例えば、Solidity言語を使用する)EthereumベースのクライアントSDKである場合には、クライアント302は、クライアント302がスマートコントラクトの実行についてのリクエストをオフチェーンスマートコントラクトサービスプロバイダ308に送信する前に、Ethereumベースの計算ロジックを実行するための(例えば、Solidity言語をサポートする)Ethereum Virtual Machine(EVM)をTEE310が含んでいるかどうかを検証してもよい。
【００８２】
実行スマートコントラクトのためのリクエストを受信した後に、リクエストが暗号化されている場合には、TEE310は、リクエストをまず復号し、スマートコントラクトを解析し、スマートコントラクトを実行するために必要となるデータを識別する。TEE310は、信頼できるデータ閲覧サービスプロバイダ312を呼び出し、例えば、信頼できるデータ閲覧サービスプロバイダ312のアプリケーションプログラムインターフェース(API)314を介して、1つまたは複数の異なるソースからデータを取得し得る。信頼できるデータ閲覧サービスプロバイダ312は、1つまたは複数の異なるブロックチェーンネットワークのプライベートデータを取り込み得る信頼できる関係者である。信頼できるデータ閲覧サービスプロバイダ312は、信頼できるデータをオフチェーンスマートコントラクトサービスプロバイダ308のTEE310に提供し、データプライバシーおよび正確さを保証し得る。
【００８３】
いくつかの実施形態においては、信頼できるデータ閲覧サービスプロバイダ312はまた、例えば、1つまたは複数の異なるブロックチェーンネットワークのうちの正しい記憶場所からデータを取り込むために、TEEを含み得る。いくつかの実施形態においては、信頼できるデータ閲覧サービスプロバイダ312に含まれるTEEのロジックは、データ取り込みのために主に使用され、その取り込まれたデータに対して計算を行う必要がないため、オフチェーンスマートコントラクトサービスプロバイダ308内のTEE310のものより簡素なものとなっている。
【００８４】
いくつかの実施形態においては、TEE310がAPI314を呼び出す前に、二方向検証プロセスがオフチェーンスマートコントラクトサービスプロバイダ308と信頼できるデータ閲覧サービスプロバイダ312との間で実行される。いくつかの実施形態においては、検証プロセス中に、それらの各々が、それがTEEを既に含んでいることを他の関係者に証明する。
【００８５】
いくつかの実施形態においては、信頼できるデータ閲覧サービスプロバイダ312は、ブロックチェーンネットワーク、ブロックチェーンネットワーク協調、またはブロックチェーンネットワークプラットフォームのうちの1つまたは複数(まとめて、1つまたは複数のブロックチェーンネットワークと称する)を含む1つまたは複数の異なるソースから、データを取り込み得る。例示的なブロックチェーンネットワークを、図3ではMychain316、Hiperleger318、およびEthereum320として示している。取得したデータは、取得したデータを使用して計算ロジックを実行するTEE310に返信される。
【００８６】
いくつかの実施形態においては、計算結果を計算TEE310において生成した後に、TEE310は、秘密鍵を用いて結果を署名し、結果の完全性および正確さを証明する。いくつかの実施形態においては、署名は、計算結果がクライアント302によって送信されたスマートコントラクトに含まれる計算ロジックに従ってTEE310によって実行されたことを示す証明である。そのため、結果は、ターゲットブロックチェーンネットワーク306の他のノードによって信頼され得る。
【００８７】
いくつかの実施形態においては、TEE310は、結果をクライアント302に返信する。例えば、クライアント302は、TEE310の秘密鍵に対応する公開鍵を用いて結果を復号する。いくつかの実施形態においては、クライアント302は、クライアント302の状態を更新するために結果を使用することができるように、または、ターゲットブロックチェーンネットワーク306のトランザクションに対する入力として、結果をターゲットブロックチェーンネットワーク306にアップロードする。いくつかの実施形態においては、クライアント302は、ユーザの平均信用スコアを計算するためなどといった、ブロックチェーンネットワークに関連しない目的のために、結果に使用し得る。例えば、ユーザは、様々なチェーン(各々がレンタカー、銀行ローン、または家の賃貸などのサービスプロバイダを表す)からデータ情報を取得し、データを使用してユーザの平均信用スコアを計算し得る。ユーザは、結果を任意のブロックチェーンネットワークにアップロードすることなく、結果を業者に提示することができる。
【００８８】
いくつかの実施形態においては、TEE310は、ターゲットチェーン306に直接、結果を返信し得る。そのような実施形態においては、結果を返信することに先立って、ターゲットブロックチェーンネットワーク306は、オフチェーンスマートコントラクトサービスプロバイダ308とターゲットチェーン306との間に信頼を確立するために、オフチェーンスマートコントラクトサービスプロバイダ308が所要のTEEを含んでいるかどうかを検証し得る。
【００８９】
図4は、本明細書の実施形態により実行され得るプロセス400の例を示している。いくつかの実施形態においては、例示的なプロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。提示を明確にするために、以下の説明は、本説明における他の図に即して方法400を一般的に説明している。例えば、クライアント420は、クライアント302であり得るし、スマートコントラクトサービスプロバイダ430は、オフチェーンスマートコントラクトサービスプロバイダ308であり得るし、信頼できるデータ閲覧サービスプロバイダ440は、信頼できるデータ閲覧サービスプロバイダ312であり得るし、ブロックチェーンネットワーク450は、Mychain316、HyperLeger318、および/またはEthereum320であり得るし、ターゲットブロックチェーンネットワーク410は、図3を参照して説明しているターゲットブロックチェーンネットワーク306であり得る。しかしながら、方法400が、例えば、任意の適切なシステム、環境、ソフトウェア、およびハードウェアによって、または、必要に応じて、システムと、環境と、ソフトウェアと、ハードウェアとの組合せによって、行われ得ることは理解されよう。いくつかの実施形態においては、方法400の様々なステップは、並列して、組み合わせて、ループして、または任意の順序で処理され得る。
【００９０】
412において、ターゲットブロックチェーンネットワーク410に関連付けられたクライアント420は、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成する。クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。いくつかの実施形態においては、クロスチェーンデータを処理するためのリクエストは、スマートコントラクトとして書き込まれ得る。クロスチェーンデータを処理するためのリクエストは、図3を参照して説明している実行スマートコントラクトのためのリクエストの例であり得る。
【００９１】
いくつかの実施形態においては、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックがクライアントによって自己設計されているため、ターゲットブロックチェーンネットワーク410によって定義された計算ロジックに制限されることなく、ユーザがユーザの目的を達成するために自由かつフレキシブルにスマートコントラクト計算ロジックを指定することを可能にしている。そのような実施形態においては、リクエストを生成するステップは、クライアントによって、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを設計するステップを含む。いくつかの実施形態においては、クライアントは、ユーザがスマートコントラクト計算ロジックを書くことを可能にするソフトウェア開発キット(SDK)を含む。いくつかの実施形態においては、計算ロジックは、Solidity言語で書かれ得る。いくつかの実施形態においては、クロスチェーンデータを処理するためのリクエストは、クライアントによって暗号化される。
【００９２】
414において、ターゲットブロックチェーンネットワーク410に関連付けられたクライアント420は、スマートコントラクトサービスプロバイダ430に、ターゲットブロックチェーンネットワーク410とは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを送信する。スマートコントラクトサービスプロバイダ430は、信頼できる計算実行環境(TEE)を含む。スマートコントラクトサービスプロバイダ430は、ターゲットブロックチェーンネットワーク410外にある。いくつかの実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。いくつかの実施形態においては、スマートコントラクトサービスプロバイダ430は、クラウドベースサーバを含む。
【００９３】
いくつかの実施形態においては、クロスチェーンデータ閲覧のためのリクエストは、データ閲覧リクエストである。そのような実施形態においては、TEEは、データを取り込み、データをクライアント420に返信する。
【００９４】
いくつかの実施形態においては、複数のブロックチェーンネットワークからデータを取り込むほかに、TEEは、リクエストに含まれるスマートコントラクト計算ロジックに基づいてデータに対して処理をする。いくつかの実施形態においては、スマートコントラクトサービスプロバイダ430は、TEEがリクエストに含まれるスマートコントラクト計算ロジックを適切に実行するように、例えば、EVMをTEEに組み込むことによって、TEEを設定し得る。
【００９５】
いくつかの実施形態においては、クロスチェーンデータを処理するためのリクエストを送信することに先立って、426において、クライアント420は、スマートコントラクトサービスプロバイダ430がセキュアな方式でスマートコントラクト計算ロジックを実行することが可能であることを検証する。いくつかの実施形態においては、本検証プロセスは、スマートコントラクトサービスプロバイダ430が、クライアント420に、スマートコントラクトサービスプロバイダ430がTEEを含んでいることを証明することと、スマートコントラクトサービスプロバイダ430が、クライアント420に、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明することとを含む。
【００９６】
例えば、TEEは、Intel(登録商標) SGXであり得る。この例においては、スマートコントラクトサービスプロバイダ430がSGXを含んでいるかどうかは、Intel(登録商標)から提供される署名および検証サービスによって証明される。加えて、TEEが所要のEVMを含んでいることを証明するために、TEEは、呼び出されたEVMのスクリプトおよびコードのハッシュを計算し、ハッシュを検証のためにクライアント420に送信する。クライアント420も、完全なEVMコードのセットを有しているため、それが有するEVMのスクリプトおよびコードのハッシュ値を計算することもでき、2つのハッシュ値が一致するかどうかを検証し得る。
【００９７】
いくつかの実施形態においては、リクエストを生成することに先立って、クライアント420とスマートコントラクトサービスプロバイダ430とは、鍵のペアをセットアップし得る。したがって、スマートコントラクトサービスプロバイダ430は、鍵のうちの1つによって署名されたリクエストを受信した後に、ペアのうちから他の鍵によってリクエストを復号し得る。428において、スマートコントラクトサービスプロバイダ430は、受信したリクエストを復号および解析する。いくつかの実施形態においては、リクエストは構築中に所定のデータフォーマットで書かれており、そのようなケースにおいては、リクエストは各データセグメントごとに解析される。
【００９８】
435において、スマートコントラクトサービスプロバイダ430は、クロスチェーンデータを処理するためのリクエストに指定されたクロスチェーンデータを取得するために、クロスチェーンデータについてのリクエストをデータ閲覧サービスプロバイダ440に送信する。いくつかの実施形態においては、リクエストをデータ閲覧サービスプロバイダ440に送信することに先立って、432において、スマートコントラクトサービスプロバイダ430は、信頼できるデータ閲覧サービスプロバイダ440がターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークの信頼できるクロスチェーンデータを提供することが可能であることを検証する。いくつかの実施形態においては、本検証プロセスは、データ閲覧サービスプロバイダ440がTEEを含んでいることをスマートコントラクトサービスプロバイダ430が検証することを含む。
【００９９】
いくつかの実施形態においては、リクエストをデータ閲覧サービスプロバイダ440に送信することに先立って、434において、データ閲覧サービスプロバイダ440とスマートコントラクトサービスプロバイダ430とは、二者間に信頼を確立するために検証プロセスを行い得る。いくつかの実施形態においては、本検証プロセスは、スマートコントラクトサービスプロバイダ430がデータ閲覧サービスプロバイダ440にスマートコントラクトサービスプロバイダ430がTEEを含んでいることを証明することを含む。いくつかの実施形態においては、432および434の両方のステップにおいて、TEEの存在を検証/証明するステップは、ステップ426に記載したものと同一の方法で行われ得る。
【０１００】
436において、データ閲覧サービスプロバイダ440は、ターゲットブロックチェーンネットワーク410とは異なる1つまたは複数のブロックチェーンネットワーク450からのデータを要求する。
【０１０１】
438において、データ閲覧サービスプロバイダ440は、ターゲットブロックチェーンネットワーク410とは異なる1つまたは複数のブロックチェーンネットワーク450からデータを受信する。
【０１０２】
439において、スマートコントラクトサービスプロバイダ430は、データ閲覧サービスプロバイダ440からクロスチェーンデータを受信する。いくつかの実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【０１０３】
441において、スマートコントラクトサービスプロバイダ430のTEEは、スマートコントラクト計算ロジックを実行することによって、受信したクロスチェーンデータを使用して結果を生成する。いくつかの実施形態においては、結果は、クロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するTEEによって生成される。いくつかの実施形態においては、TEEに含まれるEVMは、コードを実行し、計算ロジックおよび受信したデータを使用して計算を行う。
【０１０４】
442において、スマートコントラクトサービスプロバイダ430は、結果を署名する。いくつかの実施形態においては、結果は、秘密鍵によって署名される。例えば、TEEは、TEEの外部からおよびTEEの他のコンポーネントから隔離された秘密鍵を含む。いくつかの実施形態においては、秘密鍵によって署名された署名は、結果がTEE内で生成されたことについての証明である。いくつかの実施形態においては、スマートコントラクトサービスプロバイダ430が結果を署名した後では、最終的な出力結果は、TEEによって生成された結果および秘密鍵によって署名された結果のハッシュ値を含む。
【０１０５】
443において、スマートコントラクトサービスプロバイダ430は、結果をクライアント420に返信する。
【０１０６】
444において、クライアント420は、受信した結果を復号する。いくつかの実施形態においては、クライアント420は、秘密鍵に対応する公開鍵を使用して受信した結果を復号する。そのような実施形態においては、受信した結果は、TEEによって生成された結果、およびその結果についての署名されたハッシュ値を含む。そのような実施形態においては、クライアント420は、秘密鍵を使用してTEEによって生成された結果のハッシュ値を計算し、それを結果の署名されたハッシュ値と比較し、それらが一致する場合には目にする。
【０１０７】
446において、クライアント420は、受信した結果に基づいてトランザクションをターゲットブロックチェーンネットワーク410に送信する。いくつかの実施形態においては、クライアント420は、クライアント420の状態を更新するためにまたはターゲットブロックチェーンネットワーク410上でトランザクションを行うために、トランザクションをターゲットブロックチェーンネットワーク410にアップロードする。
【０１０８】
いくつかの実施形態においては、452において、スマートコントラクトサービスプロバイダ430は、結果をターゲットブロックチェーンネットワーク410にアップロードする。いくつかの実施形態においては、結果をターゲットブロックチェーンネットワークにアップロードすることに先立って、448において、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワークに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明する。ここで検証のために使用される方法は、ステップ426において使用されるものと同一であり得る。
【０１０９】
図5を参照すれば、図5は、本明細書の実施形態による、装置500のモジュールを図示している図の例を示している。装置500は、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダの例示的な実施形態であり得る、ここで、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外に存在する。クロスチェーンデータ処理のための装置500は、ブロックチェーンネットワーク技術に基づいたオフチェーンスマートコントラクトシステムにおいて使用され得る。装置500は、図3および図4に示した実施形態に対応し得るし、装置500は、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信するように構成される、第1の受信機または受信ユニット510と、クロスチェーンデータについてのリクエストを送信するように構成される、送信機または送信ユニット520と、データ閲覧サービスプロバイダからクロスチェーンデータを受信するように構成される、第2の受信機または受信ユニット530と、データ閲覧サービスプロバイダからクロスチェーンデータを生成するように構成される、ジェネレータまたは生成ユニット540と、結果をクライアントに返信するように構成される、ユーザインターフェース550とを含む。
【０１１０】
随意的な実施形態においては、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。
【０１１１】
随意的な実施形態においては、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックは、クライアントによって自己設計される。
【０１１２】
随意的な実施形態においては、装置500は、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを提供するように構成される、第1の提供サブユニットをさらに含む。
【０１１３】
随意的な実施形態においては、クライアントからクロスチェーンデータを処理するためのリクエストを受信することに先立って、装置は、スマートコントラクトサービスプロバイダがTEEを含んでいることを提供するように構成される、第2の提供サブユニットをさらに含む。
【０１１４】
随意的な実施形態においては、装置500は、スマートコントラクトサービスプロバイダがTEEを含んでいることを提供するように構成される、第3の提供サブユニットと、データ閲覧サービスプロバイダがTEEを含んでいることを検証するように構成される、検証サブユニットとをさらに含む。
【０１１５】
随意的な実施形態においては、装置500は、結果をターゲットブロックチェーンネットワークにアップロードするように構成される、アップロードサブユニットをさらに含む。
【０１１６】
随意的な実施形態においては、結果をターゲットブロックチェーンネットワークにアップロードすることに先立って、装置500は、スマートコントラクトサービスプロバイダがTEEを含んでいることを提供するように構成される、第4の提供サブユニットをさらに含む。
【０１１７】
随意的な実施形態においては、スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む。
【０１１８】
随意的な実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【０１１９】
図6を参照すれば、図6は、本明細書の実施形態による、別の装置600のモジュールを図示している図の例を示している。装置600は、ターゲットブロックチェーンネットワークに関連付けられたクライアントの例示的な実施形態であり得る。装置600は、ブロックチェーンネットワーク技術に基づいたオフチェーンスマートコントラクトシステムにおいて使用され得る。装置600は、図3および図4に示した実施形態に対応し得るし、装置600は、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成するように構成される、ジェネレータまたは生成ユニット610であって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ジェネレータまたは生成ユニット610と、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信するように構成される、送信機または送信ユニット620であって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、送信機または送信ユニット620と、スマートコントラクトサービスプロバイダから結果を受信するように構成される、受信機または受信ユニット630であって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、受信機または受信ユニット630とを含む。
【０１２０】
随意的な実施形態においては、装置600は、受信した結果をターゲットブロックチェーンネットワークに送信するように構成される、第1の送信サブユニットをさらに含む。
【０１２１】
随意的な実施形態においては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、装置600は、TEEがリクエスト内のクロスチェーンデータを処理するためのスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するように構成される、検証サブユニットをさらに含む。
【０１２２】
随意的な実施形態においては、装置600は、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを設計するように構成される、設計サブユニットをさらに含む。
【０１２３】
随意的な実施形態においては、クライアントは、ソフトウェア開発キット(SDK)を含む。
【０１２４】
随意的な実施形態においては、結果は、秘密鍵を使用してTEEによって署名され、装置600は、秘密鍵に対応する公開鍵を使用して受信した結果を復号するように構成される、復号サブユニットをさらに含む。
【０１２５】
随意的な実施形態においては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、装置600は、クロスチェーンデータを処理するためのリクエストを暗号化するように構成される、暗号化ユニットをさらに含む。
【０１２６】
随意的な実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【０１２７】
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１２８】
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
【０１２９】
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
【０１３０】
図5は、クロスチェーンデータ処理装置の内部機能モジュールおよび構造を図示している概略図である。クロスチェーンデータ処理装置は、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダの例であり得る。本質的な実行の主体は、電子デバイスであり得るし、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成される、メモリとを含む。
【０１３１】
1つまたは複数のプロセッサは、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、データ閲覧サービスプロバイダに、クロスチェーンデータについてのリクエストを送信することと、データ閲覧サービスプロバイダからクロスチェーンデータを受信することと、TEEによって、クロスチェーンデータを使用して結果を生成することと、結果をクライアントに返信することとをするように構成される。
【０１３２】
必要に応じて、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。
【０１３３】
必要に応じて、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックは、クライアントによって自己設計される。
【０１３４】
必要に応じて、結果は、クロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するTEEによって生成される。
【０１３５】
必要に応じて、1つまたは複数のプロセッサは、クライアントに、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明するように構成される。
【０１３６】
必要に応じて、クライアントからクロスチェーンデータを処理するためのリクエストを受信することに先立って、1つまたは複数のプロセッサは、クライアントに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するように構成される。
【０１３７】
必要に応じて、1つまたは複数のプロセッサは、データ閲覧サービスプロバイダに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明することと、データ閲覧サービスプロバイダがTEEを含んでいることを検証することとをするように構成される。
【０１３８】
必要に応じて、1つまたは複数のプロセッサは、結果をターゲットブロックチェーンネットワークにアップロードするように構成される。
【０１３９】
必要に応じて、結果をターゲットブロックチェーンネットワークにアップロードすることに先立って、1つまたは複数のプロセッサは、ターゲットブロックチェーンネットワークに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するように構成される。
【０１４０】
必要に応じて、スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む。
【０１４１】
必要に応じて、結果は、秘密鍵を使用してTEEによって署名される。
【０１４２】
必要に応じて、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【０１４３】
図6は、別のクロスチェーンデータ処理装置の内部機能モジュールおよび構造を図示している概略図である。別のクロスチェーンデータ処理装置は、ターゲットブロックチェーンネットワークに関連付けられたクライアントの例であり得る。本質的な実行の主体は、電子デバイスであり得るし、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成される、メモリとを含む。
【０１４４】
1つまたは複数のプロセッサは、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成することであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ことと、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、スマートコントラクトサービスプロバイダから結果を受信することであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、こととをするように構成される。
【０１４５】
必要に応じて、1つまたは複数のプロセッサは、受信した結果をターゲットブロックチェーンネットワークに送信するように構成される。
【０１４６】
必要に応じて、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、1つまたは複数のプロセッサは、スマートコントラクトサービスプロバイダがTEEを含んでいることを検証するように構成される。
【０１４７】
必要に応じて、1つまたは複数のプロセッサは、TEEがリクエスト内のクロスチェーンデータを処理するためのスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するように構成される。
【０１４８】
必要に応じて、クライアントは、ソフトウェア開発キット(SDK)を含む。
【０１４９】
必要に応じて、結果は、秘密鍵を使用してTEEによって署名される。1つまたは複数のプロセッサは、秘密鍵に対応する公開鍵を使用して受信した結果を復号するように構成される。
【０１５０】
必要に応じて、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、1つまたは複数のプロセッサは、クロスチェーンデータを処理するためのリクエストを暗号化するように構成される。
【０１５１】
必要に応じて、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
【０１５２】
本明細書において説明した発明特定事項ならびにアクションおよび処理の実施形態は、本明細書において開示した構造およびそれらの構造的均等物を含む、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアまたはファームウェアの形で、コンピュータハードウェアの形で、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、データ処理装置による実行のためにまたはデータ処理装置の処理を制御するために、コンピュータプログラムキャリア上に符号化された、例えばコンピュータプログラム命令の1つまたは複数のモジュールといった1つまたは複数のコンピュータプログラムとして実装され得る。キャリアは、有形非一時的コンピュータ記憶媒体であり得る。あるいはまたは加えて、キャリアは、データ処理装置による実行に適した受信機装置への伝送のために情報を符号化するために生成された、人為的に生成した伝搬信号、例えば、機械生成された電気信号、光信号、または電磁気信号であり得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得るもしくは一部であり得る。コンピュータ記憶媒体は伝搬信号ではない。
【０１５３】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを含む。データ処理装置は、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理ユニット)を含み得る。装置はまた、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
【０１５４】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも称するもしくはそのようなものとして説明した、コンピュータプログラムは、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境における実行に適した他のユニットとして、といったことを含む任意の形式で、デプロイされ得る。環境は、1つまたは複数のロケーションにおいてデータ通信ネットワークによって相互通信される1つまたは複数のコンピュータを含み得る。
【０１５５】
コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、必ずしも必要ではない。コンピュータプログラムは、例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトといった、他のプログラムまたはデータを保持するファイルの一部に、当該プログラム専用の単一のファイルに、または、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイルといった、複数の協調ファイルに、記憶され得る。
【０１５６】
本明細書において説明したプロセスおよびロジックフローは、1つまたは複数のコンピュータプログラムを実行し、入力データを処理して出力を生成することによって処理を行う、1つまたは複数のコンピュータによって行われ得る。プロセスおよびロジックフローはまた、例えばFPGA、ASIC、またはGPUといった特殊用途ロジック回路によって、または、特殊用途ロジック回路と1つまたは複数のプログラマブルコンピュータとの組合せによって、実装され得る。
【０１５７】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊用途マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理ユニットに基づき得る。一般的に、中央処理ユニットは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含み得る。中央処理ユニットおよびメモリは、特殊用途ロジック回路によって補完され得る、またはそれに組み込まれ得る。
【０１５８】
一般的に、コンピュータは、少なくとも1つの非一時的コンピュータ可読記憶媒体(コンピュータ可読メモリとも称する)に結合されることになる。コンピュータに結合されている記憶媒体は、コンピュータの内部コンポーネント(例えば、内蔵型ハードドライブ)または外部コンポーネント(例えば、ユニバーサルシリアルバス(USB)型ハードドライブまたはネットワークを介してアクセスされるストレージシステム)であり得る。記憶媒体の例としては、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスク、ソリッドステートドライブ、クラウドストレージシステムなどのネットワークストレージリソース、または他のタイプの記憶媒体を含み得る。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要はない。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスといった別のデバイスに組み込まれ得る。
【０１５９】
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するための、例えばLCD(液晶ディスプレイ)モニタといった、表示デバイスと、コンピュータに入力を提供することを可能にする、例えば、キーボードおよび例えば、マウス、トラックボール、またはタッチパッドなどのポインティングデバイスといった、入力デバイスとを有するコンピュータ上で実装され得る、または、そのようなコンピュータと通信するように構成され得る。同様に、他の種類のデバイスがユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することおよびユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、または、例えばスマートフォンもしくは電子タブレットといったユーザデバイス上で動作するアプリとのインタラクションを行うことによって、ユーザとのインタラクションを行い得る。また、コンピュータは、メッセージングアプリケーションを動作する例えばスマートフォンといったパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザとのインタラクションを行い得る。
【０１６０】
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成される」という用語を使用している。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータのシステムとは、処理においてシステムに処理またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされているシステムを意味する。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると装置に処理またはアクションを行わせる命令を含む1つまたは複数のプログラムを意味する。特定の処理またはアクションを行うように構成される特殊用途ロジック回路とは、処理またはアクションを行う電子ロジックを有する回路を意味する。
【０１６１】
本明細書は多くの特定の実施形態の詳細を含んでいるが、これらを、特許請求の範囲そのものによって定義される主張しているものについての範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に固有のものであり得る特徴の説明として解釈すべきである。別個の実施形態に即して本明細書において説明したある特徴もまた、組み合わせることで単一の実施形態で実現され得る。反対に、単一の実施形態に即して説明した様々な特徴もまた、別々に複数の実施形態でまたは任意の適切なサブコンビネーションで実現され得る。さらに、ある組合せで動作するものとして特徴を上記で説明している場合があるが、たとえ最初はそのように主張していたとしても、いくつかのケースにおいては、主張した組合せのうちの1つまたは複数の特徴をその組合せから削除し得るし、主張したものをサブコンビネーションまたはサブコンビネーションの変形とし得る。
【０１６２】
同様に、処理を特定の順序で図面に図示するとともに特許請求の範囲に記載しているが、このことを、示した特定の順序でもしくは一連の順序でそのような処理を行う必要があると理解すべきではないし、または、望ましい結果を達成するために図示した処理のすべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理および並行処理が有利となり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージ化され得ると理解されたい。
【０１６３】
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ得るし、それでも望ましい結果を達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために示した特定の順序または一連の順序を必ずしも必要とするわけではない。いくつかのケースにおいては、マルチタスク処理および並行処理が有利となり得る。
【符号の説明】
【０１６４】
110  ネットワーク
208  トランザクション管理
210  インターフェース
306  ターゲットブロックチェーン
308  オフチェーンスマートコントラクトサービスプロバイダ
310  計算TEE
304  クライアントSDK
303  クライアントノード
312  信頼できるデータ閲覧サービスプロバイダ
316  Mychain
318  HyperLeger
320  Ethereum
410  ターゲットブロックチェーン
420  クライアント
430  スマートコントラクトサービスプロバイダ
440  データ閲覧サービスプロバイダ
510  第1の受信ユニット
520  送信ユニット
530  第2の受信ユニット
540  生成ユニット
550  ユーザインターフェース
610  生成ユニット
620  送信ユニット
630  受信ユニット
【図１】
0006892513.tif 000002
【図２】
0006892513.tif 000003
【図３】
0006892513.tif 000004
【図４】
0006892513.tif 000005
【図５】
0006892513.tif 000006
【図６】
0006892513.tif 000007