JP7018517B2 - ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム - Google Patents

ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム Download PDF

Info

Publication number
JP7018517B2
JP7018517B2 JP2020544505A JP2020544505A JP7018517B2 JP 7018517 B2 JP7018517 B2 JP 7018517B2 JP 2020544505 A JP2020544505 A JP 2020544505A JP 2020544505 A JP2020544505 A JP 2020544505A JP 7018517 B2 JP7018517 B2 JP 7018517B2
Authority
JP
Japan
Prior art keywords
block
merkle tree
smart contract
verification
root node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020544505A
Other languages
English (en)
Other versions
JP2021515311A (ja
Inventor
ジン,ボ
Original Assignee
バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド filed Critical バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
Publication of JP2021515311A publication Critical patent/JP2021515311A/ja
Application granted granted Critical
Publication of JP7018517B2 publication Critical patent/JP7018517B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本出願は、2018年9月20日に中国国家知識産権局に出願された、出願番号が201811101341.2であり、発明の名称が「ブロックチェーン上のスマートコントラクトの検証方法、装置、及び記憶媒体」である中国特許出願の優先権を主張しており、その全体が参照により本明細書に取り込まれる。本発明は、情報技術分野に関し、特に、 ブロックチェーン上のスマートコントラクトの検証方法、装置、コンピュータ可読記憶媒 体、及びプログラムに関する。
ブロックチェーンネットワークは、通常、ブロックチェーン上の台帳の完全なデータを維持する全ノードを大量に含んでいる。各ブロックの完全なデータが、これらの全ノードにリアルタイムに同期させられるため、ブロックの有効性を正確に判断することができる。
ブロックチェーンネットワークには、携帯電話のようなモバイルクライアントなどの軽量ノードも存在する。これらの軽量ノードは、記憶空間が限られているため、すべてのブロック履歴データを記憶することができない。また、モバイルクライアントの帯域幅が限られ、流量費用が高いので、ブロックのサイズが大きい且つブロックの出力速度が速い場合、各ブロックの完全なデータをモバイルクライアントまでにリアルタイムに同期することも現実的ではない。一方、軽量ノードのハードウェア機能が弱いため、スマートコントラクトをローカルにて繰り返し実行することにより、スマートコントラクトの実行結果がブロックチェーンより同期させられれたブロックと一致するか否かを検証するコストが高すぎる。
現在、軽量ノード技術が市販されているが、スマートコントラクトを繰り返し実行しない条件のもとで、軽量ノードにてスマートコントラクトの実行結果を効果的に検証することができない。
本発明は、少なくとも従来技術における1つまたは複数の技術的課題を解決するために、ブロックチェーン上のスマートコントラクト検証方法、装置、およびコンピュータ可読記憶媒体を提供する。
本発明の第1態様は、ブロックチェーン上のスマートコントラクトの検証方法を提供する。当該方法は、
ブロックチェーンネットワークにおける第1ノードから指定ブロックの、第1マークルツリーのルートノードと、第2マークルツリーのルートノードと、前記指定ブロックの一つ前のブロックの標識とを含むブロックヘッダ情報と、トランザクション標識とスマートコントラクトの実行結果とを含むトランザクションリストとを取得することと、
前記第1マークルツリーのルートノードと前記トランザクション標識を検証して、第1検証結果を得ることと、
前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証して、第2検証結果を得ることと、
前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証して、第3検証結果を得ることと、
前記第1検証結果、前記第2検証結果、及び前記第3検証結果の全てが検証合格である場合に、前記スマートコントラクトの実行結果が有効であると判定することと、を含む。
1つの実施形態において、前記第1マークルツリーのルートノードと前記トランザクション標識を検証することは、
前記トランザクションリストにおけるトランザクション標識を用いて第3マークルツリーを構築し、前記第3マークルツリーのルートノードを算出することと、
前記第3マークルツリーのルートノードと前記第1マークルツリーのルートノードとが一致するか否かを比較することと、
一致する場合に、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となることと、を含む。
1つの実施形態において、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証することは、
前記トランザクションリストにおけるスマートコントラクトの実行結果を用いて第4マークルツリーを構築し、前記第4マークルツリーのルートノードを算出することと、
前記第4マークルツリーのルートノードと前記第2マークルツリーのルートノードとが一致するか否かを比較することと、
一致する場合に、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果が検証合格となることと、を含む。
1つの実施形態において、前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証する前に、
ブロックチェーンネットワークにおける前記第1ノードおよび第2ノードから前記指定ブロックのブロックヘッダ情報をそれぞれ取得することと、
前記第1ノードにおける前記指定ブロックのブロックヘッダ情報と前記第2ノードにおける前記指定ブロックのブロックヘッダ情報とが一致するか否かを比較することと、
一致する場合に、前記指定ブロックが有効であると判定することと、
前記指定ブロックが有効であると判定した場合に、前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証することと、をさらに含む。
本発明の第2態様は、ブロックチェーン上のスマートコントラクトの検証装置を提供する。当該装置は、
ブロックチェーンネットワークにおける第1ノードから指定ブロックの、第1マークルツリーのルートノードと、第2マークルツリーのルートノードと、前記指定ブロックの一つ前のブロックの標識とを含むブロックヘッダ情報と、トランザクション標識とスマートコントラクトの実行結果とを含むトランザクションリストとを取得するための取得ユニットと、
前記第1マークルツリーのルートノードと前記トランザクション標識を検証して、第1検証結果を得るための第1検証ユニットと、
前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証して、第2検証結果を得るための第2検証ユニットと、
前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証して、第3検証結果を得るための第3検証ユニットと、
前記第1検証結果、前記第2検証結果および前記第3検証結果の全てが検証合格である場合に、前記スマートコントラクトの実行結果が有効であると判定するための判定ユニットと、を備える。
1つの実施形態において、前記第1検証ユニットは、
前記トランザクションリストのトランザクション標識を用いて第3マークルツリーを構築して、前記第3マークルツリーのルートノードを算出し、
前記第3マークルツリーのルートノードと前記第1マークルツリーのルートノードとが一致するか否かを比較し、
一致する場合に、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となることにさらに用いられる。
1つの実施形態において、前記第2検証ユニットは、
前記トランザクションリストにおけるスマートコントラクトの実行結果を用いて第4マークルツリーを構築して、前記第4マークルツリーのルートノードを算出し、
前記第4マークルツリーのルートノードと前記第2マークルツリーのルートノードとが一致するか否かを比較し、
一致する場合に、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果が検証合格となることにさらに用いられる。
1つの実施形態において、ブロックチェーンネットワークにおける前記第1ノードと第2ノードから、前記指定ブロックのブロックヘッダ情報をそれぞれ取得し、
前記第1ノードにおける前記指定ブロックのブロックヘッダ情報と前記第2ノードにおける前記指定ブロックのブロックヘッダ情報とが一致するか否かを比較し、
一致する場合に、前記指定ブロックが有効であると判定し、
前記指定ブロックが有効であると判定した場合に、前記指定ブロックの一つ前のブロック標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証するための第4検証ユニットをさらに備える。
1つの可能な実施形態において、ブロックチェーン上のスマートコントラクト検証装置には、ブロックチェーン上のスマートコントラクト検証装置が前述のブロックチェーン上のスマートコントラクト検証方法を実行することをサポートするプログラムを記憶するためのメモリと、メモリに記憶されるプログラムを実行するように構成されるプロセッサとが含まれる。前記ブロックチェーン上のスマートコントラクト検証装置には、ブロックチェーン上のスマートコントラクト検証装置を他の機器や通信ネットワークに通信させるための通信インターフェースがさらに含まれてもよい。
本発明の第3態様は、ブロックチェーン上のスマートコントラクトの検証装置を提供する。当該装置は、
1つ又は複数のプロセッサと、
1つ又は複数のプログラムを記憶するためのメモリと、を備え、
前記1つ又は複数のプロセッサは、前記1つ又は複数のプログラムを実行する場合に、前記1つ又は複数のプロセッサに前述の第1態様のいずれかに記載のブロックチェーン上のスマートコントラクトの検証方法を実行させる。
本発明の第4態様は、コンピュータ可読媒体を提供する。当該コンピュータ可読媒体には、コンピュータプログラムが記憶され、当該コンピュータプログラムがプロセッサにより実行される場合に、前述の第1態様のいずれかに記載のブロックチェーン上のスマートコントラクトの検証方法を実行させる。
上記技術案のうちのいずれか1つの技術案は、以下の利点又は有益な効果を有する。
本発明は、完全なブロック情報をダウンロードして記憶する必要がなく、軽量クライアントのローカルにてスマートコントラクトを繰り返し実行する必要もなく、ブロックチェーンネットワークにおいて軽量ノードがスマートコントラクトの実行結果の有効性を判断することを支援することができ、これにより、システムリソースを節約し、実行効率を向上させる。
上記の略述は、単に説明のために過ぎず、いかなる限定をも目的としない。上記に記載されている例示的な様態、実施形態、及び特徴以外に、図面及び下記の詳細説明を参照することによって、本発明のさらなる様態、実施形態、及び特徴の理解を促す。
本発明の一実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法における全ノードが第2マークルツリーを計算するフローチャートである。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法の軽量ノードでの有効性の検証フローチャートである。 本発明の一実施形態に係るブロックチェーン上のスマートコントラクトの検証装置のブロック構成図である。 本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証装置のブロック構成図である。 本発明の又一実施形態に係るブロックチェーン上のスマートコントラクトの検証装置のブロック構成図である。
図面において特に規定されない限り、複数の図面において同様の図面符号は、同様又は類似的な部材又はエレメントを示す。これらの図面は必ずしも実際の比例に従って製図されたものではない。これらの図面は本発明に基づいて開示された幾つかの実施形態を描いたものに過ぎず、本発明の範囲に対する制限としてはならないことを理解すべきである。
下記において、幾つかの例示的実施形態を簡単に説明する。当業者が把握出来るよう、本発明の主旨又は範囲を逸脱しない限り、様々な方式にから説明された実施形態に変更可能である。従って、図面と説明は制限を加えるものでなく、本質的には例示的なものである。
図1は本発明の一実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。図1に示すように、本発明の実施形態におけるブロックチェーン上のスマートコントラクトの検証方法は、
ブロックチェーンネットワークにおける第1ノードから指定ブロックの、第1マークルツリーのルートノードと、第2マークルツリーのルートノードと、前記指定ブロックの一つ前のブロックの標識とを含むブロックヘッダ情報と、トランザクション標識とスマートコントラクトの実行結果とを含むトランザクションリストとを取得するステップS110と、
前記第1マークルツリーのルートノードと前記トランザクション標識を検証して、第1検証結果を得るステップS120と、
前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証して、第2検証結果を得るステップS130と、
前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証して、第3検証結果を得るステップS140と、
前記第1検証結果、前記第2検証結果、及び前記第3検証結果の全てが検証合格である場合に、前記スマートコントラクトの実行結果が有効であると判定するステップS150と、を含む。
前記第1マークルツリーのリーフノードは、前記指定ブロックにおけるすべてのトランザクション標識から構成され、前記第2マークルツリーのリーフノードは、前記指定ブロックにおけるすべてのスマートコントラクトの実行結果から構成される。
マークルツリー(Merkle trees)は、ブロックチェーンの重要なデータ構造であり、ブロックデータを迅速に要約してブロックデータの存在性と整合性を検証することができるものである。マークルツリーには、通常、ブロックボディの下層(トランザクション)データベース、ブロックヘッダのルートハッシュ値(すなわち、Merkleルート)及び下層のブロックデータからルートハッシュ値へのすべての分岐が含まれています。マークルツリー演算プロセスは、通常、ブロックボディのデータをグループ化してハッシュ計算を行い、生成された新しいハッシュ値をマークルツリーに挿入して、最後のルートハッシュ値のみが残ってブロックヘッダのMerkleルートとされるまで再帰的に行うことである。最も一般的なマークルツリーは、ビットコインが採用した二叉マークルツリーであり、二叉マークルツリーにおける各ハッシュノードは、常に隣接する2つのデータブロックまたは2つのハッシュ値を含んでいる。
ブロックチェーンネットワークには、携帯電話のようなモバイルクライアントなどの軽量ノードが存在する。軽量ノードとしては、記憶空間が限られ、ハードウェア機能が弱い。これにより、軽量ノードにてネットワークより新たに同期させられたスマートコントラクトの実行結果の有効性を検証するための可能な方法を求める必要がある。本発明の実施形態は、ブロックチェーンネットワークにおいて、軽量ノードがスマートコントラクトの実行結果の有効性を判断することを支援する方法を提供する。本発明の実施形態における具体的な検証方法は、以下のステップS120~S140を含む。
ステップS120では、ブロックヘッダ情報における第1マークルツリーのルートノードがトランザクションリストにおけるトランザクション標識にマッチングするか否かを検証する。
ステップS130では、ブロックヘッダ情報における第2マークルツリーのルートノードがトランザクションリストにおけるスマートコントラクトの実行結果にマッチングするか否かを検証する。
ステップS140では、ブロックヘッダ情報における指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証する。
ここで、ステップS120とステップS130との実行順序は、入れ替え可能である。あるいは、他の実施形態では、ステップS120とステップS130とが並列に実行されてもよい。
本発明の実施形態は、ブロックチェーン技術を利用する任意の軽量ノードに適用できる。軽量ノードは、モバイルクライアントデバイスを含むが、これに限られない。
図2は、本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。図2に示すように、本発明の実施形態における具体的な実施手順は、以下の通りである。
ステップS105では、ブロックヘッダのチェーンデータ構造をローカルにてメンテナンスする。
A、ブロックヘッダには、
i、ブロックid(identification、標識)と、
ii、一つ前のブロックidと、
iii、第1マークルツリーのルートノードhash(ハッシュ値)と、
iv、第2マークルツリーのルートノードhashとのデータが含まれている。
B、各ブロックヘッダは、一つ前のブロックのブロックヘッダを指向し、これにより、チェーンデータ構造を維持している。ジェネシスブロックのブロックヘッダが指向している一つ前のブロックidは、0になっている。
第1マークルツリーの最下層のリーフノードは、当該ブロックに含まれるすべてのUTXO(Unspent Transaction Output、未使用トランザクションアウトプット)のトランザクションidから構成されている。ここで、トランザクションidは、トランザクション内容をハッシュ計算することで得られるが、トランザクション内容にスマートコントラクトの実行結果が含まれていない。
第2マークルツリーの最下層のリーフノードは、当該ブロックに含まれるすべてのスマートコントラクトの実行結果から構成されている。1つのトランザクションがスマートコントラクトの実行に関わる場合に、スマートコントラクトの実行結果は、新しいフィールドに記憶される。これらの新しいフィールドは、1つのマークルツリーを構成する。
各トランザクションに関わるスマートコントラクトの実行結果は、次の2つの部分から構成されている。
v-1、1つのマークルツリーのルートノード。VM(Virtual Machine、仮想マシン)は、1つのトランザクションに関わるスマートコントラクトを実行したたびに、スマートコントラクトのデータ内容を記憶するデータ構造を変更する。すべてのデータは、このマークルツリーを構成している。
v-2、今回のトランザクションに関わるスマートコントラクトの実行による実行結果。
図3は、本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法における全ノードが第2マークルツリーを計算するフローチャートである。図3において、State-Keyは、スマートコントラクトの実行結果に対応する値(state)とキー値(key)とのデータとを表している。「Key state snapshots when Smart Contration has been invoked」は、スマートコントラクトの実行による実行結果に対応する値とキー値とのデータのスナップショットを表している。State-Key1とState-Key2に対するハッシュ計算をそれぞれ行うことにより、2つのリーフノードHash L-LEAFを得る。さらに、2つのリーフノードHash L-LEAFに対するハッシュ計算を行うことにより、枝ノードHash X-BRANCHを得る。2つの枝ノードHash X-BRANCHとHash Y-BRANCHに対するハッシュ計算を行うことにより、前述のv-1におけるマークルツリーのルートノード、すなわち、「State DB merkle root when Smart Contract has been Invoked-Tx B」(スマートコントラクトBを実行した後のマークルツリーのルート値のデータベース)を生成する。「Smart Contract Invoke Result」は、スマートコントラクトの実行結果を表している。「Smart Contract Invoke Response-Tx B」は、スマートコントラクトBの実行結果を表している。「State DB merkle root when Smart Contract has been Invoked-Tx B」に対するハッシュ計算を行うことにより、Hash 4-LEAFを得、「Smart Contract Invoke Response-Tx B」に対するハッシュ計算を行うことにより、Hash 3-LEAFを得、Hash 4-LEAFとHash 3-LEAFに対するハッシュ計算を行うことにより、枝ノード「Hash6-BRANCH(Hash of smart contract result-Tx B、すなわち、スマートコントラクトBの実行結果のハッシュ値)」を得る。最後に、hash6-BRANCHと「hash5-BRANCH(Hash of smart contract result-Tx A、すなわち、スマートコントラクトAの実行結果のハッシュ値)」に対するハッシュ計算を行うことにより、ルートノード「hash7-Root(Hash of Branches、すなわち、枝のハッシュ値)」を得る。「Merkle Tree used for Generating Root」は、ルートノードを生成するマークルツリーを表している。
ステップS110では、ブロックチェーンネットワークからランダムに選択する、あるいはユーザが第1ノードを指定することにより、データ同期を行い、指定ブロックのブロックヘッダとトランザクションリストとを取得する。指定ブロックをXで表す場合、このステップにおいて、ブロックXの情報の一部であるブロックヘッダ、UTXOトランザクションリスト(トランザクションidやトランザクションに関わるスマートコントラクトの実行結果などを含む)を取得する。ここで、第1ノードは、ブロックチェーンネットワークの全ノードである。
ステップS115では、第1ノードと第2ノードから取得されたデータが一致するか否かを比較する。
図4は、本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。図4に示すように、1つの可能な実施形態において、ステップS140では、前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証する前に、ステップS115が実行される。ステップS115は、具体的に、
ブロックチェーンネットワークにおける前記第1ノードおよび第2ノードから前記指定ブロックのブロックヘッダ情報をそれぞれ取得するステップS410と、
前記第1ノードにおける前記指定ブロックのブロックヘッダ情報と前記第2ノードにおける前記指定ブロックのブロックヘッダ情報とが一致するか否かを比較するステップS420と、
一致する場合に、前記指定ブロックが有効であると判定するS430と、
前記指定ブロックが有効であると判定した場合に、前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証するステップS440と、を含む。
一例において、ステップS115は、具体的に、次のステップを含んでもよい。
さらに、ブロックチェーンネットワークからランダムに選択する、あるいはユーザが第2ノードを指定することにより検索を行い、検索条件は、ステップS110で取得されたブロックXのヘッダに含まれるブロックidである。そして、当該対象ブロックidに基づいて、第2ノードにおいて、ブロックXに対応するブロックヘッダZを検索し得た。ここで、第2ノードは、ブロックチェーンネットワークにおける全ノードである。
ブロックXのヘッダの第1マークルツリーのルートと、第2マークルツリーのルートと、一つ前のブロックidとが第2ノードから得られたブロックヘッダZの情報にマッチングするか否かを比較する。マッチングする場合には、ブロックXが実際に有効であることを示す。
図5は、本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。図5に示すように、1つの可能な実施形態において、ステップS120では、前記第1マークルツリーのルートノードと前記トランザクション標識を検証し、具体的に、
前記トランザクションリストにおけるトランザクション標識を用いて第3マークルツリーを構築し、前記第3マークルツリーのルートノードを算出するステップS210と、
前記第3マークルツリーのルートノードと前記第1マークルツリーのルートノードとが一致するか否かを比較するステップS220と、
一致する場合に、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となるステップS230と、を含んでもよい。
具体的には、ブロックXのブロックヘッダがトランザクションidのリストにマッチングするか否かを検証する。トランザクションidを1つのマークルツリー(すなわち、第3マークルツリー)に構成させ、その最終のマークルツリーのルートを算出する。そして、算出された第3マークルツリーのルートとブロックヘッダに含まれる第1マークルツリーのルートノードhashとが一致するか否かを比較する。一致する場合に、検証ブロックXのブロックヘッダがトランザクションidのリストにマッチングすることを示し、つまり、第1マークルツリーのルートノードが前記トランザクション標識にマッチングすることを示す。これにより、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となる。
図6は、本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法のフローチャートである。図6に示すように、1つの可能な実施形態において、ステップS130では、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証し、具体的に、
前記トランザクションリストにおけるスマートコントラクトの実行結果を用いて第4マークルツリーを構築し、前記第4マークルツリーのルートノードを算出するステップS310と、
前記第4マークルツリーのルートノードと前記第2マークルツリーのルートノードとが一致するか否かを比較するステップS320と、
一致する場合に、前記第2マークルツリーのルートノードと前記スマートコントラクト実行結果が検証合格となるステップS330と、を含んでもよい。
具体的には、ブロックXのブロックヘッダがスマートコントラクトの実行結果リストにマッチングするか否かを検証する。スマートコントラクトの実行結果を1つのマークルツリー(すなわち、第4マークルツリー)に構成し、その最終のマークルツリーのルートを算出する。そして、算出された第4マークルツリーのルートとブロックヘッダに含まれる第2マークルツリーのルートノードが一致するか否かを比較する。一致する場合に、ブロックXのブロックヘッダがスマートコントラクトの実行結果リストにマッチングすることを示し、つまり、第2マークルツリーのルートノードが前記スマートコントラクトの実行結果にマッチングすることを示す。これにより、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果が検証合格となる。
ステップS140では、ブロックXのブロックヘッダに含まれる一つ前のブロックidがローカルにてメンテナンスされたブロックヘッダチェーン構造にあるか否かを判断する。
ステップS150では、以上のステップS115、ステップS120、ステップS130およびステップS140にて検証合格である場合、前記スマートコントラクトの実行結果が有効であると判断する。最後の検証ステップS140では、ブロックXのブロックヘッダに含まれる一つ前のブロックidがローカルにてメンテナンスされたブロックヘッダチェーン構造にあると判断した場合、実際に有効なブロックXのブロックヘッダを、ローカルにてメンテナンスされたブロックヘッダチェーンのデータベースに記憶する。
上記ステップにおいて、ステップS115は省略可能な実行ステップであり、検証の応答時間に対する要求が相対的に高い場合に、ステップS115が実行されなくてもよい。
また、ステップS115、ステップS120、ステップS130については、これらの実行順序を入れ替えてもよく、あるいは、他の実施形態において、ステップS115、ステップS120、ステップS130は、並列に実行されてもよい。これらの3つのステップの実行が完了した後、ステップS140が実行される。
図7は、本発明の他の実施形態に係るブロックチェーン上のスマートコントラクトの検証方法の軽量ノードでの有効性の検証フローチャートである。図7に示すように、一例において、ブロックチェーン上のスマートコントラクトの検証方法の具体的な実行ステップは、以下の通りである。
1、軽量ノードは、全ノード1より最新のブロックのヘッダ(2つのマークルツリーを含む必要がある)、トランザクションidリスト及びスマートコントラクトの実行結果リストが同期される。
2、ブロックの正当性を検証する。検証の具体的な手順は、前述のステップS115、ステップS120、ステップS130およびステップS140を含んでもよい。
3、全ノード2において同一のブロックのブロックヘッダを検索し、2つのマークルツリーのルート及び指向される一つ前のブロックidが全ノード1より同期されたデータに一致するか否かを比較する。比較の具体的な手順は、上記のステップS115を含んでもよい。
4、トランザクションidリストとスマートコントラクトの実行結果とを検証する。
4.1、tx(Transaction、取引)idリストがブロックヘッダの第1マークルツリーのルートにマッチングするか否かを判断し、例えば、純支払トランザクションを検証する。
4.2、スマートコントラクトの実行結果リストがブロックヘッドの第2マークルツリーのルートにマッチングするか否かを判断し、すなわち、スマートコントラクトに関わるトランザクションを検証する。
上記の全ての手順で検証に成功した場合に、真に有効なブロックヘッダが記憶される。
上記技術案のうちのいずれか1つの技術案は、以下の利点又は有益な効果を有する。
完全なブロック情報をダウンロードして記憶する必要がなく、軽量クライアントのローカルにてスマートコントラクトを繰り返し実行する必要もなく、ブロックチェーンネットワークにおいて軽量ノードがスマートコントラクトの実行結果の有効性を判断することを支援することができ、これにより、システムリソースを節約し、実行効率を向上させる。
図8は、本発明の一実施形態に係るブロックチェーン上のスマートコントラクトの検証装置のブロック構成図である。図8に示すように、本発明の実施形態に係るブロックチェーン上のスマートコントラクトの検証装置は、
ブロックチェーンネットワークにおける第1ノードから指定ブロックの、第1マークルツリーのルートノードと、第2マークルツリーのルートノードと、前記指定ブロックの一つ前のブロックの標識とを含むブロックヘッダ情報と、トランザクション標識とスマートコントラクトの実行結果とを含むトランザクションリストとを取得するための取得ユニット100と、
前記第1マークルツリーのルートノードと前記トランザクション標識を検証して、第1検証結果を得るための第1検証ユニット200と、
前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証して、第2検証結果を得るための第2検証ユニット300と、
前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証して、第3検証結果を得るための第3検証ユニット400と、
前記第1検証結果、前記第2検証結果および前記第3検証結果の全てが検証合格である場合に、前記スマートコントラクトの実行結果が有効であると判定するための判定ユニット500と、を備え、
前記第1マークルツリーのリーフノードは、前記指定ブロックのすべてのトランザクション標識から構成され、前記第2マークルツリーのリーフノードは、前記指定ブロックのすべてのスマートコントラクトの実行結果から構成される。
1つの実施形態において、前記第1検証ユニット200は、前記トランザクションリストのトランザクション標識を用いて第3マークルツリーを構築して、前記第3マークルツリーのルートノードを算出し、前記第3マークルツリーのルートノードと前記第1マークルツリーのルートノードが一致するか否かを比較し、一致する場合に、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となることにさらに用いられる。
1つの実施形態において、前記第2検証ユニット300は、前記トランザクションリストにおけるスマートコントラクトの実行結果を用いて第4マークルツリーを構築して、前記第4マークルツリーのルートノードを算出し、前記第4マークルツリーのルートノードと前記第2マークルツリーのルートノードが一致するか否かを比較し、一致する場合に、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果が検証合格となることにさらに用いられる。
図9は、本発明の又一実施形態に係るブロックチェーン上のスマートコントラクトの検証装置のブロック構成図である。図9に示すように、1つの実施形態において、ブロックチェーンネットワークにおける前記第1ノードと第2ノードから、前記指定ブロックのブロックヘッダ情報をそれぞれ取得し、前記第1ノードにおける前記指定ブロックのブロックヘッダ情報と前記第2ノードにおける前記指定ブロックのブロックヘッダ情報とが一致するか否かを比較し、一致する場合に、前記指定ブロックが有効であると判定し、前記指定ブロックが有効であると判定した場合に、前記指定ブロックの一つ前のブロック標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証するための第4検証ユニット600をさらに備える。
本発明の実施形態のブロックチェーン上のスマートコントラクト検証装置における各ユニットの機能は、前述の方法に関する説明を参照することができ、ここではその説明を省略する。
1つの可能な実施形態において、ブロックチェーン上のスマートコントラクトの検証装置には、ブロックチェーン上のスマートコントラクトの検証装置が前述のブロックチェーン上のスマートコントラクトの検証方法を実行することをサポートするプログラムを記憶するためのメモリと、メモリに記憶されるプログラムを実行するように構成されるプロセッサとが含まれる。前記ブロックチェーン上のスマートコントラクトの検証装置には、ブロックチェーン上のスマートコントラクトの検証装置が他の機器や通信ネットワークと通信するための通信インターフェースがさらに含まれてもよい。
図10は、本発明の又一実施形態に係るブロックチェーン上のスマートコントラクトの検証装置のブロック構成図である。図10に示すように、当該装置は、メモリ101とプロセッサ102とを備える。メモリ101には、プロセッサ102で実行可能なコンピュータプログラムが記憶され、前記プロセッサ102は、前記コンピュータプログラムを実行するとき、上記実施形態に係るブロックチェーン上のスマートコントラクトの検証方法を実現させる。メモリ101とプロセッサ102の数は、1つ又は複数であってもよい。
前記検証装置は、周辺機器と通信し、データを交換・転送するための通信インターフェース103をさらに備える。
メモリ101は、高速RAMメモリを含む可能性もあり、不揮発性メモリ(non-volatile memory)、例えば、少なくとも1つの磁気ディスクメモリをさらに含む可能性もある。
メモリ101、プロセッサ102及び通信インターフェース103が個別に実現される場合、メモリ101、プロセッサ102及び通信インターフェース103は、バスによって相互接続して相互通信を行うことができる。前記バスは、インダストリスタンダードアーキテクチャ(ISA、Industry Standard Architecture)バス、外部デバイス相互接続(PCI、Peripheral Component Interconnect)バス、又は拡張インダストリスタンダードアーキテクチャ(EISA、Extended Industry Standard Component)バス等であってもよい。前記バスは、アドレスバス、データバス、制御バス等として分けられることが可能である。表示の便宜上、図10に1本の太線のみで表示するが、バスが1つ又は1種類のみであることを意味しない。
任意選択で、具体的に実現する時、メモリ101、プロセッサ102及び通信インターフェース103が1枚のチップに統合される場合、メモリ101、プロセッサ102及び通信インターフェース103は、内部インターフェースによって、相互通信を実現することができる。
さらに、本発明の実施形態は、プロセッサによって実行されるときに、前述のブロックチェーン上のスマートコントラクトの検証方法のいずれかに記載の方法を実現するコンピュータプログラムが記憶されるコンピュータ可読記憶媒体を提供する。
本明細書において、「1つの実施形態」、「幾つかの実施形態」、「例」、「具体例」或いは「一部の例」などの用語とは、当当該実施形態或いは例で説明された具体的特徴、構成、材料或いは特点を結合して、本発明の少なくとも1つの実施形態或いは実施形態に含まれることを意味する。また、説明された具体的特徴、構成、材料或いは特点は、いずれか1つ或いは複数の実施形態または例において適切に結合することが可能である。また、矛盾しない限り、当業者は、本明細書の異なる実施形態または例、および、異なる実施形態または例における特徴を結合したり、組み合わせたりすることができる。
また、用語「第1」、「第2」とは比較的重要性を示している又は暗示しているわけではなく、単に説明のためのものであり、示される技術的特徴の数を暗示するわけでもない。そのため、「第1」、「第2」で限定される特徴は、少なくとも1つの当当該特徴を明示又は暗示的に含むことが可能である。本出願の記載の中において、「複数」の意味とは、明確的に限定される以外に、2つ又は2つ以上を意味する。
フローチャート又はその他の方式で説明された、いかなるプロセス又は方法に対する説明は、特定な論理的機能又はプロセスのステップを実現するためのコマンドのコードを実行可能な1つ又はそれ以上のモジュール、断片若しくはセグメントとして理解することが可能であり、さらに、本発明の好ましい実施形態の範囲はその他の実現を含み、示された、又は、記載の順番に従うことなく、係る機能に基づいてほぼ同時にまたは逆の順序に従って機能を実行することを含み、これは当業者が理解すべきことである。
フローチャートに示された、又はその他の方式で説明された論理及び/又はステップは、例えば、論理機能を実現させるための実行可能なコマンドのシーケンスリストとして見なされることが可能であり、コマンド実行システム、装置、又はデバイス(プロセッサのシステム、又はコマンド実行システム、装置、デバイスからコマンドを取得して実行することが可能なその他のシステムを含むコンピュータによるシステム)が使用できるように提供し、又はこれらのコマンドを組み合わせて使用するコマンド実行システム、装置、又はデバイスに使用されるために、いかなるコンピュータ読取可能媒体にも具体的に実現されることが可能である。本明細書において、「コンピュータ読取可能媒体」は、コマンド実行システム、装置、デバイス、又はこれらのコマンドを組み合わせて実行するシステム、装置又はデバイスが使用できるように提供するため、プログラムを格納、記憶、通信、伝搬又は伝送する装置であってもよい。コンピュータ読み取り可能媒体のから具体的例(非網羅的なリスト)として、1つ又は複数の布配線を含む電気接続部(電子装置)、ポータブルコンピュータディスク(磁気装置)、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去書き込み可能リード・オンリー・メモリ(EPROM又はフラッシュメモリ)、光ファイバー装置、及びポータブル読み取り専用メモリ(CDROM)を少なくとも含む。また、コンピュータ読み取り可能媒体は、そのうえで前記プログラムを印字できる紙又はその他の適切な媒体であってもよく、例えば紙又はその他の媒体に対して光学的スキャンを行い、そして編集、解釈又は必要に応じてその他の適切の方式で処理して電子的方式で前記プログラムを得、その後コンピュータメモリに記憶することができるためである。
なお、本発明の各部分は、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせによって実現されることができる。上記実施形態において、複数のステップ又は方法は、メモリに記憶された、適当なコマンド実行システムによって実行されるソフトウェア又はファームウェアによって実施されることができる。例えば、ハードウェアによって実現するとした場合、別の実施形態と同様に、データ信号に対して論理機能を実現する論理ゲート回路を有する離散論理回路、適切な混合論理ゲート回路を有する特定用途向け集積回路、プログラマブルゲートアレイ(GPA)、フィールドプログラマブルゲートアレイ(FPGA)などといった本技術分野において公知である技術のうちのいずれか1つ又はそれらの組み合わせによって実現される。
当業者は、上記の実施形態における方法に含まれるステップの全部又は一部を実現するのは、プログラムによって対応するハードウェアを指示することによって可能であることを理解することができる。前記プログラムは、コンピュータ読取可能な媒体に記憶されてもよく、当当該プログラムが実行されるとき、方法の実施形態に係るステップのうちの1つ又はそれらの組み合わせを含むことができる。
また、本発明の各実施形態における各機能ユニットは、1つの処理モジュールに統合されてよく、別個の物理的な個体であってもよく、2つ又は3つ以上のユニットが1つのモジュールに統合されてもよい。上記の統合モジュールは、ハードウェアで実現されてもよく、ソフトウェア機能モジュールで実現されてもよい。上記の統合モジュールが、ソフトウェア機能モジュールで実現され、しかも独立した製品として販売又は使用される場合、コンピュータ読取可能な記憶媒体に記憶されてもよい。前記記憶媒体は読取専用メモリ、磁気ディスク又は光ディスク等であってもよい。
上記の記載は、単なる本発明の具体的な実施形態に過ぎず、本発明の保護範囲はそれに限定されることなく、当業者が本発明に開示されている範囲内において、容易に想到し得る変形又は置換は、全て本発明の範囲内に含まれるべきである。そのため、本発明の範囲は、記載されている特許請求の範囲に準じるべきである。

Claims (11)

  1. ブロックチェーンネットワークにおける第1ノードから指定ブロックの、第1マークルツリーのルートノードと、第2マークルツリーのルートノードと、前記指定ブロックの一つ前のブロックの標識とを含むブロックヘッダ情報と、トランザクション標識とスマートコントラクトの実行結果とを含むトランザクションリストとを取得することと、
    前記第1マークルツリーのルートノードと前記トランザクション標識を検証して、第1検証結果を得ることと、
    前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証して、第2検証結果を得ることと、
    前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証して、第3検証結果を得ることと、
    前記第1検証結果、前記第2検証結果及び前記第3検証結果の全てが検証合格である場合に、前記スマートコントラクトの実行結果が有効であると判定することと、を含む、
    ことを特徴とするブロックチェーン上のスマートコントラクトの検証装置により実行されるブロックチェーン上のスマートコントラクトの検証方法。
  2. 前記第1マークルツリーのルートノードと前記トランザクション標識を検証することは、
    前記トランザクションリストにおけるトランザクション標識を用いて第3マークルツリーを構築し、前記第3マークルツリーのルートノードを算出することと、
    前記第3マークルツリーのルートノードと前記第1マークルツリーのルートノードとが一致するか否かを比較することと、
    一致する場合に、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となることと、を含む、
    ことを特徴とする請求項1に記載のブロックチェーン上のスマートコントラクトの検証方法。
  3. 前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証することは、
    前記トランザクションリストにおけるスマートコントラクトの実行結果を用いて第4マークルツリーを構築し、前記第4マークルツリーのルートノードを算出することと、
    前記第4マークルツリーのルートノードと前記第2マークルツリーのルートノードとが一致するか否かを比較することと、
    一致する場合に、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果が検証合格となることと、を含む、
    ことを特徴とする請求項1に記載のブロックチェーン上のスマートコントラクトの検証方法。
  4. 前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証する前に、
    ブロックチェーンネットワークにおける前記第1ノードおよび第2ノードから、前記指定ブロックのブロックヘッダ情報をそれぞれ取得することと、
    前記第1ノードにおける前記指定ブロックのブロックヘッダ情報と前記第2ノードにおける前記指定ブロックのブロックヘッダ情報とが一致するか否かを比較することと、
    一致する場合に、前記指定ブロックが有効であると判定することと、
    前記指定ブロックが有効であると判定した場合に、前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証することと、をさらに含む、
    ことを特徴とする請求項1乃至3のいずれか1項に記載のブロックチェーン上のスマートコントラクトの検証方法。
  5. ブロックチェーンネットワークにおける第1ノードから指定ブロックの、第1マークルツリーのルートノードと、第2マークルツリーのルートノードと、前記指定ブロックの一つ前のブロックの標識とを含むブロックヘッダ情報と、トランザクション標識とスマートコントラクトの実行結果とを含むトランザクションリストとを取得する取得ユニットと、
    前記第1マークルツリーのルートノードと前記トランザクション標識を検証して、第1検証結果を得る第1検証ユニットと、
    前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果を検証して、第2検証結果を得る第2検証ユニットと、
    前記指定ブロックの一つ前のブロックの標識が予め記憶されたブロックヘッダチェーン構造にあるか否かを検証して、第3検証結果を得る第3検証ユニットと、
    前記第1検証結果、前記第2検証結果および前記第3検証結果の全てが検証合格である場合に、前記スマートコントラクトの実行結果が有効であると判定する判定ユニットと、を備える、
    ことを特徴とするブロックチェーン上のスマートコントラクトの検証装置。
  6. 前記第1検証ユニットは、
    前記トランザクションリストのトランザクション標識を用いて第3マークルツリーを構築して、前記第3マークルツリーのルートノードを算出し、
    前記第3マークルツリーのルートノードと前記第1マークルツリーのルートノードとが一致するか否かを比較し、
    一致する場合に、前記第1マークルツリーのルートノードと前記トランザクション標識が検証合格となることにさらに用いられる、
    ことを特徴とする請求項5に記載のブロックチェーン上のスマートコントラクトの検証装置。
  7. 前記第2検証ユニットは、
    前記トランザクションリストにおけるスマートコントラクトの実行結果を用いて第4マークルツリーを構築して、前記第4マークルツリーのルートノードを算出し、
    前記第4マークルツリーのルートノードと前記第2マークルツリーのルートノードとが一致するか否かを比較し、
    一致する場合に、前記第2マークルツリーのルートノードと前記スマートコントラクトの実行結果が検証合格となることにさらに用いられる、
    ことを特徴とする請求項5に記載のブロックチェーン上のスマートコントラクトの検証装置。
  8. ブロックチェーンネットワークにおける前記第1ノードと第2ノードから、前記指定ブロックのブロックヘッダ情報をそれぞれ取得し、
    前記第1ノードにおける前記指定ブロックのブロックヘッダ情報と前記第2ノードにおける前記指定ブロックのブロックヘッダ情報とが一致するか否かを比較し、
    一致する場合に、前記指定ブロックが有効であると判定し、
    前記指定ブロックが有効であると判定した場合に、前記指定ブロックの一つ前のブロック標識が予め記憶されたブロックヘッドチェーン構造にあるか否かを検証する第4検証ユニットをさらに備える、
    ことを特徴とする請求項5乃至7のいずれか1項に記載のブロックチェーン上のスマートコントラクトの検証装置。
  9. 1つ又は複数のプロセッサと、
    1つ又は複数のプログラムを記憶するメモリと、を備え、
    前記1つ又は複数のプロセッサは、前記1つ又は複数のプログラムを実行する場合に、請求項1乃至4のいずれか1項に記載のブロックチェーン上のスマートコントラクトの検証方法を実行させる、
    ことを特徴とするブロックチェーン上のスマートコントラクトの検証装置。
  10. コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、
    当該コンピュータプログラムがプロセッサにより実行される場合に、請求項1乃至4のいずれか1項に記載のブロックチェーン上のスマートコントラクトの検証方法を実行させる、
    ことを特徴とするコンピュータ可読記憶媒体。
  11. コンピュータにおいて、プロセッサにより実行される場合、請求項1乃至4のいずれか1項に記載のブロックチェーン上のスマートコントラクトの検証方法を実現することを特徴とするプログラム。
JP2020544505A 2018-09-20 2019-06-17 ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム Active JP7018517B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811101341.2 2018-09-20
CN201811101341.2A CN109345388B (zh) 2018-09-20 2018-09-20 区块链智能合约验证方法、装置及存储介质
PCT/CN2019/091475 WO2020057196A1 (zh) 2018-09-20 2019-06-17 区块链智能合约验证方法、装置及存储介质

Publications (2)

Publication Number Publication Date
JP2021515311A JP2021515311A (ja) 2021-06-17
JP7018517B2 true JP7018517B2 (ja) 2022-02-10

Family

ID=65305888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020544505A Active JP7018517B2 (ja) 2018-09-20 2019-06-17 ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム

Country Status (6)

Country Link
US (1) US20200412526A1 (ja)
EP (1) EP3678346B1 (ja)
JP (1) JP7018517B2 (ja)
KR (1) KR102431459B1 (ja)
CN (1) CN109345388B (ja)
WO (1) WO2020057196A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
EP3613203B1 (en) * 2019-03-04 2023-06-07 Advanced New Technologies Co., Ltd. Methods and devices for performing off-chain testing on smart contract
CN111695991B (zh) * 2019-03-14 2024-02-06 北京沃东天骏信息技术有限公司 基于区块的合约处理方法、装置、区块链节点及存储介质
CN110335131B (zh) * 2019-06-04 2023-12-05 创新先进技术有限公司 基于树的相似度匹配的金融风险控制方法及装置
CN110336677B (zh) * 2019-07-15 2022-02-11 杭州复杂美科技有限公司 区块打包、广播方法和系统、设备及存储介质
CN110365768B (zh) * 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备
CN111368003B (zh) * 2020-03-06 2020-10-16 安徽中科智链信息科技有限公司 一种多链锚定数据的管理方法
CN111159750B (zh) * 2020-04-07 2021-02-05 南京邮电大学 基于联盟链的汽车维修数据存储方法
CN111432027B (zh) * 2020-04-14 2023-04-14 杭州复杂美科技有限公司 平行链区块同步方法、设备和存储介质
CN111523896B (zh) * 2020-05-06 2023-05-30 杭州复杂美科技有限公司 防攻击方法、设备和存储介质
CN111884807B (zh) * 2020-07-13 2021-10-26 腾讯科技(深圳)有限公司 基于区块链的物品预约方法、装置、设备以及介质
CN111915301B (zh) * 2020-08-05 2022-08-26 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、电子设备及可读介质
CN112037055B (zh) * 2020-08-17 2023-05-05 成都质数斯达克科技有限公司 交易处理方法、装置、电子设备及可读存储介质
CN114175011A (zh) * 2020-10-27 2022-03-11 支付宝(杭州)信息技术有限公司 具有高效世界状态数据结构的区块链系统
CN112749969B (zh) * 2020-11-16 2022-08-09 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN112769894B (zh) * 2020-12-17 2022-05-17 国网浙江省电力有限公司信息通信分公司 一种基于区块链Merkle树验证的设备认证方法
CN112948350B (zh) * 2021-02-02 2023-08-01 中央财经大学 一种基于mpt验证的分布式账本模型冷数据归档及迁移存储方法
CN112559637B (zh) * 2021-02-19 2021-06-18 腾讯科技(深圳)有限公司 基于分布式存储的数据处理方法、装置、设备以及介质
CN113282798B (zh) * 2021-05-07 2022-03-25 广州中国科学院计算机网络信息中心 一种基于梅克尔树的标识资源版本验证方法及系统
CN113592645B (zh) * 2021-07-02 2023-11-14 中国人民银行数字货币研究所 数据验证的方法和装置
CN113259135B (zh) * 2021-07-06 2022-01-21 常州市建筑科学研究院集团股份有限公司 用于检测数据防篡改的轻量级区块链通信认证装置及其方法
CN113254163B (zh) * 2021-07-06 2021-11-09 支付宝(杭州)信息技术有限公司 区块链数据的处理方法及装置
CN113542396B (zh) * 2021-07-13 2024-03-08 华润数字科技有限公司 一种区块链存储及通讯方法、系统及其相关组件
CN113657900B (zh) * 2021-07-13 2024-03-22 中国人民银行数字货币研究所 一种跨链交易验证方法、系统以及跨链交易系统
CN113362068B (zh) * 2021-08-10 2022-03-29 北京连琪科技有限公司 一种轻节点验证区块链状态转移的方法
CN113626532B (zh) * 2021-09-03 2023-11-24 杭州复杂美科技有限公司 非法节点识别方法、防作弊方法、计算机设备和存储介质
CN113704271A (zh) * 2021-09-03 2021-11-26 杭州复杂美科技有限公司 默克尔树生成方法、非法节点识别方法、设备和存储介质
CN114153849A (zh) * 2021-12-02 2022-03-08 深圳前海微众银行股份有限公司 一种区块链的数据生成及验证方法及装置
CN114401091B (zh) * 2021-12-16 2023-10-24 北京航空航天大学 基于区块链的设备跨域认证管理方法及装置
WO2023148042A1 (en) * 2022-02-07 2023-08-10 Nchain Licensing Ag Blockchain based privacy enhanced outsourced data storage
GB2615752B (en) * 2022-02-15 2024-04-24 Nchain Licensing Ag Attesting to membership of a set
CN116028990B (zh) * 2023-03-30 2023-07-18 中国科学技术大学 一种基于区块链的防篡改隐私保护日志审计方法
CN116308368B (zh) * 2023-05-24 2023-07-18 国网区块链科技(北京)有限公司 一种中继区块链跨链数据安全存储方法、装置及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017189027A1 (en) 2016-04-29 2017-11-02 Digital Asset Holdings Digital asset modeling
WO2018137564A1 (zh) 2017-01-26 2018-08-02 阿里巴巴集团控股有限公司 一种业务处理方法及装置
WO2018149345A1 (zh) 2017-02-17 2018-08-23 阿里巴巴集团控股有限公司 一种数据处理方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145768B (zh) 2016-03-01 2021-02-12 华为技术有限公司 版权管理方法和系统
US10447478B2 (en) * 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
WO2018026727A1 (en) * 2016-08-01 2018-02-08 Cryptowerk Corp. Computer-implemented method and system of tamper-evident recording of a plurality of service data items
KR101849917B1 (ko) * 2016-10-13 2018-05-31 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
CN107077674B (zh) 2016-12-29 2021-06-11 达闼机器人有限公司 交易验证处理方法、装置及节点设备
CN107196900B (zh) * 2017-03-24 2020-04-24 创新先进技术有限公司 一种共识校验的方法及装置
CN106899412A (zh) 2017-03-30 2017-06-27 北京链银博科技有限责任公司 一种区块链隐私保护方法、装置及系统
JP7201622B2 (ja) * 2017-05-26 2023-01-10 エヌチェーン ライセンシング アーゲー スクリプトに基づくブロックチェーン相互作用
US11055703B2 (en) * 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
US11281644B2 (en) * 2017-07-28 2022-03-22 Hitachi, Ltd. Blockchain logging of data from multiple systems
US11416942B1 (en) * 2017-09-06 2022-08-16 State Farm Mutual Automobile Insurance Company Using a distributed ledger to determine fault in subrogation
US20190253256A1 (en) * 2018-02-13 2019-08-15 Texas Precious Metals LLC Tracking and verifying authenticity of an asset via a distributed ledger
US10904009B2 (en) * 2018-05-30 2021-01-26 International Business Machines Corporation Blockchain implementing delta storage
US11334439B2 (en) * 2018-08-29 2022-05-17 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017189027A1 (en) 2016-04-29 2017-11-02 Digital Asset Holdings Digital asset modeling
WO2018137564A1 (zh) 2017-01-26 2018-08-02 阿里巴巴集团控股有限公司 一种业务处理方法及装置
WO2018149345A1 (zh) 2017-02-17 2018-08-23 阿里巴巴集团控股有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
EP3678346A4 (en) 2021-09-29
CN109345388B (zh) 2020-09-08
EP3678346A1 (en) 2020-07-08
CN109345388A (zh) 2019-02-15
KR102431459B1 (ko) 2022-08-11
WO2020057196A1 (zh) 2020-03-26
JP2021515311A (ja) 2021-06-17
EP3678346B1 (en) 2022-09-07
KR20200095540A (ko) 2020-08-10
US20200412526A1 (en) 2020-12-31

Similar Documents

Publication Publication Date Title
JP7018517B2 (ja) ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム
CN109034809B (zh) 区块链的生成方法、装置、区块链节点及存储介质
KR102460055B1 (ko) 블록체인-기반 데이터 검증 방법 및 장치, 및 전자 디바이스
US11973869B2 (en) Maintaining blocks of a blockchain in a partitioned blockchain network
CN111901121B (zh) 跨区块链的认证方法及装置、电子设备
CN108961052B (zh) 区块链数据的验证方法、存储方法、装置、设备和介质
CN108389129B (zh) 基于区块链的交易执行方法及装置、电子设备
CN109542888B (zh) 区块链的数据修改和同步方法、装置、设备及存储介质
CN110011788B (zh) 一种基于区块链的数据处理方法、系统及相关设备
US20210049617A1 (en) Blockchain-based data verification method, apparatus, and electronic device
CN106934619B (zh) 一种交易记录的方法及系统
EP3779760B1 (en) Blockchain-based data processing method and apparatus, and electronic device
WO2020114385A1 (zh) 一种基于区块链网络的可信节点确定方法和装置
WO2020220251A1 (zh) 区块链系统数据处理方法和区块的生成方法
CN109088902B (zh) 注册方法及装置、认证方法及装置
CN110287696A (zh) 一种反弹shell进程的检测方法、装置和设备
CN109189859A (zh) 区块链网络中的节点初始化方法和装置
CN105653579A (zh) 一种对分布式事务进行测试的方法和装置
CN110795763A (zh) 电子证照处理方法、查询方法、装置、设备、平台和介质
CN110597922A (zh) 数据处理方法、装置、终端及存储介质
CN111782551A (zh) 针对区块链项目的测试方法、装置及计算机设备
CN113505138A (zh) 区块链系统中状态证明及执行区块的方法及装置
CN116938523A (zh) 区块链系统、运行方法、电子设备和存储介质
CN111143196A (zh) 数据库的测试方法以及装置
CN116915791A (zh) 区块链交易冲突检测的方法、排序节点及背书节点

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220131

R150 Certificate of patent or registration of utility model

Ref document number: 7018517

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150