(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-28
(54)【発明の名称】スマートコントラクトを発行するための方法及び装置
(51)【国際特許分類】
G06F 21/56 20130101AFI20220920BHJP
G06F 21/64 20130101ALI20220920BHJP
【FI】
G06F21/56 330
G06F21/64
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022504260
(86)(22)【出願日】2020-04-01
(85)【翻訳文提出日】2022-01-21
(86)【国際出願番号】 CN2020082673
(87)【国際公開番号】W WO2021057005
(87)【国際公開日】2021-04-01
(31)【優先権主張番号】201910904526.5
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522021952
【氏名又は名称】京▲東▼科技信息技▲術▼有限公司
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】邵 珠光
(72)【発明者】
【氏名】王 哲
(57)【要約】
本開示の実施例は、スマートコントラクトを発行するための方法及び装置を開示する。当該方法の一具体的な実施形態は、スマートコントラクトを取得することと、スマートコントラクトが所定の関数を含むか否かを特定することと、スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成することと、照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信することと、を含む。当該実施形態は、後続のスマートコントラクトの発行、実行などのプロセスのセキュリティを保障することができる。
【特許請求の範囲】
【請求項1】
スマートコントラクトを発行するための方法であって、
スマートコントラクトを取得することと、
前記スマートコントラクトが所定の関数を含むか否かを特定することと、
前記スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、前記スマートコントラクトの照合データを生成することと、
前記照合データに基づいて、前記スマートコントラクトの発行を要求するための要求を送信することと、
を含む方法。
【請求項2】
前記所定の関数は、ブロックチェーンシステムのセキュリティを破る関数を含む、請求項1に記載の方法。
【請求項3】
前記方法は、前記スマートコントラクトが所定の関数を含むと特定したことに応答して、提示情報を出力して前記スマートコントラクトの異常を提示することをさらに含む、請求項2に記載の方法。
【請求項4】
前記所定の関数は、時変変数を用いる関数、ファイルの入出力(I/O)操作を実行する関数、スクリプトを呼び出してシステムを制御する関数、ネットワークに関する操作を実行する関数、システムの環境変数を制御する関数、のうちの少なくとも1つを含む、請求項2に記載の方法。
【請求項5】
前記のプルーフオブワーク技術に基づいて、前記スマートコントラクトの照合データを生成することは、
プルーフオブワーク技術に基づいて、乱数組及びブロックチェーンシステムの所定の識別子のうちの少なくとも1つを含む、前記スマートコントラクトの識別データによって、前記スマートコントラクトの照合データを生成することを含む、請求項1に記載の方法。
【請求項6】
前記のプルーフオブワーク技術に基づいて、前記スマートコントラクトの識別データによって、前記スマートコントラクトの照合データを生成することは、
識別データとスマートコントラクトに対してハッシュ演算を行って、演算結果が得られる演算ステップと、得られた演算結果が所定のワークロード要求を満たすか否かを特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たすと特定したことに応答して、得られた演算結果を前記スマートコントラクトの照合データとして特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たさないと特定したことに応答して、前記演算ステップの実行を継続する演算ステップと、を実行することを含む、請求項5に記載の方法。
【請求項7】
前記のプルーフオブワーク技術に基づいて、前記スマートコントラクトの識別データによって、前記スマートコントラクトの照合データを生成することは、
前記スマートコントラクトが正式に発行されたスマートコントラクトに属すると特定したことに応答して、プルーフオブワーク技術に基づいて、前記スマートコントラクトの識別データによって、前記スマートコントラクトの照合データを生成することを含む、請求項5に記載の方法。
【請求項8】
前記の前記スマートコントラクトが所定の関数を含むか否かを特定することは、
前記スマートコントラクトにおけるライブラリ関数及び所定の検出必要なし関数以外の関数を含む、前記スマートコントラクトにおける目的カスタム関数が、所定の関数を含むか否かを特定することを含む、請求項1に記載の方法。
【請求項9】
スマートコントラクトを発行するための装置であって、
スマートコントラクトを取得するように配置される取得ユニットと、
前記スマートコントラクトが所定の関数を含むか否かを特定するように配置される特定ユニットと、
前記スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、前記スマートコントラクトの照合データを生成するように配置される生成ユニットと、
前記照合データに基づいて、前記スマートコントラクトの発行を要求するための要求を送信するように配置される送信ユニットと、
を含む装置。
【請求項10】
1つ又は複数のプロセッサと、
1つ又は複数のプログラムが記憶されている記憶装置と、
を含み、
前記1つ又は複数のプロセッサによって前記1つ又は複数のプログラムが実行される時、請求項1ないし8のいずれか1項に記載の方法を前記1つ又は複数のプロセッサに実現させる、
端末機器。
【請求項11】
コンピュータプログラムが記憶されているコンピュータ読取可能な媒体であって、
プロセッサによって当該プログラムが実行される時、請求項1ないし8のいずれか1項に記載の方法が実現される、
コンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2019年9月24日に中国特許庁に提出された、申請番号201910904526.5で、出願人が北京海益同展信息科技有限公司で、発明の名称が「スマートコントラクトを発行するための方法及び装置」である中国特許申請の優先順位を主張する。本願の全内容は、参照により本願に組み込まれる。
【0002】
本開示の実施例は、コンピュータ技術の分野に関し、具体的には、スマートコントラクトを発行するための方法および装置に関する。
【背景技術】
【0003】
現在、スマートコントラクトとブロックチェーンの組合わせ応用は、現状のブロックチェーン技術の分野の1つの研究の方向である。スマートコントラクトは、情報化方式で契約を伝播、検証又は実行するコンピュータプロトコルである。スマートコントラクトは、第三者がいない状況で信頼できる取引を許可し、これらの取引は、追跡可能かつ不可逆である。
【0004】
ブロックチェーン技術の成熟及び発達に伴って、ユーザはスマートコントラクトを介してデータを操作可能である。ユーザの需要の多様性のため、多くのブロックチェーンシステム(例えばFabric、イーサリアム、CITAなど)は、現在何れもチューリング完全言語(例えばJava、Python、C、C++など)を用いてスマートコントラクトを開発し始めている。
【発明の概要】
【0005】
本開示の実施例は、スマートコントラクトを発行するための方法及び装置を提案する。
【0006】
第1態様において、本開示の実施例は、スマートコントラクトを発行するための方法であって、スマートコントラクトを取得することと、スマートコントラクトが所定の関数を含むか否かを特定することと、スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成することと、照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信することと、を含む方法を提供する。
【0007】
いくつかの実施例において、所定の関数は、ブロックチェーンシステムのセキュリティを破る関数を含む。
【0008】
いくつかの実施例において、上記方法は、スマートコントラクトが所定の関数を含むと特定したことに応答して、提示情報を出力してスマートコントラクトの異常を提示することをさらに含む。
【0009】
いくつかの実施例において、所定の関数は、時変変数を用いる関数、ファイルの入出力(I/O)操作を実行する関数、スクリプトを呼び出してシステムを制御する関数、ネットワークに関する操作を実行する関数、システムの環境変数を制御する関数、のうちの少なくとも1つを含む。
【0010】
いくつかの実施例において、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成することは、プルーフオブワーク技術に基づいて、乱数組及びブロックチェーンシステムの所定の識別子のうちの少なくとも1つを含む、スマートコントラクトの識別データによって、スマートコントラクトの照合データを生成することを含む。
【0011】
いくつかの実施例において、プルーフオブワーク技術に基づいて、スマートコントラクトの識別データによって、スマートコントラクトの照合データを生成することは、識別データとスマートコントラクトに対してハッシュ演算を行って、演算結果が得られる演算ステップと、得られた演算結果が所定のワークロード要求を満たすか否かを特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たすと特定したことに応答して、得られた演算結果をスマートコントラクトの照合データとして特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たさないと特定したことに応答して、演算ステップの実行を継続する演算ステップと、を実行することを含む。
【0012】
いくつかの実施例において、プルーフオブワーク技術に基づいて、スマートコントラクトの識別データによって、スマートコントラクトの照合データを生成することは、スマートコントラクトが正式に発行されたスマートコントラクトに属すると特定したことに応答して、プルーフオブワーク技術に基づいて、識別データによって、スマートコントラクトの照合データを生成することを含む。
【0013】
いくつかの実施例において、スマートコントラクトが所定の関数を含むか否かを特定することは、スマートコントラクトにおけるライブラリ関数及び所定の検出必要なし関数以外の関数を含む、スマートコントラクトにおける目的カスタム関数が、所定の関数を含むか否かを特定することを含む。
【0014】
第2態様において、本開示の実施例は、スマートコントラクトを発行するための装置であって、スマートコントラクトを取得するように配置される取得ユニットと、スマートコントラクトが所定の関数を含むか否かを特定するように配置される特定ユニットと、スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成するように配置される生成ユニットと、照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信するように配置される送信ユニットと、を含む装置を提供する。
【0015】
いくつかの実施例において、所定の関数は、ブロックチェーンシステムのセキュリティを破る関数を含む。
【0016】
いくつかの実施例において、上記装置は、スマートコントラクトが所定の関数を含むと特定したことに応答して、提示情報を出力してスマートコントラクトの異常を提示するように配置される出力ユニットをさらに含む。
【0017】
いくつかの実施例において、所定の関数は、時変変数を用いる関数、ファイルの入出力(I/O)操作を実行する関数、スクリプトを呼び出してシステムを制御する関数、ネットワークに関する操作を実行する関数、システムの環境変数を制御する関数、のうちの少なくとも1つを含む。
【0018】
いくつかの実施例において、上記生成ユニットは、さらに、プルーフオブワーク技術に基づいて、乱数組及びブロックチェーンシステムの所定の識別子のうちの少なくとも1つを含む、スマートコントラクトの識別データによって、スマートコントラクトの照合データを生成するように配置される。
【0019】
いくつかの実施例において、上記生成ユニットは、さらに、識別データとスマートコントラクトに対してハッシュ演算を行って、演算結果が得られる演算ステップと、得られた演算結果が所定のワークロード要求を満たすか否かを特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たすと特定したことに応答して、得られた演算結果をスマートコントラクトの照合データとして特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たさないと特定したことに応答して、演算ステップの実行を継続する演算ステップと、を実行するように配置される。
【0020】
いくつかの実施例において、上記生成ユニットは、さらに、スマートコントラクトが正式に発行されたスマートコントラクトに属すると特定したことに応答して、プルーフオブワーク技術に基づいて、識別データによって、スマートコントラクトの照合データを生成するように配置される。
【0021】
いくつかの実施例において、上記特定ユニットは、さらに、スマートコントラクトにおけるライブラリ関数及び所定の検出必要なし関数以外の関数を含む、スマートコントラクトにおける目的カスタム関数が、所定の関数を含むか否かを特定するように配置される。
【0022】
第3態様において、本開示の実施例は、1つ又は複数のプロセッサと、1つ又は複数のプログラムを記憶するための記憶装置と、を含み、1つ又は複数のプロセッサによって1つ又は複数のプログラムが実行される時、第1態様のいずれか実現方式に記載の方法を1つ又は複数のプロセッサに実現させる、端末機器を提供する。
【0023】
第4態様において、本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ読取可能な媒体であって、プロセッサによって当該コンピュータプログラムが実行される時、第1態様のいずれか実現方式に記載の方法が実現される、コンピュータ読取可能な媒体を提供する。
【0024】
本開示の実施例により提供されるスマートコントラクトを発行するための方法及び装置は、スマートコントラクトの発行を要求する前に、まず、スマートコントラクトを検査し、その中に所定の関数を含むか否かを特定することによって、スマートコントラクトの実行に起因した意図しない結果の発生を回避するように、スマートコントラクトの処理論理を制御することができる。スマートコントラクトが所定の関数を含まないと特定した後、さらに、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成し、後続のスマートコントラクトの発行、実行などのプロセスのセキュリティを保障することができる。
【図面の簡単な説明】
【0025】
以下の図面を参照してなされた非限定的な実施例に対する詳細な説明を読むことによって、本開示のその他の特徴、目的及び利点がより明らかになる。
【
図1】本開示の一実施例が適用可能な例示的なシステムアーキテクチャ図である。
【
図2】本開示によるスマートコントラクトを発行するための方法の一実施例のフローチャートである。
【
図3】本開示の実施例によるスマートコントラクトを発行するための方法の1つの適用シーンの概略図である。
【
図4】本開示によるスマートコントラクトを発行するための方法の別の実施例のフローチャートである。
【
図5】本開示によるスマートコントラクトを発行するための装置の一実施例の構造概略図である。
【
図6】本開示の実施例の実現のために適する電子機器の構造概略図である。
【発明を実施するための形態】
【0026】
以下、図面及び実施例を参照しながら、本開示についてより詳細に説明する。ここで説明された具体的な実施例は、関連する発明を解釈するのみに用いられ、この発明を限定するものではないことを理解すべきである。なお、説明を容易にするために、図面には関連する発明に関する部分のみを示している。
【0027】
なお、矛盾しない場合に、本開示の実施例及び実施例における特徴が互いに組み合わせることができる。以下、図面を参照しながら、実施例に合わせて本開示を詳細に説明する。
【0028】
図1は、本開示のスマートコントラクトを発行するための方法又はスマートコントラクトを発行するための装置の実施例が適用可能な例示的なアーキテクチャ100を示す。
【0029】
図1に示すように、システムアーキテクチャ100は、端末機器101、102、103、ネットワーク104及びブロックチェーンシステム105を含むことができる。ブロックチェーンシステム105は、1つ又は複数のノードを含むことができ、ノード間は通信接続可能である。ネットワーク104は、端末機器101、102、103とブロックチェーンシステム105との間に通信リンクを提供する媒体として使用される。ネットワーク104は、有線、無線通信リンク、又は光ファイバケーブルなどの様々な接続タイプを含むことができる。
【0030】
端末機器101、102、103は、メッセージなどを受信又は送信するように、ネットワーク104を介してブロックチェーンシステム105とインタラクションされる。端末機器101、102、103には、様々な通信クライアントアプリケーションがインストールされることができる。例えば、スマートコントラクト開発プラットフォーム、ブロックチェーン適用プラットフォームなどがある。
【0031】
端末機器101、102、103は、ハードウェアであってもよく、ソフトウェアであってもよい。端末機器101、102、103がハードウェアである場合、様々な電子機器であることができ、スマートフォン、タブレット型コンピュータ、電子ブックリーダー、ラップトップ携帯型コンピュータ及びデスクトップ型コンピュータなどが含まれるが、これらに限定されない。端末機器101、102、103がソフトウェアである場合、上記で挙げられた電子機器にインストールすることができる。これは、複数のソフトウェア又はソフトウェアモジュール(例えば、分散型サービスを提供するための複数のソフトウェア又はソフトウェアモジュール)として実現されてもよく、単一のソフトウェア又はソフトウェアモジュールとして実現されてもよい。ここでは、具体的に限定しない。
【0032】
ブロックチェーンシステム105における1つ又は複数のノードは、様々なサービスを提供することができ、例えば、端末機器101、102、103から送信されるスマートコントラクトの発行要求を受信し、対応するスマートコントラクトを生成して取引を実行し、スマートコントラクトの実行を完了させてもよい。
【0033】
なお、本開示の実施例により提供されるスマートコントラクトを発行するための方法は、通常、端末機器101、102、103によって実行され、それに応じて、スマートコントラクトを発行するための装置は、通常、端末機器101、102、103に設けられる。
【0034】
ブロックチェーンシステム105におけるノードは、単一のサーバであってよく、複数のサーバ又は複数のサーバクラスタから構成されてもよいことが指摘されたい。ここで、上記サーバは、ハードウェアであってもよく、ソフトウェアであってもよい。サーバがハードウェアである場合、複数のサーバからなる分散型サーバクラスタとして実現されてもよく、単一のサーバとして実現されてもよい。サーバがソフトウェアである場合、複数のソフトウェア又はソフトウェアモジュール(例えば、分散型サービスを提供するための複数のソフトウェア又はソフトウェアモジュール)として実現されてもよく、単一のソフトウェア又はソフトウェアモジュールとして実現されてもよい。ここでは、具体的に限定しない。
【0035】
図1の端末機器、ネットワーク及びブロックチェーンシステムの数は例示的なものに過ぎないことを理解すべきである。実現の必要に応じて、任意の数の端末機器、ネットワーク及びブロックチェーンシステムを備えてもよい。
【0036】
続いて、
図2を参照すると、本開示によるスマートコントラクトを発行するための方法の一実施例の流れ200が示されている。当該スマートコントラクトを発行するための方法は、以下のステップを含む。
【0037】
ステップ201:スマートコントラクトを取得する。
【0038】
本実施例において、スマートコントラクトを発行するための方法の実行主体(例えば、
図1に示す端末機器101、102、103)は、スマートコントラクトをローカル又は他の機器から取得することができる。ここで、スマートコントラクトは、技術者によって実際の応用需要に応じて予め開発されてもよい。スマートコントラクトの開発言語は、実際の応用需要に応じて、柔軟に選択されてもよい。例えば、開発言語は、様々なチューリング完全言語(例えば、Java、Python、C、C++など)であってもよい。
【0039】
ステップ202:スマートコントラクトが、所定の関数を含むか否かを特定する。
【0040】
本実施例において、所定の関数は、技術者によって実際の応用需要に応じて、予め指定されてもよい。これによって、スマートコントラクトに対する検査によって、スマートコントラクトに意図しない状況の発生を招き得る関数が含むか否かを、適時に分かることができ、さらに、発行する前にスマートコントラクトの処理論理を制御することができる。
【0041】
本実施例のいくつかの選択可能な実現方式では、所定の関数は、スマートコントラクトのセキュリティを破る関数を含む。例えば、スマートコントラクトのコードセキュリティの考慮から、所定の関数は、スマートコントラクトの無効を招き得る関数、無限ループを招き得る関数、再帰スタックの使い尽くしを招き得る関数、重要な情報の漏洩を招き得る関数、無許可のアクセスを招き得る関数、スマートコントラクトの論理的なバグを引き起こす恐れがある関数、などのうちの少なくとも1つであってもよい。
【0042】
本実施例のいくつかの選択可能な実現方式では、所定の関数は、ブロックチェーンシステムのセキュリティを破る関数を含む。ブロックチェーンシステムとは、スマートコントラクトの実行の操作を完了させるためのブロックチェーンシステムを指してもよいことを理解すべきである。。例えば、所定の関数は、ブロックチェーンシステムにおける各ノードの合意に影響する関数であってもよい。
【0043】
選択的に、所定の関数は、時変変数を用いる関数、ファイルの入出力(I/O)操作を実行する関数、スクリプトを呼び出してシステムを制御する関数、ネットワークに関する操作を実行する関数、システムの環境変数を制御する関数、のうちの少なくとも1つを含む。
【0044】
ここで、時変変数とは、実行毎の結果が一致しない恐れがある変数を指してもよい。例えば、乱数、タイムスタンプなどがある。時変変数を用いる関数は、スマートコントラクトを同時に実行する各ノードの実行結果が一致しないことを招き得る。
【0045】
ここで、ファイルの入出力(I/O)操作を実行する関数は、データの一致性に影響しやすい。例えば、誤った情報がブロックチェーンデータベースに書き込まれることを招き得る。ここで、ネットワークに関する操作を実行する関数(例えば、ネットワーク資源へのアクセスを指示する関数、ネットワーク要求の送信を指示する関数など)は、ブロックチェーンシステムの通信セキュリティに影響しやすい。
【0046】
ここで、スクリプトを呼び出してシステムを制御する関数、システムの環境変数を制御する関数は、ブロックチェーンシステムの権限制御に影響しやすい。例えば、無許可のアクセスなどのような場合の発生を招き、ブロックチェーンシステムへの悪意のある攻撃を引き起こす恐れがある。
【0047】
異なる応用需要に対して、スマートコントラクトの具体的な内容は、大きな違いがあり得ることを理解すべきである。例えば、異なるスマートコントラクトに存在し得るセキュリティ問題、及びブロックチェーンシステムにもたらし得る弊害も異なる可能性がある。そのため、所定の関数は、実際の応用需要に応じて柔軟に設定することができる。
【0048】
本実施例において、様々な方法を柔軟に選択して、スマートコントラクトに所定の関数が含まれるか否かを検出してもよい。例えば、様々なプログラム分析方法又はプログラム分析アプリケーションを用いて、スマートコントラクトに含まれる各関数の識別情報を取得する。そして、取得された各関数の識別情報に、所定の関数の識別情報が含まれるか否かを検出してもよい。
【0049】
ここで、関数の識別情報は、関数が属するクラス名、関数の名称、関数の引数情報などによって特定されてもよい。例えば、関数の識別情報として、関数が属するクラス名、関数の名称及び関数の引数情報からなるトリプルを採用してもよい。異なる開発言語に対して、異なる方法を用いてスマートコントラクトに所定の関数が含まれるか否かを検出してよく、異なる識別方法を設計して関数を識別してもよいことを理解すべきである。
【0050】
取得された各関数の識別情報に所定の関数の識別情報が含まれると、スマートコントラクトに所定の関数が含まれることを表す。反して、取得された各関数の識別情報に所定の関数の識別情報が含まれていないと、スマートコントラクトに所定の関数が含まれていないことを表す。
【0051】
選択的に、スマートコントラクトにおける目的カスタム関数が、所定の関数を含むか否かを特定してもよい。ここで、目的カスタム関数は、スマートコントラクトにおけるライブラリ関数及び所定の検出必要なし関数以外の関数を含んでもよい。ここで、ライブラリ関数は、スマートコントラクトの開発言語自体が提供した下位関数であってもよい。検出必要なし関数とは、技術者によって予め設定された検出必要がない関数を指してもよい。ここで、目的カスタム関数とは、スマートコントラクトにおける開発者によってオーサリングされた各種の関数を指してもよい。例えば、目的カスタム関数は、所定の条件に該当する開発者によってオーサリングされた関数であってもよい。
【0052】
選択的に、以下のステップによって、スマートコントラクトが所定の関数を含むか否かを特定してもよい。まず、スマートコントラクトのエントリ関数を解析し、エントリ関数が呼び出した各内部関数を特定する。そして、目的内部関数集合として、エントリ関数が呼び出した各内部関数を特定し、かつ、目的関数として、目的内部関数集合から1つの内部関数を選択して、以下の検出ステップを実行してもよい。
【0053】
ステップ1:目的関数が既に検出されたか否かを特定する。
【0054】
まず、目的関数が既に検出されたか否かを判断し、関数の再帰呼び出し又は入れ子呼び出しの場合にループから抜け出すことができない場合を回避することができる。
【0055】
ステップ2:目的関数が既に検出されたと特定し、かつ、目的内部関数集合における選択されなかった内部関数の数が0ではないことに応答して、目的関数として、選択されなかった1つの内部関数を目的内部関数集合から選択して、上記検出ステップの実行を継続し、目的関数が既に検出されたと特定し、かつ、目的内部関数集合における選択されなかった内部関数の数が0であることに応答して、スマートコントラクトが所定の関数を含まないと特定する。
【0056】
ステップ3:目的関数が検出されなかったと特定したことに応答して、目的関数が所定の関数であるか否かを特定し、かつ、目的関数を検出済みとマークする。
【0057】
ステップ4:目的関数が所定の関数であると特定したことに応答して、提示情報を出力してスマートコントラクトの異常を提示する。
【0058】
ステップ5:目的関数が所定の関数ではないと特定したことに応答して、目的関数がライブラリ関数又は所定の検出必要なし関数であるか否かを特定する。
【0059】
ステップ6:目的関数がライブラリ関数又は所定の検出必要なし関数であると特定し、かつ、目的内部関数集合における選択されなかった内部関数の数が0ではないことに応答して、目的関数として、選択されなかった1つの内部関数を目的内部関数集合から選択して、上記検出ステップの実行を継続し、目的関数がライブラリ関数又は所定の検出必要なし関数であると特定し、かつ、目的内部関数集合における選択されなかった内部関数の数が0であることに応答して、スマートコントラクトが所定の関数を含まないと特定する。
【0060】
ステップ7:目的関数がライブラリ関数又は所定の検出必要なし関数ではないと特定したことに応答して、目的内部関数集合として、取得された目的関数が呼び出した各内部関数を解析し、かつ、目的関数として、目的内部関数集合から1つの内部関数を選択して、上記検出ステップを実行する。
【0061】
ステップ203:スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成する。
【0062】
本実施例において、プルーフオブワーク(Proof-of-Work,PoW)は、サービスと資源の不正使用に対応するか、またはサービス攻撃を阻止する経済的対策である。通常、ユーザがいくつかの適切な時間を要する複雑な演算を行い、かつ、サービスプロバイダによって結果が迅速に検算可能であるよう要求し、この消費された時間、機器及びエネルギーを保証コストとして、サービスと資源が本当の需要に用いられることを確保する。現在、プルーフオブワーク技術がよく使用する技術的原理は、ハッシュ関数である。プルーフオブワーク技術は、今幅広く研究、応用される公知技術であり、ここではこれ以上説明しない。
【0063】
本実施例において、プルーフオブワーク技術に基づいて、一定のコスト(例えば、時間、計算資源など)がかからなければ得られない照合データを生成することができる。ここで、照合データは、後続のスマートコントラクトに対する各種の処理プロセスにおけるスマートコントラクトに対する照合に用いられ、不正行為者がスマートコントラクトを悪意に偽造するなどの場合を回避することができる。
【0064】
プルーフオブワーク技術の技術的原理は多様であり、異なる技術的原理のワークロード技術を用いてスマートコントラクトの照合データを生成する方式は異なってもよいことを理解すべきである。
【0065】
例示として、ハッシュ関数によるプルーフオブワーク技術を用いて、所定の要求に該当する演算結果が得られるまで、スマートコントラクトに対してハッシュ演算を継続的に行うことができ、さらに、得られた所定の要求に該当する演算結果をスマートコントラクトの照合データとすることができる。ここで、所定の要求は、技術者によって実際の適用シーンに応じて設定してもよい。例えば、所定の要求として、得られた演算結果の上位Nビットが0であってもよい。
【0066】
本実施例のいくつかの選択可能な実現方式では、スマートコントラクトが所定の関数を含むと特定したことに応答して、ユーザがスマートコントラクトを適時に検出、調整することができるように、提示情報を出力してスマートコントラクトの異常を提示してもよい。
【0067】
ステップ204:照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信する。
【0068】
本実施例において、照合データが得られた後、さらに、スマートコントラクトをコンパイルし、照合データに合わせてパックすることができ、利用を要望するブロックチェーンプラットフォームを介して要求を送信し、スマートコントラクトの発行を完了することができる。ここで、送信されたスマートコントラクトの発行を要求するための要求に、スマートコントラクトの照合データを指示するための情報が含まれてもよい。例えば、スマートコントラクトの発行を要求するための要求に、スマートコントラクトの照合データが含まれてもよく、スマートコントラクトの照合データの識別情報(例えば、アドレスなど)が含まれてもよい。
【0069】
続いて、
図3を参照すると、
図3は、本実施例によるスマートコントラクトを発行するための方法の1つの概略的な適用シーン300である。
図3の適用シーンにおいて、まず、開発者によって予めオーサリングされたスマートコントラクトを取得した後、スマートコントラクトにおける各関数を解析し、スマートコントラクトにおける各関数が、予め指定された所定の関数の各々における所定の関数を有するか否かを分析してもよい。スマートコントラクトにおける各関数が、予め指定されたいずれか所定の関数を有しないと、スマートコントラクトに対してハッシュ演算を行い、スマートコントラクトの照合データとして、PoW要求を満たす演算結果を得ることができる。さらに、スマートコントラクト及び照合データに対してコンパイル、パックなどの操作を行うよう要求し、スマートコントラクトの発行を完了させることができる。
【0070】
本開示の上記実施例により提供される方法は、スマートコントラクトの発行を要求する前に、まず、スマートコントラクトを検査して、そのうちに所定の関数が含まれるか否かを特定することによって、スマートコントラクトの処理論理を制御し、スマートコントラクトの実行に起因した意図しない結果の発生を回避することができる。スマートコントラクトが所定の関数を含まないと特定した後、さらに、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成し、後続のスマートコントラクトの発行、実行などのプロセスのセキュリティを保障し、ブロックチェーンシステムに弊害をもたらし得るスマートコントラクトの発行を回避することができる。
【0071】
さらに
図4を参照すると、スマートコントラクトを発行するための方法の別の実施例の流れ400が示されている。当該スマートコントラクトを発行するための方法の流れ400は、以下のステップを含む。
【0072】
ステップ401:スマートコントラクトを取得する。
【0073】
ステップ402:スマートコントラクトが所定の関数を含むか否かを特定する。
【0074】
上記ステップ401及びステップ402の具体的な実行プロセスについて、
図2の対応する実施例におけるステップ201及びステップ202の関連説明を参照することができ、ここではこれ以上説明しない。
【0075】
ステップ403:スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの識別データによって、スマートコントラクトの照合データを生成する。
【0076】
本実施例において、識別データは、乱数組及びブロックチェーンシステムの所定の識別子のうちの少なくとも1つを含んでもよい。ここで、乱数組は、既存の様々なランダムアルゴリズムを用いて生成されてもよい。ここで、ブロックチェーンシステムの所定の識別子とは、ブロックチェーンシステムで予め設定した識別子を指してもよい。
【0077】
この時、識別データとスマートコントラクトに合わせて、所定のワークロード要求に該当する照合データを生成してもよい。これによって、スマートコントラクトの照合データを生成する難易度をさらに増加させ、したがって、スマートコントラクトを偽造する難易度をさらに強化させ、スマートコントラクトの後続の処理プロセスのセキュリティを高めることができる。
【0078】
本実施例において、ハッシュ演算、畳み込みの導出、巨大素数の分解などの演算によってプルーフオブワークを実現してもよい。ハッシュ演算を例示として、以下のステップによっていスマートコントラクトの照合データを生成することができる。
【0079】
識別データ及びスマートコントラクトに対してハッシュ演算を行い、演算結果が得られる演算ステップと、得られた演算結果が所定のワークロード要求を満たすか否かを特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たすと特定したことに応答して、得られた演算結果をスマートコントラクトの照合データとして特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たさないと特定したことに応答して、上記演算ステップの実行を継続する演算ステップと、を実行する。
【0080】
例えば、所定のワークロード要求として、得られた演算結果の上位Nビットは、いずれも1である。この時、第1乱数組を生成した後、第1乱数組、ブロックチェーンシステムの所定の識別子及びスマートコントラクトに対してハッシュ演算を行い、第1演算結果が得られてもよい。第1演算結果の上位Nビットがいずれも1ではないと、第2乱数組を生成した後、第2乱数組、ブロックチェーンシステムの所定の識別子及びスマートコントラクトに対してハッシュ演算を行い、第2演算結果を得ることができる。第2演算結果の上位Nビットがいずれも1であると、第2演算結果をスマートコントラクトの照合データとすることができる。
【0081】
選択的に、スマートコントラクトが、正式に発行されたスマートコントラクトに属するか否かを特定してもよい。スマートコントラクトが正式に発行されたスマートコントラクトに属すると特定したことに応答して、プルーフオブワーク技術に基づいて、乱数組によって、スマートコントラクトの照合データを生成することができる。スマートコントラクトが正式に発行されたスマートコントラクトに属しない(例えば、テスト発行されたスマートコントラクト)と特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトのみを用いて照合データを生成することができ、テスト発行プロセスにおける資源の消費を減少させる。
【0082】
ステップ404:照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信する。
【0083】
本実施例において、照合データが得られた後、さらに、スマートコントラクトをコンパイルし、乱数組及び/又はブロックチェーンシステムの所定の識別子、及び照合データに合わせてパックすることができ、利用を要望するブロックチェーンプラットフォームを介して要求を送信し、スマートコントラクトの発行を完了することができる。
【0084】
上記スマートコントラクトの照合データを生成する具体的な方式に基づき、スマートコントラクトを発行する時の検出方式が対応的に設定されてもよい。例示として、スマートコントラクトを発行する前に、まず、スマートコントラクトの発行を要求するための要求に応じて、スマートコントラクトに対応する乱数組及び/又はブロックチェーンシステムの所定の識別子、及びスマートコントラクトの照合データを取得することができる。
【0085】
乱数組に基づいてスマートコントラクトの照合データを生成すると、スマートコントラクトの発行を要求するための要求に応じて、スマートコントラクトに対応する乱数組及び照合データを取得することができ、乱数組及びブロックチェーンシステムの所定の識別子に基づいて、スマートコントラクトの照合データを生成すると、スマートコントラクトの発行を要求するための要求に応じて、スマートコントラクトに対応する乱数組、ブロックチェーンシステムの所定の識別子及び照合データを取得することができることを理解すべきである。
【0086】
その後、取得されたスマートコントラクトに対応する乱数組及び/又はブロックチェーンシステムの所定の識別子、及びスマートコントラクトの照合データによって、スマートコントラクトが異常であるか否かを照合することができる。例えば、乱数組及びブロックチェーンシステムの所定の識別子に基づいて、スマートコントラクトの照合データを生成すると、取得された乱数組、ブロックチェーンシステムの所定の識別子及びスマートコントラクトのハッシュ演算結果を計算した後、計算して得られたハッシュ演算結果が、取得された照合データと同じであるか否かを特定することができる。
【0087】
計算して得られたハッシュ演算結果が、取得された照合データと異なると、スマートコントラクトが異常である(例えば、不正行為者によって偽造されたスマートコントラクトなどである可能性がある)ことを表すことができ、さらに、提示情報を出力してスマートコントラクトの異常を提示することができ、一時的に発行を完了させることができない。
【0088】
計算して得られたハッシュ演算結果が、取得された照合データと同じであると、取得された照合データが所定のPoW要求に該当するか否かをさらに照合することができる。取得された照合データが、所定のPoW要求に該当しないと、スマートコントラクトが異常であることを表すことができ、さらに、提示情報を出力してスマートコントラクトの異常を提示することができ、一時的に発行を完了させることができない。取得された照合データが所定のPoW要求に該当すると、スマートコントラクトの正常を表すことができ、スマートコントラクトをさらに処理し、スマートコントラクトの発行を完了させることができる。
【0089】
本開示の上記実施例により提供される方法は、スマートコントラクトが所定の関数を含まないと特定した後、プルーフオブワーク技術に基づいて、スマートコントラクトの識別データ、例えば乱数組及びブロックチェーンシステムの所定の識別子などによって、スマートコントラクトの照合データを生成することによって、スマートコントラクトの照合データを生成する難易度を増加させ、スマートコントラクトを任意に発行する場合の減少に寄与することができる。同時に、スマートコントラクトを発行する前に、乱数組及びブロックチェーンシステムの所定の識別子などによって、スマートコントラクトを照合することによって、スマートコントラクトを偽造するなどの場合を効果的に検出し、発行されるスマートコントラクトのセキュリティをさらに保障することもできる。
【0090】
さらに
図5を参照すると、上記の各図面に示された方法に対する実現として、本開示は、スマートコントラクトを発行するための装置の一実施例を提供し、当該装置の実施例は、
図2に示す方法の実施例に対応し、当該装置は、具体的に様々な電子機器に適用できる。
【0091】
図5に示すように、本実施例により提供されるスマートコントラクトを発行するための装置500は、スマートコントラクト取得ユニット501、特定ユニット502、生成ユニット503、送信ユニット504を含む。ここで、スマートコントラクト取得ユニット501は、スマートコントラクトを取得するように配置され、特定ユニット502は、スマートコントラクトが、所定の関数を含むか否かを特定するように配置され、生成ユニット503は、スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成するように配置され、送信ユニット504は、照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信するように配置される。
【0092】
本実施例において、スマートコントラクトを発行するための装置500における取得ユニット501、特定ユニット502、生成ユニット503、送信ユニット504の具体的な処理及びもたらす技術的效果について、それぞれ
図2の対応する実施例におけるステップ201、ステップ202、ステップ203、ステップ204の関連説明を参照することができ、ここではこれ以上説明しない。
【0093】
本実施例のいくつかの選択可能な実現方式では、所定の関数は、ブロックチェーンシステムのセキュリティを破る関数を含む。
【0094】
本実施例のいくつかの選択可能な実現方式では、上記スマートコントラクトを発行するための装置500は、スマートコントラクトが所定の関数を含むと特定したことに応答して、提示情報を出力してスマートコントラクトの異常を提示するように配置される出力ユニット(図示せず)をさらに含む。
【0095】
本実施例のいくつかの選択可能な実現方式では、所定の関数は、時変変数を用いる関数、ファイルの入出力(I/O)操作を実行する関数、スクリプトを呼び出してシステムを制御する関数、ネットワークに関する操作を実行する関数、システムの環境変数を制御する関数、のうちの少なくとも1つを含む。
【0096】
本実施例のいくつかの選択可能な実現方式では、上記生成ユニット503は、さらに、プルーフオブワーク技術に基づいて、乱数組及びブロックチェーンシステムの所定の識別子のうちの少なくとも1つを含む、スマートコントラクトの識別データによって、スマートコントラクトの照合データを生成するように配置される。
【0097】
本実施例のいくつかの選択可能な実現方式では、上記生成ユニット503は、さらに、識別データ及びスマートコントラクトに対してハッシュ演算を行い、演算結果が得られる演算ステップと、得られた演算結果が所定のワークロード要求を満たすか否かを特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たすと特定したことに応答して、得られた演算結果をスマートコントラクトの照合データとして特定する演算ステップと、得られた演算結果が所定のワークロード要求を満たさないと特定したことに応答して、演算ステップの実行を継続する演算ステップと、を実行するように配置される。
【0098】
本実施例のいくつかの選択可能な実現方式では、上記生成ユニット503は、さらに、スマートコントラクトが正式に発行されたスマートコントラクトに属すると特定したことに応答して、プルーフオブワーク技術に基づいて、識別データによって、スマートコントラクトの照合データを生成するように配置される。
【0099】
本実施例のいくつかの選択可能な実現方式では、上記特定ユニット502は、さらに、スマートコントラクトにおけるライブラリ関数及び所定の検出必要なし関数以外の関数を含む、スマートコントラクトにおける目的カスタム関数が、所定の関数を含むか否かを特定するように配置される。
【0100】
本開示の上記実施例により提供される装置は、取得ユニットでスマートコントラクトを取得し、特定ユニットでスマートコントラクトが所定の関数を含むか否かを特定し、生成ユニットで、スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成し、送信ユニットで、照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信することによって、スマートコントラクトの発行を要求する前に、スマートコントラクトの処理論理を制御し、スマートコントラクトの実行に起因した意図しない結果の発生を回避することができる。
【0101】
以下、
図6を参照すると、本開示の実施例の実現のために適する電子機器(例えば
図1における端末機器)600の構造概略図が示されている。本開示の実施例における端末機器は、携帯電話、ノートパソコン、デジタル放送受信機、PDA(パーソナルデジタルアシスタント)、PAD(タブレット型コンピュータ)、PMP(ポータブルマルチメディアプレーヤー)、車載端末(例えば車載ナビゲーション端末)などのようなモバイル端末、及びデジタルTV、デスクトップ型コンピュータなどのような固定端末を含むことができるが、これらに限定されない。
図6に示す端末機器は、単に例に過ぎず、本開示の実施例の機能及び使用範囲を制限するべきではない。
【0102】
図6に示すように、電子機器600は、読み出し専用メモリ(ROM)602に記憶されているプログラム、又は記憶装置608からランダムアクセスメモリ(RAM)603にロードされたプログラムに従って、様々な適切な動作及び処理を実行できる処理装置(例えば中央処理装置、グラフィックスプロセッサなど)601を含むことができる。RAM603には、電子機器600の操作に必要な各種プログラムやデータがさらに記憶されている。処理装置601、ROM602及びRAM603は、バス604を介して互いに接続されている。バス604には、入出力(I/O)インターフェース605も接続されている。
【0103】
通常、I/Oインターフェース605には、例えばタッチスクリーン、タッチパネル、キーボード、マウス、カメラ、マイクロホン、加速度計、ジャイロスコープなどを含む入力装置606と、例えば液晶ディスプレイ(LCD)、スピーカー、振動器などを含む出力装置607と、例えば磁気テープ、ハードディスクなどを含む記憶装置608と、通信装置609とが接続されてもよい。通信装置609は、電子機器600がデータを交換するために他の機器と無線又は有線で通信することを許可できる。
図6は、様々な装置を有する電子機器600を示しているが、示された装置の全てを実施又は具備するように要求しないことを理解されたい。より多い又はより少ない装置が、代替的に実施又は具備されてもよい。
図6に示す各ブロックは、1つの装置を表すものであってもよく、必要に応じて複数の装置を表すものであってもよい。
【0104】
特に、本開示の実施例によれば、以上でフローチャートを参照して説明されたプロセスは、コンピュータソフトウェアのプログラムとして実現されてもよい。例えば、本開示の実施例は、コンピュータ読取可能な媒体に担持されるコンピュータプログラムを備えるコンピュータプログラム製品を含み、当該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含む。このような実施例において、当該コンピュータプログラムは、通信装置609を介してネットワークからダウンロードされインストールされるか、又は記憶装置608からインストールされるか、又はROM602からインストールされてもよい。当該コンピュータプログラムが処理装置601によって実行される場合に、本開示の実施例の方法で限定された上記の機能が実行される。
【0105】
なお、本開示の実施例に記載のコンピュータ読取可能な媒体は、コンピュータ読取可能な信号媒体、あるいはコンピュータ読取可能な記憶媒体、又は上記両方の任意の組み合わせであってもよい。コンピュータ読取可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、あるいは半導体のシステム、装置やデバイス、又は上記の任意の組み合わせであってもよいが、これらに限定されない。コンピュータ読取可能な記憶媒体のより具体的な例には、1つ又は複数のワイヤによる電気的接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせが含まれるが、これらに限定されない。本開示の実施例において、コンピュータ読取可能な記憶媒体は、プログラムを備えるか又は記憶する任意の有形の媒体であってもよく、当該プログラムは、指令実行システム、装置もしくはデバイスによって使用されるか、又はそれらに組み合わせて使用されることができる。本開示の実施例において、コンピュータ読取可能な信号媒体は、コンピュータ読取可能なプログラムコードを担持した、ベースバンド内で又は搬送波の一部として伝播されるデータ信号を含んでもよい。このような伝播されたデータ信号は、多種の形式を採用でき、電磁気信号、光信号、又は上記の任意の適切な組み合わせが含まれるが、これらに限定されない。コンピュータ読取可能な信号媒体は、コンピュータ読取可能な記憶媒体以外のいかなるコンピュータ読取可能な媒体であってもよく、当該コンピュータ読取可能な信号媒体は、指令実行システム、装置もしくはデバイスによって使用されるか、又はそれらに組み合わせて使用されるためのプログラムを、送信、伝播又は伝送することができる。コンピュータ読取可能な媒体に含まれるプログラムコードは、任意の適切な媒体で伝送することができ、ワイヤ、光ケーブル、RF(無線周波数)など、又は上記の任意の適切な組み合わせが含まれるが、これらに限定されない。
【0106】
上記コンピュータ読取可能な媒体は、上記端末機器に含まれるものであってもよく、独立に存在して、当該端末機器に組み込まれていないものであってもよい。上記コンピュータ読取可能な媒体には、1つ又は複数のプログラムが担持され、上記の1つ又は複数のプログラムが当該端末機器によって実行される場合に、スマートコントラクトを取得することと、スマートコントラクトが所定の関数を含むか否かを特定することと、スマートコントラクトが所定の関数を含まないと特定したことに応答して、プルーフオブワーク技術に基づいて、スマートコントラクトの照合データを生成することと、照合データに基づいて、スマートコントラクトの発行を要求するための要求を送信することとを、当該端末機器に実行させる。
【0107】
本開示の実施例の操作を実行するためのコンピュータプログラムコードを、1種又は多種のプログラミング言語又はそれらの組み合わせでオーサリングすることができ、前記プログラミング言語は、Java、Smalltalk、C++のようなオブジェクト指向プログラミング言語を含み、「C」言語又は類似したプログラミング言語のような通常の手続き型プログラミング言語をさらに含む。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、1つの単独のソフトウェアパッケージとして、部分的にユーザのコンピュータ上でかつ部分的に遠隔コンピュータ上で、又は完全に遠隔コンピュータやサーバ上で実行できる。遠隔コンピュータに関する場合には、遠隔コンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意の種類のネットワークを介して、ユーザのコンピュータに接続できるか、又は、外部のコンピュータに接続できる(例えばインターネットサービスプロバイダを利用してインターネットを介して接続される)。
【0108】
図面におけるフローチャート及びブロック図には、本開示の様々な実施例によるシステム、方法及びコンピュータプログラム製品の実現可能なシステムアーキテクチャ、機能及び操作が示されている。この点で、フローチャート又はブロック図における各ブロックは、1つのモジュール、プログラミングのセグメント、又はコードの一部を代表することができ、当該モジュール、プログラミングのセグメント、又はコードの一部は、特定のロジック機能を実現するための1つ又は複数の実行可能指令を含む。また、いくつかの代替としての実現において、ブロックに示されている機能は、図面に示された順序と異なる順序で発生してもよいことに留意されたい。例えば、連続して示す2つのブロックは実際に略並行して実行されてもよく、それらは係る機能に応じて時に逆の順序で実行されてもよい。ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、特定の機能又は操作を実行する、ハードウェアによる専用のシステムによって実現されてもよく、又は専用ハードウェアとコンピュータ指令の組み合わせによって実現されてもよいことにも留意されたい。
【0109】
本開示に説明された実施例に係るユニットは、ソフトウェアで実現されてもよく、ハードウェアで実現されてもよい。説明されたユニットは、プロセッサに設けられてもよく、例えば、「取得ユニットと、特定ユニットと、生成ユニットと、送信ユニットとを含むプロセッサである」と記載されてもよい。ここで、これらのユニットの名称は、ある場合には当該ユニット自体を限定するものではなく、例えば、取得ユニットは、さらに「スマートコントラクトを取得するユニット」と記載されてもよい。
【0110】
上記の説明は、本開示の好ましい実施例及び応用された技術的原理の説明に過ぎない。本開示の実施例に係る発明の範囲が、上記の技術的特徴の特定の組み合わせによって形成された技術方案に限定されなく、同時に、上記の発明の構想から逸脱せずに、上記の技術的特徴又はその同等の特徴の任意の組み合わせによって形成されたその他の技術方案も含むべきであることは、当業者であれば理解すべきである。例えば、上記の特徴と、本開示の実施例に開示された(但し、これらに限定されない)類似した機能を有する技術的特徴とを、相互に入れ替えて形成された技術方案が挙げられる。
【符号の説明】
【0111】
100 システムアーキテクチャ
101 端末機器
102 端末機器
103 端末機器
104 ネットワーク
105 ブロックチェーンシステム
300 概略的な適用シーン
500 装置
501 取得ユニット
502 特定ユニット
503 生成ユニット
504 送信ユニット
600 電子機器
601 処理装置
602 読み出し専用メモリ(ROM)
603 ランダムアクセスメモリ(RAM)
604 バス
605 入出力(I/O)インターフェース
606 入力装置
607 出力装置
608 記憶装置
609 通信装置
【国際調査報告】