(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-18
(54)【発明の名称】ブロックチェーンに基づくデータ処理方法および装置
(51)【国際特許分類】
G06F 21/33 20130101AFI20231211BHJP
G06F 21/64 20130101ALI20231211BHJP
H04L 9/32 20060101ALI20231211BHJP
【FI】
G06F21/33
G06F21/64
H04L9/32 200Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023535744
(86)(22)【出願日】2021-12-21
(85)【翻訳文提出日】2023-06-12
(86)【国際出願番号】 CN2021140072
(87)【国際公開番号】W WO2022143298
(87)【国際公開日】2022-07-07
(31)【優先権主張番号】202110002609.2
(32)【優先日】2021-01-04
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520208203
【氏名又は名称】ベイジン・ジンドン・チアンシ・テクノロジー・カンパニー・リミテッド
(74)【代理人】
【識別番号】110004222
【氏名又は名称】弁理士法人創光国際特許事務所
(74)【代理人】
【識別番号】100166006
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100167793
【氏名又は名称】鈴木 学
(74)【代理人】
【識別番号】100154070
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】リウ、 リュイフェイ
(72)【発明者】
【氏名】ヤン、 ウェンフェン
(72)【発明者】
【氏名】シ、ドンギャン
(72)【発明者】
【氏名】シュ、ビンビン
(57)【要約】
本出願はブロックチェーンに基づくデータ処理方法および装置を開示し、具体的な実現方法は、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップと、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証するステップと、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいてコントラクトデプロイ要求に対応するスマートコントラクトを決定するステップと、を含む。ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、スマートコントラクトは、ブロックチェーンにおける自動的に実行可能なサービスコードであり、検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表し、ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。当該方法はスマートコントラクトファイルのフォーマットを拡張することにより、スマートコントラクトファイルを動的にロードすることが実現される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ブロックチェーンに基づくデータ処理方法であって、
ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、前記コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップであって、前記コントラクトファイルは、前記コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、前記スマートコントラクトは、前記ブロックチェーンにおける自動的に実行可能なサービスコードである、ステップと、
前記コントラクトファイルの解析結果および前記ブロックチェーンの台帳に基づいて前記コントラクトファイルを検証するステップであって、前記検証は、前記コントラクトファイルの鍵、前記コントラクトファイルのコンテンツおよび前記コントラクト参加者の署名を検証することを表し、前記ブロックチェーンの台帳は、前記コントラクトにデプロイされたトランザクションを事前に実行することにより生成される、ステップと、
前記コントラクトファイルの検証に成功したことに応答して、前記コントラクトファイルに基づいて前記コントラクトデプロイ要求に対応するスマートコントラクトを決定するステップと、
を含むブロックチェーンに基づくデータ処理方法。
【請求項2】
前記コントラクトファイルの解析結果および前記ブロックチェーンの台帳に基づいて、前記コントラクトファイルを検証するステップは、
前記コントラクトファイルのコンテンツを解析して、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの、前記リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するステップと、
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳とに基づいて、前記コントラクトファイルを検証するステップと、
を含む請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項3】
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳とに基づいて、前記コントラクトファイルを検証するステップは、
前記コントラクトファイルの鍵パケットに基づいて、前記コントラクトファイルに対して鍵検証を行うステップであって、前記検証は、前記リクエストノードの公開鍵・秘密鍵ペアを検証することを表す、ステップと、
前記コントラクト参加者の署名パケットに基づいて、前記コントラクトの参加者を検証するステップと、
前記ブロックチェーンの台帳をクエリし、前記コントラクトデプロイ要求に応じた各メソッドのメソッド名および前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られた前記メソッド名および前記パラメータ情報に基づいて、前記コントラクトファイルにおける各メソッドのメソッド名パケットおよび前記コントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するステップと、
前記コントラクトファイルの鍵検証結果と、前記コントラクトの参加者の検証結果と、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、前記コントラクトファイルの検証に成功したか否かを判断するステップと、
を含む請求項2に記載のブロックチェーンに基づくデータ処理方法。
【請求項4】
前記ブロックチェーンの台帳は、
前記リクエストノードによって送信された前記コントラクトにデプロイされたトランザクション要求を受信したことに応答して、前記トランザクション要求を前記ブロックチェーンネットワークにブロードキャストし、且つ前記コントラクトデプロイ要求に応じた各メソッドのメソッドパケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、前記トランザクションを検証するステップと、
前記トランザクションの検証に成功したことに応答して、前記コントラクトデプロイ要求に応じた各メソッドのメソッドパケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とに基づいて、前記トランザクション要求に対応するブロックを生成するステップと、
コンセンサスメカニズムに基づいて、前記ブロックを前記ブロックチェーンの台帳に書き込み、書き込み済みの前記ブロックチェーンの台帳を生成するステップと、
によって生成される、請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項5】
前記コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップは、
前記ブロックチェーンの台帳における前記コントラクトファイルの位置情報に基づいて、前記コントラクトファイルの位置情報に対応するコントラクトファイルを取得するステップを含む請求項4に記載のブロックチェーンに基づくデータ処理方法。
【請求項6】
前記メソッド名パケットは、第1の暗号化アルゴリズムに基づいて前記メソッド名を暗号化して生成され、および/または、
前記パラメータパケットは、第2の暗号化アルゴリズムに基づいて前記パラメータを暗号化して生成される
請求項2に記載のブロックチェーンに基づくデータ処理方法。
【請求項7】
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットとに基づいて、前記コントラクトファイルを検証するステップは、
前記メソッド名パケットの暗号文に基づいて前記コントラクトファイルを検証するステップ、および/または、前記パラメータパケットの暗号文に基づいて前記コントラクトファイルを検証するステップを含む
請求項6に記載のブロックチェーンに基づくデータ処理方法。
【請求項8】
サービスが呼び出し条件をトリガしたときに前記スマートコントラクトが実行されるように、前記スマートコントラクトを前記ブロックチェーンにデプロイするステップをさらに含む請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項9】
前記コントラクトファイルの検証に失敗したことに応答して、前記コントラクトデプロイ要求を終了するステップをさらに含む請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項10】
ブロックチェーンに基づくデータ処理装置であって、
ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、前記コントラクトデプロイ要求に対応するコントラクトファイルを取得するように構成される取得ユニットであって、前記コントラクトファイルは、前記コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、前記スマートコントラクトは、前記ブロックチェーンにおける自動的に実行可能なサービスコードである、取得ユニットと、
前記コントラクトファイルの解析結果および前記ブロックチェーンの台帳に基づいて、前記コントラクトファイルを検証するように構成される検証ユニットであって、前記検証は、前記コントラクトファイルの鍵、前記コントラクトファイルのコンテンツおよび前記コントラクト参加者の署名を検証することを表し、前記ブロックチェーンの台帳は、前記コントラクトにデプロイされたトランザクションを事前に実行することにより生成される、検証ユニットと、
前記コントラクトファイルの検証に成功したことに応答して、前記コントラクトファイルに基づいて前記コントラクトデプロイ要求に対応するスマートコントラクトを決定するように構成される決定ユニットと、
を備えるブロックチェーンに基づくデータ処理装置。
【請求項11】
前記検証ユニットは、
前記コントラクトファイルのコンテンツを解析して、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの、前記リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するように構成されるコンテンツ解析モジュールと、
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳とに基づいて、前記コントラクトファイルを検証するように構成される検証モジュールと、
を備える請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項12】
前記検証モジュールは、
前記コントラクトファイルの鍵パケットに基づいて、前記コントラクトファイルに対して鍵検証を行うように構成される第1の検証サブモジュールであって、前記検証は、前記リクエストノードの公開鍵・秘密鍵ペアを検証することを表す第1の検証サブモジュールと、
前記コントラクト参加者の署名パケットに基づいて、前記コントラクトの参加者を検証するように構成される第2の検証サブモジュールと、
前記ブロックチェーンの台帳をクエリし、前記コントラクトデプロイ要求に対応する各メソッドのメソッド名および前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られた前記メソッド名および前記パラメータ情報に基づいて、前記コントラクトファイルにおける各メソッドのメソッド名パケットおよび前記コントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するように構成される第3の検証サブモジュールと、
前記コントラクトファイルの鍵検証結果と、前記コントラクトの参加者の検証結果と、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、前記コントラクトファイルの検証に成功したか否かを判断する判断サブモジュールと、
を備える請求項11に記載のブロックチェーンに基づくデータ処理装置。
【請求項13】
前記ブロックチェーンの台帳は、
前記リクエストノードによって送信された前記コントラクトにデプロイされたトランザクション要求を受信したことに応答して、前記トランザクション要求を前記ブロックチェーンネットワークにブロードキャストし、且つ前記コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、前記トランザクションを検証するように構成されるトランザクション検証モジュールと、
前記トランザクションの検証に成功したことに応答して、前記コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とに基づいて、前記トランザクション要求に対応するブロックを生成するように構成される生成モジュールと、
コンセンサスメカニズムに基づいて、前記ブロックを前記ブロックチェーンの台帳に書き込み、書き込み済みの前記ブロックチェーンの台帳を生成するように構成される書き込みモジュールと、
によって生成される請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項14】
前記取得ユニットは、さらに
前記ブロックチェーンの台帳における前記コントラクトファイルの位置情報に基づいて、前記コントラクトファイルの位置情報に対応するコントラクトファイルを取得するように構成される
請求項13に記載のブロックチェーンに基づくデータ処理装置。
【請求項15】
前記コンテンツ解析モジュールにおける前記メソッド名パケットは、第1の暗号化アルゴリズムに基づいて前記メソッド名を暗号化して生成され、および/または、
前記コンテンツ解析モジュールにおける前記パラメータパケットは、第2の暗号化アルゴリズムに基づいて前記パラメータを暗号化して生成される請求項11に記載のブロックチェーンに基づくデータ処理装置。
【請求項16】
前記検証モジュールは、さらに
前記メソッド名パケットの暗号文に基づいて前記コントラクトファイルを検証し、および/または、前記パラメータパケットの暗号文に基づいて前記コントラクトファイルを検証するように構成される請求項15に記載のブロックチェーンに基づくデータ処理装置。
【請求項17】
サービスが呼び出し条件をトリガしたときに前記スマートコントラクトが実行されるように、前記スマートコントラクトを前記ブロックチェーンにデプロイするように構成されるデプロイユニットをさらに備える請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項18】
前記コントラクトファイルの検証に失敗したことに応答して、前記コントラクトデプロイ要求を終了するように構成される終了ユニットをさらに備える請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項19】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されるメモリとを備える電子機器であって、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な指令が格納され、前記指令が前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~9のいずれか1項に記載のブロックチェーンに基づくデータ処理方法を実行させることを特徴とする電子機器。
【請求項20】
コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、
前記コンピュータ指令は請求項1~9のいずれか1項に記載のブロックチェーンに基づくデータ処理方法を前記コンピュータに実行させるように構成されることを特徴とする非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
<関連出願の相互参照>
本出願は、2021年1月4日に提出された、出願番号が202110002609.2で、発明の名称が「ブロックチェーンに基づくデータ処理方法および装置」である中国特許出願に基づく優先権を主張し、当該特許出願の全文は引用により本出願に組み込まれる。
【0002】
本出願の実施形態は、コンピュータの技術分野に関し、特にブロックチェーンの技術分野に関し、より具体的にはブロックチェーンに基づくデータ処理方法および装置に関する。
【背景技術】
【0003】
ブロックチェーン技術は、サトシ・ナカモトが提案したビットコインシステムから誕生したものであり、その本質は、分散化、改ざん不可、公開透明などの利点を有する共有データベースである。スマートコントラクトは、1997年にSzaboによって提出されたコンセプトであり、ブロックチェーンシステムにおいて、スマートコントラクトは、ブロックチェーンデータベース上で実行可能な、論理的順序を有するコンピュータプログラムのセグメントであり、そのソースコードにおいて予め定義された条件を満たすときに自ら実行することができる。スマートコントラクトは、信頼できるサードパーティなしで自動的に実行可能であるという特徴を有するため、相互に信頼されていない複数のコントラクト参加者間の信頼コストを低減させた。
【0004】
しかしながら、現在、ブロックチェーンシステムにおいて、スマートコントラクトコードを修正すると、ブロックチェーンノードコードを再コンパイルしてブロックチェーンのサービスを再起動する必要があり、オペレータの作業量を増やし、システムエラーの確率を増大させてしまう。
【発明の概要】
【0005】
本出願は、ブロックチェーンに基づくデータ処理方法、装置、機器および記憶媒体を提供する。
【0006】
本出願の第1の態様は、ブロックチェーンに基づくデータ処理方法を提供し、当該方法は、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップと、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証するステップと、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいてコントラクトデプロイ要求に対応するスマートコントラクトを決定するステップと、を含む。ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、スマートコントラクトは、ブロックチェーンにおける自動的に実行可能なサービスコードであり、検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表し、ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。
【0007】
いくつかの実施形態において、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証するステップは、コントラクトファイルのコンテンツを解析して、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの、リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するステップと、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいて、コントラクトファイルを検証するステップと、を含む。
【0008】
いくつかの実施形態において、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいて、コントラクトファイルを検証するステップは、コントラクトファイルの鍵パケットに基づいて、コントラクトファイルに対して鍵検証を行うステップであって、ここで、検証は、リクエストノードの公開鍵・秘密鍵ペアを検証することを表す、ステップと、コントラクト参加者の署名パケットに基づいて、コントラクトの参加者を検証するステップと、ブロックチェーンの台帳をクエリし、コントラクトデプロイ要求に対応する各メソッドのメソッド名およびコントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られたメソッド名およびパラメータ情報に基づいて、コントラクトファイルにおける各メソッドのメソッド名パケットおよびコントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するステップと、コントラクトファイルの鍵検証結果と、コントラクトの参加者の検証結果と、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、コントラクトファイルの検証に成功したか否かを判断するステップと、を含む。
【0009】
いくつかの実施形態において、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つトランザクション要求メッセージに基づいて、トランザクションを検証するステップと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するステップと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するステップと、によって生成される。ここで、トランザクション要求メッセージは、コントラクトデプロイ要求に応じた各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含む。
【0010】
いくつかの実施形態において、コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップは、ブロックチェーンの台帳におけるコントラクトファイルの位置情報に基づいて、コントラクトファイルの位置情報に対応するコントラクトファイルを取得するステップを含む。
【0011】
いくつかの実施形態において、メソッド名パケットは、第1の暗号化アルゴリズムに基づいてメソッド名を暗号化して生成され、および/または、パラメータパケットは、第2の暗号化アルゴリズムに基づいてパラメータを暗号化して生成される。
【0012】
いくつかの実施形態において、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットとに基づいて、コントラクトファイルを検証するステップは、メソッド名パケットの暗号文に基づいてコントラクトファイルを検証するステップ、および/または、パラメータパケットの暗号文に基づいてコントラクトファイルを検証するステップを含む。
【0013】
いくつかの実施形態において、データ処理方法は、サービスが呼び出し条件をトリガしたときにスマートコントラクトが実行されるように、スマートコントラクトをブロックチェーンにデプロイするステップをさらに含む。
【0014】
いくつかの実施形態において、データ処理方法は、コントラクトファイルの検証に失敗したことに応答して、コントラクトデプロイ要求を終了するステップをさらに含む。
【0015】
本出願の第2の態様は、ブロックチェーンに基づくデータ処理装置を提供し、当該装置は、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得するように構成される取得ユニットと、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証するように構成される検証ユニットと、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいてコントラクトデプロイ要求に対応するスマートコントラクトを決定するように構成される決定ユニットと、を備える。ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、スマートコントラクトは、ブロックチェーンにおける自動的に実行可能なサービスコードであり、検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表し、ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。
【0016】
いくつかの実施形態において、検証ユニットは、コントラクトファイルのコンテンツを解析して、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの、リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するように構成されるコンテンツ解析モジュールと、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいて、コントラクトファイルを検証するように構成される検証モジュールと、を備える。
【0017】
いくつかの実施形態において、検証モジュールは、コントラクトファイルの鍵パケットに基づいて、コントラクトファイルに対して鍵検証を行うように構成される第1の検証サブモジュールであって、検証は、リクエストノードの公開鍵・秘密鍵ペアを検証することを表す第1の検証サブモジュールと、コントラクト参加者の署名パケットに基づいて、コントラクトの参加者を検証するように構成される第2の検証サブモジュールと、ブロックチェーンの台帳をクエリし、コントラクトデプロイ要求に対応する各メソッドのメソッド名およびコントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られたメソッド名およびパラメータ情報に基づいて、コントラクトファイルにおける各メソッドのメソッド名パケットおよびコントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するように構成される第3の検証サブモジュールと、コントラクトファイルの鍵検証結果と、コントラクトの参加者の検証結果と、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、コントラクトファイルの検証に成功したか否かを判断する判断サブモジュールと、を備える。
【0018】
いくつかの実施形態において、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つコントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、トランザクションを検証するように構成されるトランザクション検証モジュールと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するように構成される生成モジュールと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するように構成される書き込みモジュールと、によって生成される。
【0019】
いくつかの実施形態において、取得ユニットは、さらにブロックチェーンの台帳におけるコントラクトファイルの位置情報に基づいて、コントラクトファイルの位置情報に対応するコントラクトファイルを取得するように構成される。
【0020】
いくつかの実施形態において、コンテンツ解析モジュールにおけるメソッド名パケットは、第1の暗号化アルゴリズムに基づいてメソッド名を暗号化して生成され、および/または、コンテンツ解析モジュールにおけるパラメータパケットは、第2の暗号化アルゴリズムに基づいてパラメータを暗号化して生成される。
【0021】
いくつかの実施形態において、検証モジュールは、さらにメソッド名パケットの暗号文に基づいてコントラクトファイルを検証し、および/または、パラメータパケットの暗号文に基づいてコントラクトファイルを検証するように構成される。
【0022】
いくつかの実施形態において、装置は、サービスが呼び出し条件をトリガしたときにスマートコントラクトが実行されるように、スマートコントラクトをブロックチェーンにデプロイするように構成されるデプロイユニットをさらに備える。
【0023】
いくつかの実施形態において、装置は、コントラクトファイルの検証に失敗したことに応答して、コントラクトデプロイ要求を終了するように構成される終了ユニットをさらに備える。
【0024】
本出願の第3の態様によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信可能に接続されたメモリとを備える電子機器であって、メモリには、少なくとも1つのプロセッサによって実行可能な指令が格納されており、指令が少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに第1の態様のいずれかの実施形態に記載のブロックチェーンに基づくデータ処理方法が実行される、電子機器を提供する。
【0025】
本出願の第4の態様によれば、コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、コンピュータ指令は第1の態様のいずれかの実施形態に記載のブロックチェーンに基づくデータ処理方法をコンピュータに実行させるために用いられる非一時的コンピュータ可読記憶媒体を提供する。
【0026】
なお、発明の概要に記載された内容は、本出願の実施形態のかなめとなる特徴または重要な特徴を限定することを意図するものではなく、本出願の範囲を限定するものでもない。本出願の他の特徴は、以下の説明によって容易に理解される。
【図面の簡単な説明】
【0027】
図面は、本出願をよりよく理解するために用いられ、本出願を限定するものではない。
【
図1】本出願に係るブロックチェーンに基づくデータ処理方法の第1の実施形態を示す概略図である。
【
図2】本出願の実施形態に係るブロックチェーンに基づくデータ処理方法を実現可能なシーンを示す図である。
【
図3】本出願に係るブロックチェーンに基づくデータ処理方法の第2の実施形態を示す概略図である。
【
図4】本出願に係るブロックチェーンに基づくデータ処理装置の一実施形態を示す構造概略図である。
【
図5】本出願の実施形態に係るブロックチェーンに基づくデータ処理方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0028】
以下は、図面を参照して本出願の例示的な実施形態を説明し、ここでは理解に役立つため、本出願の実施形態の様々な詳細が記載されるが、これらは単なる例示的なものに過ぎない。従って、本開示の範囲および要旨を逸脱しない限り、当業者が本明細書の実施形態に対して様々な変更や修正を行うことができることは自明である。なお、以下の説明では、明確化および簡略化のため、公知の機能および構成については説明を省略する。
【0029】
なお、矛盾を生じない限り、本出願における実施形態および実施形態における特徴を互いに組み合わせることができる。以下、図面を参照しながら実施形態と組み合わせて本出願を詳細に説明する。
【0030】
本出願の技術によれば、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得し、ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証し、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいて、コントラクトデプロイ要求に対応するスマートコントラクトを決定することにより、スマートコントラクトファイル(ELFファイル)のファイルフォーマットを拡張することによって、スマートコントラクトファイルを動的にロードすることを実現し、ブロックチェーンノードを再起動することなく、新規なスマートコントラクトを実行することができる。スマートコントラクトのELFファイルのタイプを拡張することによって、スマートコントラクトのバイナリ自体に安全制御を行い、スマートコントラクトを安全に動的にロードする目的を達成できる。ブロックチェーンの台帳はコントラクトにデプロイされたトランザクションを予め実行することによって生成され、スマートコントラクトのメソッドおよびパラメータの動的な設定が実現され、スマートコントラクトの実現方法およびテンプレートを規制し、より大きな柔軟性を有する。検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツ、およびコントラクト参加者の署名に基づいて行われ、サードパーティの鍵センターを導入することによる従来技術のセキュリティリスクおよび鍵漏洩の可能性を回避し、コントラクトのデプロイ者および承認者の否認不可および完全性が確保される。
【0031】
図1は、本出願に係るブロックチェーンに基づくデータ処理方法の第1の実施形態の概略
図100を示している。当該ブロックチェーンに基づくデータ処理方法は、次のステップを含む。
【0032】
ステップ101では、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求の受信に応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得する。
【0033】
この実施形態において、ブロックチェーンネットワークにおいて、実行主体(例えば、スマートコントラクトサーバ側)がリクエストノードによって送信されたコントラクトデプロイ要求を受信すると、コントラクトデプロイ要求に対応するコントラクトファイルを有線接続または無線接続によって取得することができる。コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトのコンテンツ拡張によって生成されてもよく、コントラクトファイルのタイプは、スマートコントラクトファイル(ELFファイル)を拡張したELFextであってもよく、スマートコントラクトは、ブロックチェーンにおいて自動的に実行可能なサービスコードである。注意すべきなのは、上記無線接続方式は、3G、4G、5G接続、WiFi接続、ブルートゥース(登録商標)接続、WiMAX接続、Zigbee接続、UWB(ultra wideband,超広帯域)接続、およびその他の従来のまたは将来開発される無線接続方式を含んでもよいが、これらに限定されない。
【0034】
さらに、スマートコントラクトコードがコンパイルされた後、ELFファイルのフォーマットで存在し、サービスが呼び出し条件をトリガした場合、ELFファイルのコードロジックが自動的に実行される。ELFファイルの改ざん不可を確保すること、および、ブロックチェーン参加者の本コントラクトに対する統一的なコンセンサスを表現するために、元のELFファイルのフォーマットに、付加属性と呼ばれるカスタムの属性を追加する必要があり、付加属性は、暗号化されたメソッド名パケット、各メソッドに対応する暗号化されたパラメータパケット、コントラクト参加者が署名した署名パケット、コントラクトファイルの鍵パケットおよびスマートコントラクト暗号文パケットを含む。メソッド名パケットについて、3DESアルゴリズムのCBCモードでメソッド名を暗号化して演算を行う。パラメータパケットについて、3DESアルゴリズムのCBCモードでメソッドのパラメータを暗号化する。署名パケットについて、スマートコントラクト参加者は、それぞれの秘密鍵を用いてスマートコントラクトのバイナリファイルに署名して署名値リストを生成する。コントラクトファイルの鍵パケットについて、ワーク鍵がシステム乱数であり、ブロックチェーンノードの公開鍵を用いて演算を行う場合、その後の検証のために鍵のCRC32値を計算する必要がある。スマートコントラクト暗号文パケットについて、スマートコントラクトのバイナリストリームに対称アルゴリズムの暗号化演算を行い、スマートコントラクトの転送過程にスマートコントラクトの機密性が確保される。以上、付加属性としてELFファイルの付加属性領域に書き込まれ、カスタムのELFextファイルが形成される。
【0035】
ステップ102では、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証する。
【0036】
本実施形態において、実行主体は、ステップ101で得られたコントラクトファイルを解析し、解析結果とブロックチェーンの台帳における対応する情報とに基づいて、コントラクトファイルを検証することができる。検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表してもよい。ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。
【0037】
いくつかのオプション的な実施形態において、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つトランザクション要求メッセージ(ここで、トランザクション要求メッセージは、コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報と、を含む)に基づいて、トランザクションのIDを検証するステップと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するステップと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するステップと、によって生成される。ブロックチェーンの台帳を更新することによって、スマートコントラクトのメソッドおよびパラメータの動的設定および配信が実現され、スマートコントラクトをより柔軟に実現できる。スマートコントラクトがブロックチェーンのコンセンサス側の確認を経て、後続のコントラクトデプロイ段階で、このトランザクションによって生成されたブロックチェーンの台帳を基準とし、動的コントラクトのメソッド、パラメータおよび要約値を検証し、動的コントラクトの否認不可性および完全性が確保される。
【0038】
ステップ103において、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいて、コントラクトデプロイ要求に対応するスマートコントラクトを決定する。
【0039】
本実施形態において、実行主体がコントラクトファイルの検証に成功したことを確認した後、コントラクトファイルを解析して、コントラクトファイルにおけるコントラクトデプロイ要求に対応するスマートコントラクトを得ることができる。
【0040】
なお、上記ブロックチェーンシステムにおけるスマートコントラクトのデプロイは現在広く研究され適用されている周知の技術であり、本明細書ではその説明を省略する。
【0041】
引き続き
図2を参照し、本実施形態のブロックチェーンに基づくデータ処理方法200は、サービスプラットフォーム201内に実行される。サービスプラットフォーム201は、ブロックチェーンネットワークにおけるリクエストノードから送信されたコントラクトデプロイ要求を受信すると、コントラクトデプロイ要求に対応するコントラクトファイルを取得し(202)、その後、サービスプラットフォーム201は、コントラクトファイルの解析結果とブロックチェーンの台帳に基づいて、コントラクトファイルに対して検証を行い(203)、最後に、サービスプラットフォーム201は、コントラクトファイルの検証に成功したと判定すると、コントラクトファイルに基づいて、コントラクトデプロイ要求に対応するスマートコントラクトを決定する(204)。ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことにより生成され、検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表し、ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。
【0042】
本出願の上記実施形態によって提供されたブロックチェーンに基づくデータ処理方法は、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得し、ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証し、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいて、コントラクトデプロイ要求に対応するスマートコントラクトを決定することにより、スマートコントラクトファイルのフォーマットを拡張することによって、スマートコントラクトファイルを動的にロードすることを実現し、ブロックチェーンノードを再起動することなく、新規なスマートコントラクトを実行することができる。スマートコントラクトファイルのタイプを拡張することによって、スマートコントラクトのバイナリ自体に安全制御を行い、スマートコントラクトを安全に動的にロードする目的を達成できる。ブロックチェーンの台帳はコントラクトにデプロイされたトランザクションを予め実行することによって生成され、スマートコントラクトのメソッドおよびパラメータの動的な設定が実現され、スマートコントラクトの実現方法およびテンプレートを規制し、より大きな柔軟性を有する。検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツ、およびコントラクト参加者の署名に基づいて行われ、サードパーティの鍵センターを導入することによる従来技術のセキュリティリスクおよび鍵漏洩の可能性を回避し、コントラクトのデプロイ者および承認者の否認不可性および完全性が確保される。
【0043】
さらに
図3を参照し、ブロックチェーンに基づくデータ処理方法の第2の実施形態の概略
図300を示している。当該方法のフローは、次のステップを含む。
【0044】
ステップ301では、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求の受信に応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得する。
【0045】
本実施形態のいくつかのオプション的な実施形態では、コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップは、ブロックチェーンの台帳におけるコントラクトファイルの位置情報に基づいて、コントラクトファイルの位置情報に対応するコントラクトファイルを取得するステップを含む。コントラクトファイルを正確かつ迅速にクエリすることを実現できる。
【0046】
ステップ302では、コントラクトファイルのコンテンツを解析して、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットとを取得する。
【0047】
本実施形態において、実行主体は、コントラクトファイルのコンテンツを解析して、解析後のコントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットとを取得することができる。鍵パケットは、リクエストノードに対して暗号化演算を行うことにより生成される。
【0048】
本実施形態のいくつかのオプション的な実施形態では、メソッド名パケットは、第1の暗号化アルゴリズムに基づいてメソッド名を暗号化して生成され、および/または、パラメータパケットは、第2の暗号化アルゴリズムに基づいてパラメータを暗号化して生成される。第1の暗号化アルゴリズムと第2の暗号化アルゴリズムは、同じであっても異なっていてもよい。パケットを暗号化することによって、スマートコントラクトが改ざんされにくく、情報伝送の安全性が向上される。
【0049】
ステップ303では、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいてコントラクトファイルを検証する。
【0050】
本実施形態において、実行主体は、コントラクトファイルにおける各メソッドのメソッド名パケット、コントラクトファイル中の各メソッドに対応するパラメータパケット、コントラクト参加者の署名パケット、コントラクトファイルの鍵パケットおよびブロックチェーンの台帳に基づいて、予め設定された検証方法でコントラクトファイルを検証することができる。検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表す。ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。
【0051】
本実施形態のいくつかのオプション的な実施形態では、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいて、コントラクトファイルを検証するステップは、コントラクトファイルの鍵パケットに基づいて、コントラクトファイルに対して鍵検証を行う(ここで、検証は、リクエストノードの公開鍵・秘密鍵ペアを検証することを表す)ステップと、コントラクト参加者の署名パケットに基づいて、コントラクトの参加者を検証するステップと、ブロックチェーンの台帳をクエリし、コントラクトデプロイ要求に対応する各メソッドのメソッド名およびコントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られたメソッド名およびパラメータ情報に基づいて、コントラクトファイルにおける各メソッドのメソッド名パケットおよびコントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するステップと、コントラクトファイルの鍵検証結果と、コントラクトの参加者の検証結果と、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、コントラクトファイルの検証に成功したか否かを判断するステップと、を含む。マルチパーティ/多次元の検証により、スマートコントラクトの否認不可性、完全性、および機密性がより安全に確保される。
【0052】
本実施形態のいくつかのオプション的な実施形態では、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットとに基づいて、コントラクトファイルを検証するステップは、メソッド名パケットの暗号文に基づいてコントラクトファイルを検証するステップ、および/または、パラメータパケットの暗号文に基づいてコントラクトファイルを検証するステップを含む。さらにスマートコントラクトの機密性が保証される。
【0053】
本実施形態のいくつかのオプション的な実施形態では、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットとに基づいて、コントラクトファイルを検証するステップは、コントラクトファイルにおけるスマートコントラクトファイルの暗号文に基づいて、コントラクトファイルを検証することを含む。さらにスマートコントラクトの機密性が保証される。
【0054】
ステップ304では、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいて、コントラクトデプロイ要求に対応するスマートコントラクトを決定する。
【0055】
本実施形態のいくつかのオプション的な実施形態では、データ処理方法は、スマートコントラクトをブロックチェーンにデプロイするステップをさらに含む。スマートコントラクトのデプロイが実現され、サービスが呼び出し条件をトリガする時、ユーザの実際の呼び出しパラメータに応じて、スマートコントラクトを実行する。
【0056】
本実施形態のいくつかのオプション的な実施形態では、データ処理方法は、コントラクトファイルの検証に失敗したことに応答して、コントラクトデプロイ要求を終了するステップをさらに含む。システムリソースが節約され、システム処理効率が向上した。
【0057】
本実施形態において、ステップ301および304の具体的な処理は、
図1に示す実施形態におけるステップ101および103の処理と実質的に同じであり、ここではその説明を省略する。
【0058】
図3から分かるように、
図1に対応する実施形態と比較して、本実施形態のブロックチェーンに基づくデータ処理方法の概略
図300は、コントラクトファイルのコンテンツを解析して、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケット(鍵パケットは、リクエストノードに対して暗号化演算を行うことにより生成される)とを取得し、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいて、コントラクトファイルを検証する。ブロックチェーンノードへのID検証およびコントラクトファイルの暗号文検証の二重検証により、スマートコントラクトの否認不可性および完全性を保証すると同時に、コントラクトの機密性も保証される。
【0059】
さらに
図4を参照すると、上記の
図1~
図3に示された方法の実施形態として、本出願はブロックチェーンに基づくデータ処理装置の一実施形態を提供し、当該装置の実施形態は、
図1に示された方法の実施形態に対応しており、当該装置は、具体的に様々な電子機器に適用することができる。
【0060】
図4に示すように、本実施形態のブロックチェーンに基づくデータ処理装置400は、取得ユニット401と、検証ユニット402と、決定ユニット403とを備える。取得ユニットは、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得するように構成される。ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、スマートコントラクトは、ブロックチェーンにおいて自動的に実行可能なサービスコードである。検証ユニットは、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証するように構成される。ここで、検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツおよびコントラクト参加者の署名を検証することを表し、ブロックチェーンの台帳は、コントラクトにデプロイされたトランザクションを事前に実行することにより生成される。決定ユニットは、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいてコントラクトデプロイ要求に対応するスマートコントラクトを決定するように構成される。
【0061】
本実施形態において、ブロックチェーンに基づくデータ処理装置400の取得ユニット401、検証ユニット402および決定ユニット403の具体的な処理およびそれらによって奏される技術的効果は、それぞれ
図1の対応する実施形態におけるステップ101~ステップ103の関連する説明を参照することができ、ここではその説明を省略する。
【0062】
本実施形態のいくつかのオプション的な実施形態では、検証ユニットは、コントラクトファイルのコンテンツを解析して、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの、リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するように構成されるコンテンツ解析モジュールと、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットと、コントラクト参加者の署名パケットと、コントラクトファイルの鍵パケットと、ブロックチェーンの台帳とに基づいて、コントラクトファイルを検証するように構成される検証モジュールと、を備える。
【0063】
本実施形態のいくつかのオプション的な実施形態では、検証モジュールは、コントラクトファイルの鍵パケットに基づいて、コントラクトファイルに対して鍵検証を行うように構成される第1の検証サブモジュールであって、検証は、リクエストノードの公開鍵・秘密鍵ペアを検証することを表す第1の検証サブモジュールと、コントラクト参加者の署名パケットに基づいて、コントラクトの参加者を検証するように構成される第2の検証サブモジュールと、ブロックチェーンの台帳をクエリし、コントラクトデプロイ要求に対応する各メソッドのメソッド名およびコントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られたメソッド名およびパラメータ情報に基づいて、コントラクトファイルにおける各メソッドのメソッド名パケットおよびコントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するように構成される第3の検証サブモジュールと、コントラクトファイルの鍵検証結果と、コントラクトの参加者の検証結果と、コントラクトファイルにおける各メソッドのメソッド名パケットと、コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、コントラクトファイルの検証に成功したか否かを判断する判断サブモジュールと、を備える。
【0064】
本実施形態のいくつかのオプション的な実施形態では、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つコントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、トランザクションを検証するように構成されるトランザクション検証モジュールと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッドパケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するように構成される生成モジュールと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するように構成される書き込みモジュールと、によって生成される。
【0065】
本実施形態のいくつかのオプション的な実施形態では、取得ユニットは、さらにブロックチェーンの台帳におけるコントラクトファイルの位置情報に基づいて、コントラクトファイルの位置情報に対応するコントラクトファイルを取得するように構成される。
【0066】
本実施形態のいくつかのオプション的な実施形態では、コンテンツ解析モジュールにおけるメソッド名パケットは、第1の暗号化アルゴリズムに基づいてメソッド名を暗号化して生成され、および/または、コンテンツ解析モジュールにおけるパラメータパケットは、第2の暗号化アルゴリズムに基づいてパラメータを暗号化して生成される。
【0067】
本実施形態のいくつかのオプション的な実施形態では、検証モジュールは、さらにメソッド名パケットの暗号文に基づいてコントラクトファイルを検証し、および/または、パラメータパケットの暗号文に基づいてコントラクトファイルを検証するように構成される。
【0068】
本実施形態のいくつかのオプション的な実施形態では、装置は、サービスが呼び出し条件をトリガしたときにスマートコントラクトが実行されるように、スマートコントラクトをブロックチェーンにデプロイするように構成されるデプロイユニットをさらに備える。
【0069】
本実施形態のいくつかのオプション的な実施形態では、装置は、コントラクトファイルの検証に失敗したことに応答して、コントラクトデプロイ要求を終了するように構成される終了ユニットをさらに備える。
【0070】
本出願の実施形態によれば、本出願はさらに電子機器および読み取り可能な記憶媒体を提供する。
【0071】
図5に示すように、本出願の実施形態に係るブロックチェーンに基づくデータ処理方法を実現するための電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレード型サーバ、メインフレームコンピュータおよびその他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表す。また、電子機器は、PDA(Personal digital assistant)、携帯電話、スマートフォン、ウェアラブル機器およびその他の類似する計算装置等の様々な形態のモバイルデバイスを表すことができる。なお、ここで示したコンポーネント、それらの接続関係、およびそれらの機能はあくまでも一例であり、ここで記述および/または要求した本開示の実施形態を限定することを意図するものではない。
【0072】
図5に示すように、当該電子機器は、1つまたは複数のプロセッサ501、メモリ502、および各コンポーネントを接続するためのインターフェース(高速インターフェースおよび低速インターフェースを含む)を含む。各コンポーネントは、互いに異なるバスで接続されており、共通のマザーボード上に実装されていてもよいし、必要に応じて他の方式で実装されていてもよい。プロセッサは、電子機器内で実行される指令を処理することができ、前記指令は、インターフェースに結合された表示装置等の外部入出力装置にグラフィカルユーザインターフェース(GUI,Graphical User Interface)のグラフィック情報を表示するために、メモリ内またはメモリ上に格納される指令を含む。他の実施形態において、必要に応じて、複数のプロセッサおよび/または複数のバスおよび複数のメモリを、複数のメモリと一緒に使用することができる。また、複数の電子機器が接続されていてもよく、各機器は、例えば、サーバアレイ、ブレードサーバ群またはマルチプロセッサシステムなど、一部の必要な動作を提供する。
図5では、1つのプロセッサ501を例としている。
【0073】
メモリ502は、本出願が提供する非一時的コンピュータ可読記憶媒体である。ここで、メモリには、少なくとも1つのプロセッサによって実行可能な指令が格納されており、それにより少なくとも1つのプロセッサに本出願のブロックチェーンに基づくデータ処理方法を実行させる。本出願の非一時的コンピュータ可読記憶媒体にコンピュータ指令が格納され、当該コンピュータ指令はコンピュータに本出願が提供するブロックチェーンに基づくデータ処理方法を実行させるために用いられる。
【0074】
メモリ502は、非一時的コンピュータ可読記憶媒体として、非一時的ソフトウェアプログラム、非一時的コンピュータ実行可能なプログラムおよびモジュールを格納するように構成されてもよい。例えば、本出願の実施形態におけるブロックチェーンに基づくデータ処理方法に対応するプログラム指令/モジュール(例えば、
図4に示す取得ユニット401、検証ユニット402および決定ユニット403)が挙げられる。プロセッサ501は、メモリ502に格納された非一時的ソフトウェアプログラム、指令およびモジュールを実行することにより、サーバの各種機能アプリケーションおよびデータ処理を実行し、すなわち上記方法の実施形態におけるブロックチェーンに基づくデータ処理方法を実現する。
【0075】
メモリ502は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶可能なプログラム記憶領域と、ブロックチェーンに基づくデータ処理を行う電子機器の使用に応じて作成されたデータ等を記憶可能なデータ記憶領域とを備えてもよい。また、メモリ502は高速ランダムアクセスメモリを含んでもよく、また非一時的メモリ(例えば、少なくとも1つの磁気ディスク記憶デバイス、フラッシュメモリデバイスまたはその他の非一時的ソリッドステート記憶デバイス)を含んでもよい。いくつかの実施形態において、メモリ502は、オプションとしてプロセッサ501に対して遠隔に設置されたメモリを含み、これらの遠隔に設置されたメモリは、ネットワークを介してブロックチェーンに基づくデータ処理を行う電子機器に接続されてもよい。上記ネットワークとしては、例えば、インターネット、企業イントラネット、ローカルエリアネットワーク、移動体通信網およびこれらの組み合わせなどが挙げられるが、それらに限定されない。
【0076】
ブロックチェーンに基づくデータ処理を行う電子機器は、さらに入力装置503および出力装置504を備えてもよい。プロセッサ501、メモリ502、入力装置503および出力装置504は、バスを介して接続されるかまたはその他の方式で接続されてもよく、
図5ではバスを介して接続されている例を示している。
【0077】
入力装置503(例えば、タッチパネル、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングデバイス、1つまたは複数のマウスボタン、トラックボール、ジョイスティック等)は、入力された数字または文字情報を受信でき、ブロックチェーンに基づくデータ処理を行う電子機器のユーザ設定および機能制御に関するキー信号入力を生成することができる。出力装置504は表示装置、補助照明装置(例えば、LED)および触覚フィードバック装置(例えば、振動モータ)等を含んでもよい。当該表示装置は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイおよびプラズマディスプレイを含んでもよいが、これらに限定されない。いくつかの実施形態において、表示装置はタッチパネルであってもよい。
【0078】
ここで記述したシステムおよび技術の各実施形態はデジタル電子回路システム、集積回路システム、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにおいて実装され得る。これらの各実施形態は、1つまたは複数のコンピュータプログラムに実装され、当該1つまたは複数のコンピュータプログラムは少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムにおいて実行および/または解釈することができ、当該プログラマブルプロセッサは専用または汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置および少なくとも1つの出力装置からデータおよび指令を受信することができ、且つデータおよび指令を当該記憶システム、当該少なくとも1つの入力装置および当該少なくとも1つの出力装置に伝送することを含み得る。
【0079】
これらのコンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとも呼ばれ、プログラマブルプロセッサの機械命令を含み、且つ高度プロセスおよび/またはオブジェクト指向のプログラミング言語、および/またはアセンブリ言語/機械語により実装され得る。ここで、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに供給するための任意のコンピュータプログラム製品、機器、および/または装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を意味し、機械可読信号である機械命令を受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに供給するためのあらゆる信号を意味する。
【0080】
ユーザとのやりとりを行うために、ここで記述したシステムと技術は、ユーザに情報を表示するための表示装置(例えば、陰極線管(Cathode Ray Tube,CRT)またはLCD(液晶ディスプレイ)モニタ)と、キーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを備えるコンピュータ上で実装することができ、ユーザが当該キーボードおよび当該ポインティングデバイスを介してコンピュータに入力を提供できる。他の種類の装置もユーザとのやりとりを行うことに用いることができる。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであるいかなる形態のセンシングフィードバックであってもよく、且つ音入力、音声入力若しくは触覚入力を含むいかなる形態でユーザからの入力を受信してもよい。
【0081】
ここで記述したシステムおよび技術は、バックエンドコンポーネントを含む計算システム(例えば、データサーバ)に実施されてもよく、またはミドルウェアコンポーネントを含む計算システム(例えば、アプリケーションサーバ)に実施されてもよく、またはフロントエンドコンポーネントを含む計算システム(例えば、グラフィカルユーザインターフェースまたはウェブブラウザを有するユーザコンピュータ)に実施されてもよく、ユーザは当該グラフィカルユーザインターフェースまたはウェブブラウザを介してここで記述したシステムおよび技術の実施形態とやりとりを行っていてもよく、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントのいずれかの組み合わせを含む計算システムに実施されてもよい。また、システムの各コンポーネントの間は、通信ネットワーク等の任意の形態または媒体を介してデジタルデータ通信により接続されていてもよい。通信ネットワークとしては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびインターネットなどを含む。
【0082】
コンピュータシステムは、クライアントとサーバとを含んでもよい。クライアントとサーバは、通常、互いに離れており、通信ネットワークを介してやりとりを行う。クライアントとサーバとの関係は、互いにクライアント-サーバの関係を有するコンピュータプログラムをそれぞれのコンピュータ上で動作することによって生成される。
【0083】
本出願の実施形態に係る技術的解決手段は、ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、コントラクトデプロイ要求に対応するコントラクトファイルを取得し、ここで、コントラクトファイルは、コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、コントラクトファイルの解析結果およびブロックチェーンの台帳に基づいて、コントラクトファイルを検証し、コントラクトファイルの検証に成功したことに応答して、コントラクトファイルに基づいて、コントラクトデプロイ要求に対応するスマートコントラクトを決定することにより、スマートコントラクトファイル(ELFファイル)のフォーマットを拡張することによって、スマートコントラクトファイルを動的にロードすることが実現され、ブロックチェーンノードを再起動することなく、新規なスマートコントラクトを実行することができる。スマートコントラクトのELFファイルのタイプを拡張することによって、スマートコントラクトのバイナリ自体に安全制御を行い、スマートコントラクトを安全に動的にロードする目的を達成できる。ブロックチェーンの台帳はコントラクトにデプロイされたトランザクションを予め実行することによって生成され、スマートコントラクトのメソッドおよびパラメータの動的な設定が実現され、スマートコントラクトの実現方法およびテンプレートを規制し、より大きな柔軟性を有する。検証は、コントラクトファイルの鍵、コントラクトファイルのコンテンツ、およびコントラクト参加者の署名に基づいて行われ、サードパーティの鍵センターを導入することによる従来技術のセキュリティリスクおよび鍵漏洩の可能性を回避し、コントラクトのデプロイ者および承認者の否認不可性および完全性が確保される。
【0084】
上述した様々な形態のフローを用いて、ステップを改めて並び替え、追加または削除を行っていてもよいことを理解すべきである。例えば、本開示に記載された各ステップは、本開示に開示された技術案の所望の結果が達成できる限り、並行して実行されてもよいし、順番に実行されてもよいし、異なる順番で実行されてもよい。本明細書はここで制限しない。
【0085】
上記具体的な実施形態は、本出願の保護範囲を限定するものではない。当業者であれば、設計要件および他の要因に応答して、様々な修正、組み合わせ、副次的な組み合わせ、および置換を行うことができることを理解すべきである。本開示の趣旨および原理を逸脱せずに行われたあらゆる修正、均等な置換および改善などは、いずれも本開示の保護範囲内に含まれるべきである。
【手続補正書】
【提出日】2023-06-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ブロックチェーンに基づくデータ処理方法であって、
ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、前記コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップであって、前記コントラクトファイルは、前記コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、前記スマートコントラクトは、前記ブロックチェーンにおける自動的に実行可能なサービスコードである、ステップと、
前記コントラクトファイルの解析結果および
ブロックチェーンの台帳に基づいて前記コントラクトファイルを検証するステップであって、前記検証は、前記コントラクトファイルの鍵、前記コントラクトファイルのコンテンツおよび前記コントラクト参加者の署名を検証することを表し、前記ブロックチェーンの台帳は、前記コントラクトにデプロイされたトランザクションを事前に実行することにより生成される、ステップと、
前記コントラクトファイルの検証に成功したことに応答して、前記コントラクトファイルに基づいて前記コントラクトデプロイ要求に対応するスマートコントラクトを決定するステップと、
を含むブロックチェーンに基づくデータ処理方法。
【請求項2】
前記コントラクトファイルの解析結果および前記ブロックチェーンの台帳に基づいて、前記コントラクトファイルを検証するステップは、
前記コントラクトファイルのコンテンツを解析して、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの、前記リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するステップと、
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳とに基づいて、前記コントラクトファイルを検証するステップと、
を含む請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項3】
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳とに基づいて、前記コントラクトファイルを検証するステップは、
前記コントラクトファイルの鍵パケットに基づいて、前記コントラクトファイルに対して鍵検証を行うステップであって、前記検証は、前記リクエストノードの公開鍵・秘密鍵ペアを検証することを表す、ステップと、
前記コントラクト参加者の署名パケットに基づいて、前記コントラクトの参加者を検証するステップと、
前記ブロックチェーンの台帳をクエリし、前記コントラクトデプロイ要求に応じた各メソッドのメソッド名および前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られた前記メソッド名および前記パラメータ情報に基づいて、前記コントラクトファイルにおける各メソッドのメソッド名パケットおよび前記コントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するステップと、
前記コントラクトファイルの鍵検証結果と、前記コントラクトの参加者の検証結果と、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、前記コントラクトファイルの検証に成功したか否かを判断するステップと、
を含む請求項2に記載のブロックチェーンに基づくデータ処理方法。
【請求項4】
前記ブロックチェーンの台帳は、
前記リクエストノードによって送信された前記コントラクトにデプロイされたトランザクション要求を受信したことに応答して、前記トランザクション要求を前記ブロックチェーンネットワークにブロードキャストし、且つ前記コントラクトデプロイ要求に応じた各メソッドのメソッド
名パケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、前記トランザクションを検証するステップと、
前記トランザクションの検証に成功したことに応答して、前記コントラクトデプロイ要求に応じた各メソッドのメソッド
名パケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とに基づいて、前記トランザクション要求に対応するブロックを生成するステップと、
コンセンサスメカニズムに基づいて、前記ブロックを前記ブロックチェーンの台帳に書き込み、書き込み済みの前記ブロックチェーンの台帳を生成するステップと、
によって生成される、請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項5】
前記コントラクトデプロイ要求に対応するコントラクトファイルを取得するステップは、
前記ブロックチェーンの台帳における前記コントラクトファイルの位置情報に基づいて、前記コントラクトファイルの位置情報に対応するコントラクトファイルを取得するステップを含む請求項4に記載のブロックチェーンに基づくデータ処理方法。
【請求項6】
前記メソッド名パケットは、第1の暗号化アルゴリズムに基づいて前記メソッド名を暗号化して生成され、および/または、
前記パラメータパケットは、第2の暗号化アルゴリズムに基づいて前記パラメータを暗号化して生成される
請求項2に記載のブロックチェーンに基づくデータ処理方法。
【請求項7】
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、
前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳と、に基づいて、前記コントラクトファイルを検証するステップは、
前記メソッド名パケットの暗号文に基づいて前記コントラクトファイルを検証するステップ、および/または、前記パラメータパケットの暗号文に基づいて前記コントラクトファイルを検証するステップを含む
請求項6に記載のブロックチェーンに基づくデータ処理方法。
【請求項8】
サービスが呼び出し条件をトリガしたときに前記スマートコントラクトが実行されるように、前記スマートコントラクトを前記ブロックチェーンにデプロイするステップをさらに含む請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項9】
前記コントラクトファイルの検証に失敗したことに応答して、前記コントラクトデプロイ要求を終了するステップをさらに含む請求項1に記載のブロックチェーンに基づくデータ処理方法。
【請求項10】
ブロックチェーンに基づくデータ処理装置であって、
ブロックチェーンネットワークにおけるリクエストノードによって送信されたコントラクトデプロイ要求を受信したことに応答して、前記コントラクトデプロイ要求に対応するコントラクトファイルを取得するように構成される取得ユニットであって、前記コントラクトファイルは、前記コントラクトデプロイ要求に対応するスマートコントラクトに対してコンテンツ拡張を行うことによって生成され、前記スマートコントラクトは、前記ブロックチェーンにおける自動的に実行可能なサービスコードである、取得ユニットと、
前記コントラクトファイルの解析結果および前記ブロックチェーンの台帳に基づいて、前記コントラクトファイルを検証するように構成される検証ユニットであって、前記検証は、前記コントラクトファイルの鍵、前記コントラクトファイルのコンテンツおよび前記コントラクト参加者の署名を検証することを表し、前記ブロックチェーンの台帳は、前記コントラクトにデプロイされたトランザクションを事前に実行することにより生成される、検証ユニットと、
前記コントラクトファイルの検証に成功したことに応答して、前記コントラクトファイルに基づいて前記コントラクトデプロイ要求に対応するスマートコントラクトを決定するように構成される決定ユニットと、
を備えるブロックチェーンに基づくデータ処理装置。
【請求項11】
前記検証ユニットは、
前記コントラクトファイルのコンテンツを解析して、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの、前記リクエストノードに対して暗号化演算を行うことにより生成された鍵パケットとを取得するように構成されるコンテンツ解析モジュールと、
前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットと、前記コントラクト参加者の署名パケットと、前記コントラクトファイルの鍵パケットと、前記ブロックチェーンの台帳とに基づいて、前記コントラクトファイルを検証するように構成される検証モジュールと、
を備える請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項12】
前記検証モジュールは、
前記コントラクトファイルの鍵パケットに基づいて、前記コントラクトファイルに対して鍵検証を行うように構成される第1の検証サブモジュールであって、前記検証は、前記リクエストノードの公開鍵・秘密鍵ペアを検証することを表す第1の検証サブモジュールと、
前記コントラクト参加者の署名パケットに基づいて、前記コントラクトの参加者を検証するように構成される第2の検証サブモジュールと、
前記ブロックチェーンの台帳をクエリし、前記コントラクトデプロイ要求に対応する各メソッドのメソッド名および前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータ情報を取得し、且つ得られた前記メソッド名および前記パラメータ情報に基づいて、前記コントラクトファイルにおける各メソッドのメソッド名パケットおよび前記コントラクトファイルにおける各メソッドに対応するパラメータパケットを検証するように構成される第3の検証サブモジュールと、
前記コントラクトファイルの鍵検証結果と、前記コントラクトの参加者の検証結果と、前記コントラクトファイルにおける各メソッドのメソッド名パケットと、前記コントラクトファイルにおける各メソッドに対応するパラメータパケットの検証結果とに基づいて、前記コントラクトファイルの検証に成功したか否かを判断する判断サブモジュールと、
を備える請求項11に記載のブロックチェーンに基づくデータ処理装置。
【請求項13】
前記ブロックチェーンの台帳は、
前記リクエストノードによって送信された前記コントラクトにデプロイされたトランザクション要求を受信したことに応答して、前記トランザクション要求を前記ブロックチェーンネットワークにブロードキャストし、且つ前記コントラクトデプロイ要求に対応する各メソッドのメソッド
名パケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、前記トランザクションを検証するように構成されるトランザクション検証モジュールと、
前記トランザクションの検証に成功したことに応答して、前記コントラクトデプロイ要求に対応する各メソッドのメソッド
名パケットと、前記コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、前記コントラクトファイルのハッシュ値と、前記コントラクトファイルの位置情報とに基づいて、前記トランザクション要求に対応するブロックを生成するように構成される生成モジュールと、
コンセンサスメカニズムに基づいて、前記ブロックを前記ブロックチェーンの台帳に書き込み、書き込み済みの前記ブロックチェーンの台帳を生成するように構成される書き込みモジュールと、
によって生成される請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項14】
前記取得ユニットは、さらに
前記ブロックチェーンの台帳における前記コントラクトファイルの位置情報に基づいて、前記コントラクトファイルの位置情報に対応するコントラクトファイルを取得するように構成される
請求項13に記載のブロックチェーンに基づくデータ処理装置。
【請求項15】
前記コンテンツ解析モジュールにおける前記メソッド名パケットは、第1の暗号化アルゴリズムに基づいて前記メソッド名を暗号化して生成され、および/または、
前記コンテンツ解析モジュールにおける前記パラメータパケットは、第2の暗号化アルゴリズムに基づいて前記パラメータを暗号化して生成される請求項11に記載のブロックチェーンに基づくデータ処理装置。
【請求項16】
前記検証モジュールは、さらに
前記メソッド名パケットの暗号文に基づいて前記コントラクトファイルを検証し、および/または、前記パラメータパケットの暗号文に基づいて前記コントラクトファイルを検証するように構成される請求項15に記載のブロックチェーンに基づくデータ処理装置。
【請求項17】
サービスが呼び出し条件をトリガしたときに前記スマートコントラクトが実行されるように、前記スマートコントラクトを前記ブロックチェーンにデプロイするように構成されるデプロイユニットをさらに備える請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項18】
前記コントラクトファイルの検証に失敗したことに応答して、前記コントラクトデプロイ要求を終了するように構成される終了ユニットをさらに備える請求項10に記載のブロックチェーンに基づくデータ処理装置。
【請求項19】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されるメモリとを備える電子機器であって、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な指令が格納され、前記指令が前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~9のいずれか1項に記載のブロックチェーンに基づくデータ処理方法を実行させることを特徴とする電子機器。
【請求項20】
コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、
前記コンピュータ指令は請求項1~9のいずれか1項に記載のブロックチェーンに基づくデータ処理方法を
コンピュータに実行させるように構成されることを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項21】
プロセッサによって実行されると、請求項1~9のいずれか1項に記載のブロックチェーンに基づくデータ処理方法が実行されるコンピュータプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
いくつかの実施形態において、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つトランザクション要求メッセージに基づいて、トランザクションを検証するステップと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するステップと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するステップと、によって生成される。ここで、トランザクション要求メッセージは、コントラクトデプロイ要求に応じた各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含む。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正の内容】
【0018】
いくつかの実施形態において、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つコントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、トランザクションを検証するように構成されるトランザクション検証モジュールと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するように構成される生成モジュールと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するように構成される書き込みモジュールと、によって生成される。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】変更
【補正の内容】
【0037】
いくつかのオプション的な実施形態において、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つトランザクション要求メッセージ(ここで、トランザクション要求メッセージは、コントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含む)に基づいて、トランザクションのIDを検証するステップと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するステップと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するステップと、によって生成される。ブロックチェーンの台帳を更新することによって、スマートコントラクトのメソッドおよびパラメータの動的設定および配信が実現され、スマートコントラクトをより柔軟に実現できる。スマートコントラクトがブロックチェーンのコンセンサス側の確認を経て、後続のコントラクトデプロイ段階で、このトランザクションによって生成されたブロックチェーンの台帳を基準とし、動的コントラクトのメソッド、パラメータおよび要約値を検証し、動的コントラクトの否認不可性および完全性が確保される。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0064
【補正方法】変更
【補正の内容】
【0064】
本実施形態のいくつかのオプション的な実施形態では、ブロックチェーンの台帳は、リクエストノードによって送信されたコントラクトにデプロイされたトランザクション要求を受信したことに応答して、トランザクション要求をブロックチェーンネットワークにブロードキャストし、且つコントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とを含むトランザクション要求メッセージに基づいて、トランザクションを検証するように構成されるトランザクション検証モジュールと、トランザクションの検証に成功したことに応答して、コントラクトデプロイ要求に対応する各メソッドのメソッド名パケットと、コントラクトデプロイ要求に応じた各メソッドに対応するパラメータパケットと、コントラクトファイルのハッシュ値と、コントラクトファイルの位置情報とに基づいて、トランザクション要求に対応するブロックを生成するように構成される生成モジュールと、コンセンサスメカニズムに基づいて、ブロックをブロックチェーンの台帳に書き込み、書き込み済みのブロックチェーンの台帳を生成するように構成される書き込みモジュールと、によって生成される。
【国際調査報告】