JP2020502617A - ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法 - Google Patents

ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法 Download PDF

Info

Publication number
JP2020502617A
JP2020502617A JP2019520856A JP2019520856A JP2020502617A JP 2020502617 A JP2020502617 A JP 2020502617A JP 2019520856 A JP2019520856 A JP 2019520856A JP 2019520856 A JP2019520856 A JP 2019520856A JP 2020502617 A JP2020502617 A JP 2020502617A
Authority
JP
Japan
Prior art keywords
transaction
smart contract
protection condition
current state
blockchain
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.)
Granted
Application number
JP2019520856A
Other languages
English (en)
Other versions
JP6864088B2 (ja
Inventor
チョンシアオ ヤオ
チョンシアオ ヤオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020502617A publication Critical patent/JP2020502617A/ja
Application granted granted Critical
Publication of JP6864088B2 publication Critical patent/JP6864088B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • 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
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders
    • G06Q30/0637Approvals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/388Payment protocols; Details thereof using mutual authentication without cards, e.g. challenge-response
    • 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/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

スマートコントラクトの安全性を向上するための、コンピュータにより実現される方法は、共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、第2取引を実行して、スマートコントラクトの現在の状態を更新することと、スマートコントラクトの更新された現在の状態が、保護条件を満たすかどうかを判定することと、更新された現在の状態が保護条件を満たすと判定することに応答して、第1取引を実行して、ブロックチェーンに追加するために、第2および第1取引をデータブロックに記録することと、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を実行することなく、ブロックチェーンに追加するために、2取引を別のデータブロックに記録すること、を備えている。【選択図】図4

Description

この本開示は、全体的にはコンピュータ技術に関し、特には、ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法に関する。
ブロックチェーン技術は、非中央集中型の様式のデータストレージを約束する。データは、互いの間の優先関係を有する一連のデータブロックにおいて格納でき、ブロックのチェーンを形成する。ブロックのチェーンは、ノードのネットワークで維持され、データをブロックに格納する前に、データを有効にする責任もある。ノードで採用される暗号化およびコンセンサス技術により、ブロックチェーンに格納されたデータは、ほとんど変更できない。このため、ノードのネットワークは、ブロックチェーンコンセンサスネットワークとも称される。近年、ブロックチェーン技術は、スマートコントラクトの実行のためのフレームワークを提供するまで発展してきた。スマートコントラクトは、ユーザにより行われるビジネス論理を達成するために、ブロックチェーンコンセンサスネットワークにおいて動作できる1つのコードである。スマートコントラクトは、デジタル形式で定義されるプロミスのセットを備えることができ、コードにおいて詳細に記載された適宜な契約を有する当事者間の同意を備えることができる。スマートコントラクトは、将来の署名またはトリガイベントにより自動的に確定できる。しかし、ブロックチェーンスマートコントラクトは、不正な資産移転のような、オンライン上の悪意のある攻撃の影響を受け易い。このため、少なくともこれらのリスクを削減するために、スマートコントラクトの安全性を向上することは、絶対に必要なことである。
本開示の種々の実施形態は、ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステム、方法、および非一時的コンピュータ読取り可能媒体を含むことが可能である。1つの態様によれば、スマートコントラクトの安全性を向上するためのシステムは、1つ以上のプロセッサと、該1つ以上のプロセッサに結合され、該1つ以上のプロセッサにより実行可能であり、システムに、共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、第2取引を実行して、スマートコントラクトの現在の状態を更新することと、スマートコントラクトの更新された現在の状態が、保護条件を満たすかどうかを判定することと、更新された現在の状態が保護条件を満たすと判定することに応答して、第1取引を実行して、ブロックチェーンに追加するために、第2および第1取引をデータブロックに記録することと、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を実行することなく、ブロックチェーンに追加するために、第2取引を別のデータブロックに記録すること、を備える動作を行わせる命令で構成されている1つ以上の非一時的コンピュータ読取り可能メモリを備えている。
幾つかの実施形態においては、システムは更に、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を提出したコンピューティング装置に実行例外を返すことを実行させられる。
幾つかの実施形態においては、現在の状態は、スマートコントラクトの取引項目の現在の価格を備え、保護条件は、取引項目の価格範囲、量範囲、または時間範囲と関連付けられている。
幾つかの実施形態においては、第1取引は、価格範囲における取引項目の購入注文と関連付けられおり、第2取引は、取引項目を売る販売注文と関連付けられている。
幾つかの実施形態においては、保護条件は、第1取引に基づいて自動的に生成される。
幾つかの実施形態においては、保護条件は、第1取引を提出したコンピューティング装置により提出される。
幾つかの実施形態においては、第1取引と第2取引を得ることは、第1取引と第2取引をプールデータベースから得ることを備えている。
幾つかの実施形態においては、複数のノードのそれぞれは、ブロックチェーンのコピーを台帳として格納するためのメモリを備え、ノードは、新しいデータブロック、または別の新しいデータブロックがブロックチェーンに追加されたときに台帳を更新するように構成されている。
別の態様によれば、スマートコントラクトの安全性を向上するための、コンピュータにより実現される方法は、共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、第2取引を実行して、スマートコントラクトの現在の状態を更新することと、スマートコントラクトの更新された現在の状態が、保護条件を満たすかどうかを判定することと、更新された現在の状態が保護条件を満たすと判定することに応答して、第1取引を実行して、ブロックチェーンに追加するために、第2および第1取引をデータブロックに記録することと、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を実行することなく、ブロックチェーンに追加するために、第2取引を別のデータブロックに記録すること、を備えている。
別の態様によれば、非一時的コンピュータ読取り可能格納媒体は、1つ以上のプロセッサにより実行可能であり、該1つ以上のプロセッサに、共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、第2取引を実行して、スマートコントラクトの現在の状態を更新することと、スマートコントラクトの更新された現在の状態が、保護条件を満たすかどうかを判定することと、更新された現在の状態が保護条件を満たすと判定することに応答して、第1取引を実行して、ブロックチェーンに追加するために、第2および第1取引をデータブロックに記録することと、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を実行することなく、ブロックチェーンに追加するために、第2取引を別のデータブロックに記録するとこと、を備える動作を行わせる命令で構成されている。
動作の方法、構造の関連する要素の機能、および製造の部品と経済性の組み合わせと共に、ここにおいて開示されるシステム、方法、および非一時的コンピュータ読取り可能媒体のこれらの、および他の特徴は、下記の記述および付随する請求項を、すべてがこの明細書の一部を形成し、類似する参照番号は、種々の図面において対応する部品を示す付随する図面を参照して考察することで、より明確になろう。しかし、図面は、例示と記述のみのための目的であり、発明の制限の定義とは意図されていないということは、明確に理解されるべきである。
本技術の種々の実施形態のある特徴が、添付されている請求項における特殊性で記述される。技術の特徴および利点のより良好な理解は、発明の原理が利用されている例示としての実施形態を記述している下記の詳細な記述と、付随する図面を参照することにより得られよう。
種々の実施形態に係る、例としてのブロックチェーンを例示している。 種々の実施形態に係る、スマートコントラクトの安全性を向上するための、例としてのコンピューティング環境を例示している。 種々の実施形態に係る、例としてのプールデータベースを例示している。 種々の実施形態に係る、例としてのスマートコントラクト実行モデルを例示している。 種々の実施形態に係る、スマートコントラクトの安全性を向上するための、例としての方法のフローチャートを例示している。 種々の実施形態に係る、スマートコントラクトの安全性を向上するための、例としての方法のフローチャートを例示している。 ここにおいて記述される実施形態の何れをも実行できる、例としてのコンピュータシステムのブロック図を例示している。
ここで、付随する図面に例示されている、例としての実施形態を詳細に参照する。下記の記述は、異なる図面における同じ番号は、他に表わされていない限り、同じまたは類似の要素を表わしている、付随する図面を参照する。本発明と整合性のある例としての実施形態の下記の記述において記述される実現形態は、発明と整合性のあるすべての実現形態を表わしてはいない。そうではなく、それらの実現形態は、発明に関連する態様と整合性のあるシステムと方法の例に過ぎない。
スマートコントラクトは、プロセスまたはワークフローについての同意を含むことができ、当事者により順守されるべき条項と義務を記述することができる。動作において、イベントにより駆動される状態マシンを、スマートコントラクトの条項を調べるために使用できる。当事者は、署名および他の取消不可のデータを共有の台帳に記録できる。取引は、スマートコントラクトを呼び出して実行するために、ユーザにより使用できる。取引とは、ユーザ間の、または、ユーザと金融実体との間の任意のコミュニケーションであるということができる。例えば、取引は、品物またはサービスの購入または販売、品物またはサービスの提供または返却、支払取引、クレジット取引、または他の類似の相互対話ということができる。取引はまた、「取引要求」、「商取引」または「売買」と称することもできる。
幾つかの実施形態においては、スマートコントラクトは、イーサリアム(Ethereum)環境において実現され、展開され、および実行されるコントラクトである。スマートコントラクトは、法的契約のデジタル化である。スマートコントラクトは、イーサリアム仮想マシン内、または種々のブロックチェーンノード内で展開され、格納され、および実行される。スマートコントラクトはデータを格納可能である。格納されたデータは、現実世界の契約に対する論理を実現するために必要な情報、事実、関連、残高、および任意の別の情報を記録するために使用可能である。スマートコントラクトは、オブジェクト指向クラスに類似してよい。スマートコントラクトは、オブジェクト指向オブジェクトのような別のスマートコントラクトを呼び出し可能であり、別のクラスのオブジェクトを作成および使用可能である。
ブロックチェーン技術は、スマートコントラクトにおける取引サービスのような、多様なサービスの最適化を達成するために使用されてきた。図1は、種々の実施形態に係る、例としてのブロックチェーンを例示している。図1に示されているように、ブロックチェーン100は、複数のデータブロック102を含むことができる。各ブロックは、暗号ハッシュを介して、前のブロックにリンクできる。例えば、ブロック2は、ブロック1のハッシュ106を介してブロック1にリンクされ、ブロックnは、ブロックn−1の別のハッシュを介して、ブロックn−1にリンクされる。各ブロック102は更に、データ構造を含んでいる。データ構造は、例えば、口座の残高、支払領収書のような、スマートコントラクトの実行結果に対応するデータ104を含むことができる。新しいデータが提出されて有効にされると、新しいデータを含む追加的ブロックを生成して、前のブロックのハッシュを含むことにより、ブロックチェーン100の最後のブロックに付け加えることができる。
幾つかの実施形態においては、未確認取引の取引要求を受信すると、ブロックチェーンノードは、ブロックチェーンネットワーク(例えば、1つ以上のノード)が、コンセンサスにより未確認取引を検証し、取引をブロックチェーンに詰め込む前に、取引要求を一時的にメモリプール(図2Bを参照して、より詳細に下記に記述される)に格納する。ある時点において、メモリプールは、多数の未確認取引を格納できる。ブロックチェーンコンセンサスネットワークが、取引をブロックチェーンに詰め込む前は、メモリプールにおける未確認取引を実行する順序は決められていない。取引の順序は、スマートコントラクトの実行の最終結果に影響し、それは取引順序依存性(TOD)と称される。
TOD問題は、本開示の状況において更に記述される。幾つかの実施形態においては、ブロックチェーンにおけるデータブロックは、スマートコントラクトに関連する取引のセットを含むことができる。スマートコントラクトの状態は、ブロックチェーンの各更新の間、数回更新できる。1つの例においては、ブロックチェーンは現在は状態σであり、ブロックチェーンに追加される新しいデータブロックは、それぞれ同じスマートコントラクトを呼び出す(T、T)で表わされる2つの取引を含んでいる。2つの取引の決められていない実行の順序のため、スマートコントラクトの正確な状態は、2つの取引それぞれが、スマートコントラクトの実行を行使するときは判定できない。例えば、取引Tがスマートコントラクトを呼び出すとき、コントラクトが状態σであるのかどうか、または、コントラクトは、取引Tの呼び出しに基づいて実行されたかどうかは判定できず、このため、コントラクトの状態は
に変更されている。言い換えれば、取引Tがスマートコントラクトを呼び出すとき、スマートコントラクトは状態σ、または状態σ’であることが可能である。同様に、取引Tが同じスマートコントラクトを呼び出すとき、スマートコントラクトは状態σであることが可能であり、またはコントラクトは、取引Tの呼び出しに従って実行されており、状態遷移
を完了している。従って、2つの取引により呼び出されるときのスマートコントラクトの状態は、取引TとTの実行の順序に依存する。
取引がコントラクトを行使しようと意図したときのスマートコントラクトの本来の状態と、取引による呼び出しのために、対応する実行が起きるときのスマートコントラクトの実際の状態の間には差があり得る。ブロックチェーンノード(例えば、ブロックチェーンマイナ)は、これらの取引の実行の順序を決めることができ、そのため、ブロックの更新の順序を決めることができる。言い換えれば、スマートコントラクトの最終状態は、ブロックチェーンノードによる呼び出し順序に依存し得る。これは、TODと称される。
TODは、スマートコントラクトの実行に対する安全性のリスクを引き起こし得る。第1に、スマートコントラクトの同時呼び出しがあった場合、コントラクトの呼び出しが悪意のあるものではない場合であっても、呼び出しは互いに干渉し合い、取引を通してコントラクトを呼び出すユーザに予期せぬ結果をもたらし得る。第2に、悪意のあるユーザは、スマートコントラクトのTODの利点を、不当な利益を得て、更には、他のユーザの資産を盗むために使用可能である。例えば、買い手が、価格の引き上げの前の本来の価格での購入を期待して購入取引を提出するときと同じ期間に、売り手は価格を引き上げるための販売取引を提出できる。販売取引と購入取引が、ブロックチェーンの同じブロックに追加されるというこの状況においては、販売取引が、購入取引の前に実行された場合、買い手は、引き上げられた価格を支払うという結果になり得る。
イーサリアムの状況においては、バッチオークションおよびプレサブミッション(事前提出)のような幾つかの方法が、このTOD問題に対処するために使用されてきた。バッチオークションの解決策はTOD問題を解決でき、高い頻度の売買を防止できるが、単一取引の実行効率が犠牲となる。1つの取引の失敗は、すべての提出された取引の失敗に繋がる。取引の公式な実行の前の取引のプレサブミッションは、TODのリスクを回避できる。しかし、プレサブミッションの解決策は、両方の当事者が、実行の前に結果についてのコンセンサスに到達することが要求され、そのため、実行効率を低下させる。この両者の解決策は、TOD問題を根本的には解決しない。
本方法よびシステムは、TOD問題を少なくとも軽減するための技術的解決策を提供する。開示されるタイプの動作は、コンピュータシステムに必然的に依存し、コンピュータの時代の前には存在しなかった技術を表わしている。開示される方法およびシステムはまた、ブロックチェーンスマートコントラクトを実行する安全性を高めることにより、コンピュータの機能性も向上させる。スマートコントラクトの取引が、ブロックチェーンマイナにより任意の順序で実現されたときでも、本システムおよび方法は、スマートコントラクトの取引の呼び出しが、予期される結果または実行例外を返すことを可能にする。予期せぬ結果は防止可能である。例えば、ユーザ(買い手のような)が、ある価格で製品を購入する要求をする取引を提出したとき、スマートコントラクトを呼び出す購入取引の結果は、要求された価格での品物の購入を達成することであり、または、別の取引の実現により、スマートコントラクトにおいて価格が変更された場合は、失敗を返すことであり得る。このため、買い手により予期せぬ変更された価格では、買い手の取引は実現できない。従って、売り手側からの詐欺的な取引、または取引の不正な操作により実現される、資産の不正な転送は回避可能である。
図2Aは、例としてのコンピューティング環境、例えば、種々の実施形態に係る、ブロックチェーン上でスマートコントラクトを実行するためのブロックチェーンネットワーク200を例示している。図2Aに示されるように、ブロックチェーンネットワーク200は、複数のノード202と、プールデータベース230と、1つ以上のユーザコンピューティング装置240を含むことができ、これらは、1つ以上のネットワークを通して、互いに通信できる。例としてのネットワーク220(例えば、インターネットなどを介しての有線または無線接続)は、1つ以上の通信プロトコル、例えば、セルラー、WiFi、および他の通信プロトコルを使用できる。ネットワーク220は、ピアツーピアおよび/またはクライアント/サーバモデルに基づくことができる。幾つかの実施形態においては、複数のノード202は、それぞれが1つ以上のプロセッサ204と、該1つ以上のプロセッサ204に結合されている1つ以上のメモリ206(例えば、命令を格納する、1つ以上の非一時的コンピュータ読取り可能格納媒体)を含んでいるコンピューティング装置を備えることができる。ノード202は、スマートコントラクトの安全性を向上するための、例としてのシステムであることができる。1つ以上のメモリは、1つ以上のプロセッサにより実行可能であり、システム(例えば、1つ以上のプロセッサ)に、ここにおいて記述される動作を実行させる命令で構成できる。幾つかの実施形態においては、プロセッサ204は、部分的または全体を、1つ以上の論理回路として実現できる。幾つかの実施形態においては、ノード202とユーザコンピューティング装置240は、他のコンピューティングリソースを含むことができ、および/または、他のコンピューティングリソースへのアクセス(例えば、1つ以上の接続/ネットワークを介して)を有することができる。
幾つかの実施形態においては、ノード202は、スマートコントラクト実行エンジン(例えば、イーサリアム仮想マシン)含むことができる。スマートコントラクト実行エンジンは、メモリ206上に格納され、プロセッサ204により実行可能な命令またはプログラムコードを含むことが可能である。スマートコントラクト実行エンジンがプロセッサ204により実行されると、スマートコントラクト実行エンジンは、スマートコントラクトを実行するためにスマートコントラクトのパラメータを適用する。幾つかの実施形態においては、ユーザコンピューティング装置240は、プロセッサによりユーザコンピューティング装置240上で実行されると、ユーザコンピューティング装置240に、ユーザコンピューティング装置240上で呼び出しインタフェースを作らせる命令またはプログラムコードを格納できる。呼び出しインタフェースは、ユーザが、取引要求を実現するために、スマートコントラクトを呼び出すことを可能にするように構成されている。呼び出しインタフェースは、ユーザが、ユーザにより提出された取引と共に、保護条件(例えば、品物の価格条件)を入力することを可能にするように構成できる。スマートコントラクト実行エンジンは、ユーザ入力による取引と共に提出された保護条件を、スマートコントラクトの状態が満たしているかどうかを判定するように構成できる。
幾つかの実施形態においては、プールデータベース230は、複数のノード202が分散的な様式でアクセス可能であることができる。例えば、プールデータベース230はそれぞれ、複数のノード202のメモリ206に格納できる。図2Bを参照すると、種々の実施形態に係る、例としてのプールデータベース230が例示されている。プールデータベース230は、ユーザにより操作される1つ以上のユーザコンピューティング装置240により提出される複数の取引を格納できる。
図2Aに戻って参照すると、幾つかの実施形態においては、ブロックチェーン100は、複数のノード202上で、非中央集中型の様式で格納されている。幾つかの実施形態においては、ノード202の幾つかは、コンセンサスを通して受信した取引を有効にでき、有効にされた取引を、他のノード202に伝搬できる。従ってノード202は、有効にされた取引に従って、台帳208を更新できる。ノード202は、ネットワーク220を介して互いに通信でき、台帳208に関連するデータの送受信ができる。台帳208は、有効にされ、ブロックチェーン100に追加されたデータブロック102を含んでいる。新しいデータブロックが台帳208に追加されると、ノード202は、新しいデータブロックを、ネットワーク220を介して通信または共有できる。ノード202のメモリ206は、ブロックチェーン100の台帳208の少なくとも一部分を格納できる。
幾つかの実施形態においては、ノード202の幾つかは、何れの取引をデータブロック102に含むかを選択するコンセンサスノード(例えば、ブロックチェーンマイナ)であることができ、そうすることにおいて、ノード202は、取引の順序、つまり、何れの取引がより早く実行され、何れの取引がより遅く実現されるかを設定する。例えば、ユーザにより操作されるユーザコンピューティング装置240が取引要求を提出すると、取引は、一時的にプールデータベース230に格納できる。ノード202(例えば、マイナノード)は、取引を実行する時間を選択できる。取引の結果は、ノード202が実行すると決める相対的順序またはタイミングに依存し得る。簡潔性且つ簡明性のために、本開示は、ノード202の単一形式を使用する。通常の技量を有する当業者であれば、ブロックチェーンが複数のノード202を有することができ、1つ以上のノード202を、1つの取引の処理に関わらせることができるということを認識すべきである。ノード202の単一形式は、1つ以上のノードを表わすことができる。
ノード202に対する代替として、専用イーサリアム仮想マシン(例えば、1つ以上のコンピュータまたはサーバに設置されている)は、ここにおいて記述される種々のステップを実行可能である。イーサリアム仮想マシンは、1つ以上のプロセッサと、該1つ以上のプロセッサに結合され、該1つ以上のプロセッサにより実行可能であり、イーサリアム仮想マシンに、ここにおいて記述される動作を行わせる命令で構成されている1つ以上の非一時的コンピュータ読取り可能メモリを備えることができる。または、他のタイプの仮想マシンまたはソフトウェアを、イーサリアム仮想マシンの代わりに使用できる。
幾つかの実施形態においては、ノード202は、ユーザコンピューティング装置240を通して、ユーザからの取引を受信できる。ノード202はまた、ユーザからの取引と共に、保護条件も受信できる。幾つかの実施形態においては、ユーザコンピューティング装置240の呼び出しインタフェースはユーザに、保護条件をユーザの取引に追加するように指示できる。または、ノード202は、ユーザにより提出された取引の内容に基づいて、保護条件を生成できる。保護条件は、品物またはサービスの価格、品物またはサービスの量、品物の出荷時またはサービスの納品時などであることができる。幾つかの実施形態においては、提出された取引は、グループにおける実行のために、プールデータベース230に格納される。保護条件と関連付けられている取引は、スマートコントラクトを呼び出すことを含むことができる。例えば、ユーザは、スマートコントラクトを呼び出す取引を提出した買い手であり、スマートコントラクトは、品物10個を1ドルの価格で買うことを要求する。取引と関連付けられている保護条件は、品物の価格が1ドル(または、1ドル未満のような範囲)であり、保護条件が満たされないときは、取引は実現できない。
保護条件は、TODによる予期せぬ結果を回避するために取引に追加できる。保護条件はまた、実行条件、実行保護条件、または条件とも称することができる。幾つかの実施形態においては、保護条件に対するスマートコントラクトの状態を確認することで、ノード202は、予期される結果を返し、または実行の失敗を返し、予期せぬ結果、例えば、品物またはサービスを、予期せぬ価格で購入するということを回避できるスマートコントラクトを呼び出す取引を実現できる。言い換えれば、保護条件はユーザが、予期せぬ取引、例えば、価格が引き上げられた取引に巻き込まれることから守るために定義できる。
幾つかの実施形態においては、ノード202は、スマートコントラクトの現在の状態を判定できる。例えば、スマートコントラクトの状態は、ブロックチェーンのワールド状態とも呼ぶことができる。ブロックチェーンのワールド状態は、ブロックチェーン上で実行されたすべての取引に関しての最も更新された状態を反映できる。例えば、取引のセットが実現されるたびに、ブロックチェーンのワールド状態は、実現を反映するために更新できる。ノード202は、保護条件およびスマートコントラクトの現在の状態に基づいて取引を実現できる。取引の実現の結果に基づいて、ノード202は、スマートコントラクトの現在の状態を、別の状態(現在の状態と同じであっても、異なっていてもよい)に更新できる。保護条件およびスマートコントラクトの現在の状態に基づく取引の実現は、多数の後続のシナリオを含むことができる。
幾つかの実施形態においては、ノード202は、スマートコントラクトの現在の状態σにおいて、取引保護条件c(例えば、価格は1ドル)が満たされているかどうかを、取引Tを実行する前に判定できる。スマートコントラクトの現在の状態σにおいて、保護条件cが満たされていない場合
取引Tは、下記の式(1)に示されているように破棄できる。上記の例においては、スマートコントラクトの現在の状態σにおいて、品物の価格が1ドルでない場合(例えば、先行する取引の実行により価格が2ドルに引き上げられている)は、条件cは満たされておらず、この取引は廃棄できる。式(1)はまた、規則TX_STALEとも称され、
ここにおいて、TXとTは、提出された取引を表わし、cは取引TXまたはTの保護条件を表わし、σは、ブロックチェーンのワールド状態を表わし、
は変換を示している。幾つかの実施形態においては、取引において指定された保護条件がない場合は、取引に対して保護条件は必要ないと判断できる。
幾つかの実施形態においては、取引により呼び出されるスマートコントラクトの現在の状態σにおいて、取引の保護条件cが満たされている場合(σ∈c)は、ノード202は、スマートコントラクトの残高を値vだけ更新できる。例えば、ノード202は、値vを残高に追加、または残高から差し引くことができる。値vは、取引の内容に基づいて決められる値であってよい。幾つかの実施形態においては、スマートコントラクトは、ブロックチェーンネットワーク200、例えば、プールデータベース230または1つ以上のノード202に格納されている在庫目録と関連付けることができる。在庫目録は、取引の項目の数、それらの価格、およびそれらの項目の他の関連する情報を格納できる。スマートコントラクトの残高は、これらの項目の1つの数ということができる。このため、スマートコントラクトの現在の状態が取引の条件を満たすときは、ノード202は、スマートコントラクトの残高(例えば、在庫目録に記載されている項目数)を更新して、取引により購入または売却される項目の数を一時的に保有できる。上記の例においては、スマートコントラクトの現在の状態σにおいて、品物の価格が1ドルの場合、取引の保護条件cは満たされ、ノード202は、購入される品物10個を残高から差し引くことにより、スマートコントラクトの残高を更新できる。
別の例においては、売り手が、スマートコントラクトのもとで、品物(例えば、品物15個)を売る取引を提出する場合、スマートコントラクトの現在の状態が売り手の取引と関連付けられている保護条件を満たす(例えば、契約価格が、取引の売却価格と一致している)場合は、ノード202は、スマートコントラクトの残高を、売却される品物の数に基づいて、品物15個をスマートコントラクトの残高に加えることにより更新できる。幾つかの実施形態においては、ノード202はまた、売り手または買い手の残高も更新できる。例えば、ノード202は、買い手の残高に、購入される品物の数を加えることができ、売り手の残高から、売却される品物の数を削減できる。
幾つかの実施形態においては、スマートコントラクトの残高の更新が成功すると、ノード202は、スマートコントラクトの現在の状態σを、過渡的状態σ’に変更できる。例えば、ブロックチェーンのワールド状態は、状態σから過渡的状態σ’に変更できる。スマートコントラクトの残高の更新が失敗する(例えば、購入される品物の数を提供するための十分なスマートコントラクトの在庫がない)と、取引を続けることはできず、ノード202はその取引を破棄できる。スマートコントラクトの状態は、状態σに保つことができる。
幾つかの実施形態においては、スマートコントラクトの残高の更新が成功すると、ノード202は、スマートコントラクトの対応するコードを呼び出す、または行使することにより取引を実行できる。例えば、ノード202は、プールデータベース230に一時的に格納されている、スマートコントラクトの状態に対してチェックされた保護条件を有している取引を含んでいる、取引のセットを実行できる。幾つかの実施形態においては、グループで実行される取引はそれぞれ、保護条件を有することができる。幾つかの実施形態においては、グループにおける幾つかの取引は、保護条件を有していなくてもよく、ノード202は、これらの取引は、上記のように条件チェックをパスしたものと仮定する。このように、ブロックチェーンネットワーク200またはノード202は、保護条件を有していなくてもよい、存在しているスマートコントラクトを実行可能である。
幾つかの実施形態においては、スマートコントラクトを実行するとき、取引と関連付けられているパラメータlを、スマートコントラクトの1つ以上のプロセスまたは機能に送り込むことができ、スマートコントラクトの該1つ以上のプロセスまたは機能を実行できる。スマートコントラクトの実行が完了可能であれば、ノード202は、スマートコントラクトの状態を、過渡的状態σ’から終了状態σ”に変更できる。このため、取引の実現は完了される。そのようなプロセスは、下記の式(2)により表わされ、
ここにおいて、TXおよびTは提出された取引を表わし、cは取引TXまたはTの保護条件を表わし、idはブロックチェーンにおけるスマートコントラクトのアドレスを表わし、Mはスマートコントラクト実行コードまたはスマートコントラクト実行コードの一部を表わし、lはスマートコントラクト行使パラメータを表わし、balはスマートコントラクトの口座残高を表わし、σ[id]は状態σにおける、アドレスidでの対応するスマートコントラクトコードを表わし、σ[id][bal]は状態σにおける、アドレスidでのスマートコントラクトの口座残高を表わし、σ、σ’およびσ”は、ブロックチェーンの3つのワールド状態を表わし、←は、代入値を表わし、→および
は変換を示し、εはスマートコントラクト実行コードMの実行のためのコールスタックを表わしている。
幾つかの実施形態においては、スマートコントラクトの過渡的状態σ’において、スマートコントラクトの実行が完了できず、実行例外が起きた場合、ノード202は、スマートコントラクトの過渡的状態σ’を状態σに戻すことができる。例えば、ブロックチェーンのワールド状態を、過渡的状態σ’から元の状態σに戻すことができる。実行例外は、実行プロセスにおいてエラーがあるとき、または現在の条件が満たされているときに起こり得る。例えば、実行が所定の時間を超えて動作し、依然として動作し続けている(実行タイムアウトとも称される)、または、購入される品物の数が、スマートコントラクトの在庫より多いなどである。幾つかの実施形態においては、ノード202は取引の実行が失敗したことを示す実行例外<e>excを返すことができる。この状況は、下記の式(3)に記述することができる。
ここにおいて、TXおよびTは提出された取引を表わし、cは取引TXまたはTの保護条件を表わし、idはブロックチェーンにおけるスマートコントラクトのアドレスを表わし、Mはマシンコードであり、スマートコントラクト実行コードを表わし、lはスマートコントラクト行使パラメータを表わし、balはスマートコントラクトの口座残高を表わし、σ[id]は状態σにおける、アドレスidでの対応するスマートコントラクトコードを表わし、σ[id][bal]は状態σにおける、アドレスidでのスマートコントラクトの口座残高を表わし、σ、σ’およびσ”は、ブロックチェーンの3つのワールド状態を表わし、←は、代入値を表わし、→および
は変換を示し、εはスマートコントラクト実行コードMの実行のためのコールスタックを表わし、<e>excは取引の実行例外を表わしている。
式(1)〜(3)に記述されている例としての方式は、取引を提出した当事者が予期される結果を得るか、取引が失敗に終わるかの何れかを確実にする。買い手が、購入注文を出したときに同意した価格より多くを支払わないことを保証することが可能である。加えて、この方式は下位互換性であることが可能である。既存のスマートコントラクトにおいては、保護条件は、デフォルトとして「真」に設定可能であり、そのため、式(1)〜(3)に記述されている方式を適用するために、既存のスマートコントラクトコードを変更する必要はない。
図3を参照すると、種々の実施形態に係る、例としてのスマートコントラクト実行モデル300が例示されている。例としてのスマートコントラクト実行モデル300は、図2Aと2Bを参照して上述した方式の適用であってよく、ブロックチェーンネットワーク200における、例えば、ノード202、ユーザコンピューティング装置240、およびプールデータベース230における1つ以上の実体により実現できる。図3に示されているように、売り手は取引「TxB」を提出し、買い手は、ほぼ同じ期間内に取引「TxA」を提出している。期間は、ブロックチェーンが、有効にするために取引の提出を容認する間の期間であってよい。幾つかの実施形態においては、2つの取引はプールデータベース230に一時的に格納されている。取引「TxA」は、品物の価格が5ドルに固定されている(「c=[p==5]」)という保護条件のもとで、5ドルの価格(「p=5」)で、2個の品物(取引「TxA」においては「g=2」で表わされる)を買うためのスマートコントラクト「X」の「買い」プロセスを呼び出すことである。他方、売り手により提出された取引「TxB」は、6ドルの価格(「p=6」)で、すべての品物(例えば、50個の場合、「g=50」で表わされる)を売るためのスマートコントラクト「X」の「売り」プロセスを実行することである。
売り手の取引「TxB」の存在を知らずに、買い手は、現在の契約価格が5ドルであることを知り、従って、5ドルの価格で取引「TxA」を完了することを期待した。買い手の取引「TxA」が最初に実行された場合、取引「TxA」に対する保護条件は満たされるので、取引「TxA」を正常に実現できる。しかし、売り手の取引「TxB」が最初に実行された場合、スマートコントラクト「X」における、品物すべての価格は6ドルに増加し、スマートコントラクト「X」の状態は、新しい状態に変換される。従って、引き続いて、スマートコントラクト「X」の新しい状態において、買い手の取引「TxA」を実行すると、買い手の取引「TxA」の保護条件「c=[p==5]」は満たされず、そのため、買い手と売り手が価格の合意に到達しなかったので、買い手の取引「TxA」は終了される。
イーサリアムにおけるバッチオークションとプレサブミッションの方法と比較すると、現在の条件付き保護に基づく取引実行機構は、各取引に対して実行条件を設定することにより、取引の順序依存性を回避し、そのため、個々の取引の実行効率に影響を与えない。更に、開示されたシステムと方法は、プレサブミッションの方法によりもたらされる複数の実行段階のための余分なコストを防止する。
図4は、種々の実施形態に係る、スマートコントラクト実行ための、例としての方法400のフローチャートを例示している。方法400は、例えば、図2Aのブロックチェーンネットワーク200の1つ以上の構成要素を含んでいるシステムにより実現できる。例としての方法400は、ノード202の1つ以上、ユーザコンピューティング装置240、および/またはイーサリアム仮想マシンにより実現できる。例としての方法400は、ノード202の1つ以上の構成要素(例えば、プロセッサ、プロセスとメモリの組み合わせ、1つ以上の論理回路など)により実行できる。方法400は、環境200に類似の複数のシステムにより実現できる。下記に提示される方法400の動作は、例示的であることが意図されている。実現形態によっては、例としての方法400は、追加的ステップ、より少ないステップ、または種々の順序で、または平行して行われる代替のステップを含むことができる。
ブロック402は、共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引(例えば、TxA)と第2取引(例えば、TxB)を得ることを備えている。幾つかの実施形態においては、第2取引を実行することは、スマートコントラクトの現在の状態を変更できる(例えば、取引項目の価格)。幾つかの実施形態においては、保護条件は、第1取引に基づいて自動的に生成される。幾つかの実施形態においては、保護条件は、第1取引を提出したコンピューティング装置により提出される。幾つかの実施形態においては、第1および第2取引が、例えば、プールデータベースにおいて受信されたとき、それらを実行する順序があってもよく、またはなくてもよい。第2取引は、保護条件を有してもよく、有さなくてもよい。
幾つかの実施形態においては、現在の状態は、スマートコントラクトの取引項目の現在の価格を備えており、保護条件は、取引項目の価格範囲(例えば、予め設定された価格)、量範囲、または、時間範囲と関連付けられている。例えば、第1取引は、価格範囲における取引項目の購入注文と関連付けられており、第2取引は、取引項目を売る販売注文と関連付けられている。
幾つかの実施形態においては、ブロックチェーンノード(例えば、ノード202)は、定期的に(例えば、10分毎に)、未確認取引を収集して、プールデータベースに格納するように構成されており、第1取引と第2取引を得ることは、プールデータベースにおける未確認取引のプールから、第1取引と第2取引を得ることを備えている。未確認取引を収集して格納するノードは、必ずしも、未確認取引をプールデータベースから得るノードというわけではない。未確認取引のプールは、実行の順序を有しておらず、プールデータベースから得られ、後続のステップが実行された後、実行の順序を決定可能である。
幾つかの実施形態においては、ブロックチェーンノード(例えば、ノード202)はそれぞれ、ブロックチェーンのコピーを台帳として格納するためのメモリを備え、データブロックのブロックチェーンを維持するために、ブロックチェーンノードは、新しいデータブロック、または別の新しいデータブロックがブロックチェーンに追加されたときに、台帳を更新するように構成されている。
ブロック404は、第2取引を実行して、スマートコントラクトの現在の状態を更新することを備えている。第1および第2取引は、実行のためにランダムに選択できる。このブロックは、第2取引が最初に選択されるシナリオを表わしている。
または、幾つかの実施形態においては、第1取引を第2取引よりも前に実行でき、スマートコントラクトの現在の状態が更新される。
ブロック406は、スマートコントラクトの、更新された現在の状態は保護条件を満たしているかどうかを判定することを備えている。
ブロック407は、更新された現在の状態が保護条件を満たすと判定することに応答して、第1取引を実行し、ブロックチェーンに追加するために、第2および第1取引を新しいデータブロックに記録することを備えている。
ブロック408は、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を実行することなく、ブロックチェーンに追加するために、第2取引を別の新しいデータブロックに記録することを備えている。幾つかの実施形態においては、ブロック408は更に、更新された現在の状態が保護条件を満たさないと判定することに応答して、第1取引を提出したコンピューティング装置に実行例外を返すことを備えている。
幾つかの実施形態においては、現在の状態は、先行する取引(例えば、第2取引)に限られることなく、任意のファクタにより変更できる。例えば、スマートコントラクトの安全性を向上するための、コンピュータにより実現される方法は、スマートコントラクトを行使し、保護条件と関連付けられている第1取引を得ることと、スマートコントラクトの現在の状態が、保護条件を満たすかどうかを判定することと、現在の状態が保護条件を満たすと判定することに応答して、第1取引を実行し、第1取引を、ブロックチェーンに追加するためにデータブロックに記録することと、現在の状態が保護条件を満たさないと判定することに応答して、第1取引を実行しないことを備えている。
図5は、種々の実施形態に係る、取引を実現するための、例としての方法500のフローチャートを例示している。方法500は、例えば、図2Aのブロックチェーンネットワーク200を含む種々のシステムにおいて実現できる。例としての方法500は、ノード202とユーザコンピューティング装置240により実現できる。方法500は、ブロックチェーンネットワーク200に類似している複数のシステムにより実現できる。方法500の動作は、図4におけるブロック406と407の実施形態であることが可能である。下記に提示される方法500の動作は、例示的であることが意図されている。実現形態によっては、例としての方法500は、追加的ステップ、より少ないステップ、または、種々の順序で、または平行して行われる代替のステップを含むことができる。
ブロック502において、スマートコントラクトの現在の状態(第1状態とも称される)が、取引の条件(例えば、図4におけるブロック402で受信された取引の条件)を満たすかどうかを判定できる。現在の状態は、図4におけるブロック406での「更新された現在の状態」であることが可能である。例えば、条件は、品物の価格が、取引において定義された値に固定されているということであってよい。ブロック504において、スマートコントラクトの第1状態が、取引の条件を満たしていないと判定された場合、取引を取り下げることができる。例えば、スマートコントラクトの第1状態において、品物の価格が、取引で定義された価格とは異なる値に変更されている場合は、条件が満たされていないので、取引を取り下げることができる。
ブロック506において、スマートコントラクトの第1状態が、取引の条件を満たしていると判定された場合、スマートコントラクトの残高を更新できる。ブロック508において、スマートコントラクトの残高の更新が成功したかどうかを判定できる。更新が失敗した場合、ブロック504で示されるように、取引を取り下げることができる。ブロック510において、スマートコントラクトの残高の更新が成功した場合、スマートコントラクトの第1状態は、第2状態に変更できる。ブロック512において、取引は、取引と関連付けられているパラメータに基づいて、スマートコントラクトを実行することにより実現できる。例えば、取引と関連付けられているパラメータの値を、スマートコントラクトの1つ以上のプロセスに渡すことができ、該1つ以上のプロセスを実行できる。
ブロック514において、スマートコントラクトの実行が成功したかどうかが判定される。ブロック516において、スマートコントラクトの実行が成功したと判定された場合、スマートコントラクトの状態は、第3状態に変更できる。取引は首尾よく実現された。ブロック518において、スマートコントラクトの実行が失敗した場合、実行例外を返すことができる。ブロック520において、スマートコントラクトの状態は、変更して第1状態に戻すことができる。幾つかの実施形態においては、図4におけるブロック407は、図5におけるブロック506〜516を含むことができる。
ここにおいて記述された技術は、1つ以上の特殊用途のコンピューティング装置により実現される。特殊用途のコンピューティング装置は、デスクトップコンピュータシステム、サーバコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーキングデバイス、または、任意の他のデバイス、または、この技術を実現するためのハードワイヤードおよび/またはプログラムロジックを組み込んでいるデバイスの組み合わせであってよい。
図6は、ここにおいて記述された実施形態の何れをも実現できる、例としてのコンピュータシステム600を例示しているブロック図である。システム600は、図2Aを参照して上述したノード202またはユーザコンピューティング装置240に対応することができる。コンピュータシステム600は、情報を通信するためのバス602または他の通信機構、情報を処理するための、バス602に結合されている1つ以上のハードウェアプロセッサ604を含んでいる。ハードウェアプロセッサ604は、例えば、1つ以上の汎用マイクロプロセッサであってよい。
コンピュータシステム600はまた、情報、およびプロセッサ604により実行される命令を格納するための、バス602に結合されている、ランダムアクセスメモリ(RAM)、キャッシュおよび/または他のダイナミックストレージデバイスのようなメインメモリ606も含んでいる。メインメモリ606はまた、プロセッサ604により実行される命令の実行中に、一時的変数または他の中間情報を格納するためにも使用できる。そのような命令は、プロセッサ604がアクセス可能な格納媒体に格納されると、コンピュータシステム600を、命令において指定される動作を行うようにカスタマイズされた特殊用途マシンに変える。コンピュータシステム600は更に、情報、およびプロセッサ604に対する命令を格納するための、バス602に結合されているリードオンリメモリ(ROM)608または他のスタティックストレージデバイスを含んでいる。情報および命令を格納するために、磁気ディスク、光ディスク、またはUSBサムドライブ(フラッシュドライブ)などのようなストレージデバイス610が設けられ、バス602に結合される。
コンピュータシステム600は、ここにおいて記述した技術を、コンピュータシステムとの組み合わせにおいて、コンピュータシステム600を、特殊用途マシンとさせる、またはそのようにプログラムする、カスタマイズされたハードワイヤードロジック、1つ以上のASICまたはFPGA、ファームウェアおよび/またはプログラムロジックを使用して実現できる。1つの実施形態によれば、ここにおいて記述された動作、方法、およびプロセスは、プロセッサ604が、メインメモリ606に含まれている1つ以上の命令の1つ以上のシーケンスを実行することに応答して、コンピュータシステム600により実行される。そのような命令は、ストレージデバイス610のような別の格納媒体からメインメモリ606に読み込むことができる。メインメモリ606に含まれる命令のシーケンスの実行は、プロセッサ604に、ここにおいて記述されたプロセスステップを行わせる。代替の実施形態においては、ハードワイヤード回路を、ソフトウェア命令の代わりに、またはそれと組み合わせて使用できる。
プロセッサ604は、上述したプロセッサ204に対応することができ、メインメモリ606、ROM608、および/またはストレージ610は、上述したメモリ206に対応することができる。メインメモリ606、ROM608、および/またはストレージ610は、非一時的格納媒体を含むことができる。「非一時的媒体」の用語と、これに類似の用語は、ここにおいて使用されるように、マシンを、特定の様式で動作させるデータおよび/または命令を格納する任意の媒体を指している。そのような非一時的媒体には、不揮発性媒体および/または揮発性媒体を含むことができる。不揮発性媒体は、例えば、ストレージデバイス610のような、光または磁気ディスクを含んでいる。揮発性媒体は、メインメモリ606のようなダイナミックメモリを含んでいる。非一時的媒体の一般的な形式には、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または任意の他の磁気データ格納媒体、CD−ROM、任意の他の光データ格納媒体、任意の孔パターンの物理媒体、RAM、PROM、およびEPROM、FLASH−EPROM、NVRAM、任意の他のメモリチップ、またはカートリッジ、およびそれらのネットワーク化されたバージョンがある。
コンピュータシステム600はまた、バス602に結合されている通信インタフェース/ネットワークポート618を含んでいる。通信インタフェース/ネットワークポート618は、1つ以上のローカルネットワークに接続されている1つ以上のネットワークリンクに、双方向データ通信カップリングを提供する。例えば、通信インタフェース/ネットワークポート618は、総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム、または対応するタイプの電話線へのデータ通信接続を提供するためのモデムであってよい。別の例として、通信インタフェース/ネットワークポート618は、対応LAN(または、WANと通信されるWAN構成要素)へのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであってよい。無線リンクもまた実現できる。任意のそのような実現形態において、通信インタフェース/ネットワークポート618は、種々のタイプの情報を表わしているデジタルデータストリームを搬送する、電気、電磁、または光信号を送受信する。
コンピュータシステム600は、ネットワーク、ネットワークリンク、および通信インタフェース/ネットワークポート618を通してメッセージを送ることが可能で、プログラムコードを含むデータを受信可能である。インターネットの例においては、サーバは、インターネット、ISP、ローカルネットワーク、および通信インタフェース/ネットワークポート618を通して、アプリケーションプログラムに対して、要求されるコードを送信できる。受信されたコードは、受信されたときにプロセッサ604により実行でき、および/または、後での実行のために、ストレージデバイス610または他の不揮発性ストレージに格納できる。
先行するセクションで記述された方式、機構、解決策、プロセス、方法、およびアルゴリズムのそれぞれは、コンピュータハードウェアを備えている1つ以上のコンピュータシステムまたはコンピュータプロセッサにより実行されるコードモジュールにおいて具現化でき、およびコードモジュールにより全体を、または部分的に自動化できる。プロセスおよびアルゴリズムは、特定用途向け回路において、部分的に、または全体を実現できる。幾つかの実施形態においては、プロセッサ604は、上述した1つ以上の論理回路として部分的に、または全体を実現できる。
上述した種々の特徴とプロセスは、互いに独立して使用でき、または、種々のやり方で組み合わせることができる。すべての可能な組み合わせと、その下位の組み合わせは、本開示の範囲であることが意図されている。加えて、ある方法またはプロセスブロックは、幾つかの実現形態においては省略できる。ここにおいて記述された方法とプロセスは、如何なる特別なシーケンスにも制限されず、それに関連するブロックまたは状態は、適切な他のシーケンスで実行可能である。例えば、記述されたブロックまたは状態は、具体的に開示された順序以外の順序で実行でき、または複数のブロックまたは状態は、単一のブロックまたは状態に組み合わせることができる。例としてのブロックまたは状態は、連続して、または平行して、またはある他の方法で実行できる。ブロックまたは状態は、開示された例としての実施形態に追加でき、またそこから除去できる。ここにおいて記述された、例としてのシステムと構成要素は、記述されたものとは異なるように構成できる。例えば、要素を、開示された例としての実施形態に追加でき、そこから除去でき、または、それと比較して再配置できる。
ここにおいて記述された例としての方法の種々の動作は、少なくとも部分的には、アルゴリズムにより実行できる。アルゴリズムは、メモリ(例えば、上述した非一時的コンピュータ読取り可能格納媒体)に格納されているプログラムコードまたは命令に含むことができる。そのようなアルゴリズムは、マシン学習アルゴリズムを備えることができる。幾つかの実施形態においては、マシン学習アルゴリズムは、機能を実行するためにコンピュータを明示的にプログラムしなくてもよく、機能を実行する予測モデルを作るための訓練データから学習可能である。
ここにおいて記述された例としての方法の種々の動作は、少なくとも部分的には、関連する動作を行うように一時的に(例えば、ソフトウェアにより)、または永久的に構成される1つ以上のプロセッサにより実行できる。一時的または永久的に構成されても、そのようなプロセッサは、ここにおいて記述された1つ以上の動作または機能を実行するために動作する、プロセッサにより実現されるエンジンを構成できる。
同様に、ここにおいて記述された方法は、少なくとも部分的にはプロセッサで実現でき、特別なプロセッサまたは特別な複数のプロセッサは、ハードウェアの例である。例えば、方法の動作の少なくとも幾つかは、1つ以上のプロセッサまたは、プロセッサで実現されるエンジンにより実行できる。更に、1つ以上のプロセッサはまた、「クラウドコンピューティング」環境において、または「サービスとしてのソフトウェア(SaaS)」として、関連する動作の実行をサポートするために動作できる。例えば、動作の少なくとも幾つかは、(プロセッサを含むマシンの例のような)コンピュータのグループにより実行でき、これらの動作は、ネットワーク(例えば、インターネット)を介して、および1つ以上の適切なインタフェース(例えば、アプリケーションプログラムインタフェース(API))を介してアクセス可能である。
動作の、ある幾つかの実行は、単一のマシンに属するプロセッサだけでなく、多数のマシンに跨って配置されているプロセッサに分散できる。幾つかの例としての実施形態においては、プロセッサ、またはプロセッサにより実現されるエンジンは、単一の地理的位置(例えば、ホーム環境、オフィス環境、またはサーバファーム内)に位置できる。他の例としての実施形態においては、プロセッサ、またはプロセッサにより実現されるエンジンは、多数の地理的位置に跨って分散できる。
この明細書全体を通して、複数の例は、単一の例として記述された構成要素、動作、または構造を実現できる。1つ以上の方法の個々の動作が、別個の動作として例示および記述されたが、個々の動作の1つ以上は同時に実行でき、動作は、例示された順序で実行することは要求されない。例としての構成において、別個の構成要素として提示された構造と機能は、組み合わされた構造または構成要素として実現できる。同様に、単一の構成要素として提示された構造と機能は、別個の構成要素として実現できる。これらの、および他の変形例、修正例、追加例、および改善例は、ここにおける主題の範囲であるものとする。
ここにおいて記述された、および/または、付随する図において描かれた、フロー図におけるプロセスの記述、要素、またはブロックの何れをもが、特定の論理機能、またはプロセスにおけるステップを実現するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または部分を潜在的表わしていると理解されるべきである。当業者には理解されるように、要素または機能を削除でき、示された、または検討された順序とは異なり、関与する機能により、実質的に同時に、または逆の順序を含む順序で実行できる代替としての実現形態は、ここにおいて記述された実施形態の範囲に含まれる。
主題の概観が、具体的な例としての実施形態を参照して記述されたが、種々の修正および変更を、本開示の実施形態のより広い範囲から逸脱することなく、これらの実施形態に対して行うことができる。主題のそのような実施形態は、単に便宜上および、この適用の範囲を、実際に2つ以上が開示された場合に、如何なる単一の開示またはコンセプトに随意的に制限することを意図することなく、ここにおいて個別に、またはまとめて、「発明」という用語により言及できる。
ここにおいて例示された実施形態は、当業者が、開示された教示を実践するためには十分に詳細に記述されている。構造的および論理的置換と変更が、この開示の範囲から逸脱することなく行えるように、他の実施形態を使用でき、そこから導出できる。従って、詳細な説明は、制限的な意味で捉えられるべきでなく、種々の実施形態の範囲は、そのような請求項の権利が与えられる等価物の全範囲と共に、付随する請求項によってのみ定義される。

Claims (20)

  1. スマートコントラクトの安全性を向上するための、コンピュータにより実現される方法であって、
    共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、
    前記第2取引を実行して、前記スマートコントラクトの現在の状態を更新することと、
    前記スマートコントラクトの前記更新された現在の状態が、前記保護条件を満たすかどうかを判定することと、
    前記更新された現在の状態が前記保護条件を満たすと判定することに応答して、前記第1取引を実行して、ブロックチェーンに追加するために、前記第2および第1取引をデータブロックに記録することと、
    前記更新された現在の状態が前記保護条件を満たさないと判定することに応答して、前記第1取引を実行することなく、前記ブロックチェーンに追加するために、前記第2取引を別のデータブロックに記録すること、を備えていることを特徴とする方法。
  2. 前記更新された現在の状態が前記保護条件を満たさないと判定することに応答して、前記第1取引を提出したコンピューティング装置に実行例外を返すことを更に備えることを特徴とする請求項1の方法。
  3. 前記現在の状態は、前記スマートコントラクトの取引項目の現在の価格を備え、
    前記保護条件は、前記取引項目の価格範囲、量範囲、または時間範囲と関連付けられていることを特徴とする請求項1の方法。
  4. 前記第1取引は、前記価格範囲における前記取引項目の購入注文と関連付けられており、
    前記第2取引は、前記取引項目を売る販売注文と関連付けられていることを特徴とする請求項3の方法。
  5. 前記保護条件は、前記第1取引に基づいて自動的に生成されることを特徴とする請求項1の方法。
  6. 前記保護条件は、前記第1取引を提出したコンピューティング装置により提出されることを特徴とする請求項1の方法。
  7. 前記第1取引と前記第2取引を得ることは、前記第1取引と前記第2取引をプールデータベースから得ることを備えていることを特徴とする請求項1の方法。
  8. 複数のノードはそれぞれ、前記ブロックチェーンのコピーを台帳として格納するためのメモリを備え、
    前記ノードは、前記新しいデータブロックまたは前記別の新しいデータブロックが前記ブロックチェーンに追加されるときに、前記台帳を更新するように構成されていることを特徴とする請求項1の方法。
  9. スマートコントラクトの安全性を向上するためのシステムであって、1つ以上のプロセッサと、前記1つ以上のプロセッサに結合され、前記1つ以上のプロセッサにより実行可能であり、前記システムに、
    共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、
    前記第2取引を実行して、前記スマートコントラクトの現在の状態を更新することと、
    前記スマートコントラクトの前記更新された現在の状態が、前記保護条件を満たすかどうかを判定することと、
    前記更新された現在の状態が前記保護条件を満たすと判定することに応答して、前記第1取引を実行して、ブロックチェーンに追加するために、前記第2および第1取引を新しいデータブロックに記録することと、
    前記更新された現在の状態が前記保護条件を満たさないと判定することに応答して、前記第1取引を実行することなく、前記ブロックチェーンに追加するために、前記第2取引を別の新しいデータブロックに記録すること、を備える動作を行わせる命令で構成されている1つ以上の非一時的コンピュータ読取り可能メモリを備えていることを特徴とするシステム。
  10. 前記システムは更に、
    前記更新された現在の状態が前記保護条件を満たさないと判定することに応答して、前記第1取引を提出したコンピューティング装置に実行例外を返すことを実行させられることを特徴とする請求項9のシステム。
  11. 前記現在の状態は、前記スマートコントラクトの取引項目の現在の価格を備え、
    前記保護条件は、前記取引項目の価格範囲、量範囲、または時間範囲と関連付けられていることを特徴とする請求項9のシステム。
  12. 前記第1取引は、前記価格範囲における前記取引項目の購入注文と関連付けられており、
    前記第2取引は、前記取引項目を売る販売注文と関連付けられていることを特徴とする請求項11のシステム。
  13. 前記保護条件は、前記第1取引に基づいて自動的に生成されることを特徴とする請求項9のシステム。
  14. 前記保護条件は、前記第1取引を提出したコンピューティング装置により提出されることを特徴とする請求項9のシステム。
  15. 非一時的コンピュータ読取り可能格納媒体であって、1つ以上のプロセッサにより実行可能であり、前記1つ以上のプロセッサに、
    共にスマートコントラクトを行使する、保護条件と関連付けられている第1取引と、第2取引を得ることと、
    前記第2取引を実行して、前記スマートコントラクトの現在の状態を更新することと、
    前記スマートコントラクトの前記更新された現在の状態が、前記保護条件を満たすかどうかを判定することと、
    前記更新された現在の状態が前記保護条件を満たすと判定することに応答して、前記第1取引を実行して、ブロックチェーンに追加するために、前記第2および第1取引をデータブロックに記録することと、
    前記更新された現在の状態が前記保護条件を満たさないと判定することに応答して、前記第1取引を実行することなく、前記ブロックチェーンに追加するために、前記第2取引を別のデータブロックに記録すること、を備える動作を行わせる命令で構成されていることを特徴とする格納媒体。
  16. 前記プロセッサは更に、
    前記更新された現在の状態が前記保護条件を満たさないと判定することに応答して、前記第1取引を提出したコンピューティング装置に実行例外を返すことを実行させられることを特徴とする請求項15の格納媒体。
  17. 前記現在の状態は、前記スマートコントラクトの取引項目の現在の価格を備え、
    前記保護条件は、前記取引項目の価格範囲、量範囲、または時間範囲と関連付けられていることを特徴とする請求項15の格納媒体。
  18. 前記第1取引は、前記価格範囲における前記取引項目の購入注文と関連付けられており、
    前記第2取引は、前記取引項目を売る販売注文と関連付けられていることを特徴とする請求項17の格納媒体。
  19. 前記保護条件は、前記第1取引に基づいて自動的に生成されることを特徴とする請求項15の格納媒体。
  20. 前記保護条件は、前記第1取引を提出したコンピューティング装置により提出されることを特徴とする請求項15の格納媒体。
JP2019520856A 2018-11-27 2018-11-27 ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法 Active JP6864088B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117666 WO2019072283A2 (en) 2018-11-27 2018-11-27 SYSTEM AND METHOD FOR ENHANCING THE SECURITY OF AN INTELLIGENT CONTRACT ON A BLOCK CHAIN

Publications (2)

Publication Number Publication Date
JP2020502617A true JP2020502617A (ja) 2020-01-23
JP6864088B2 JP6864088B2 (ja) 2021-04-21

Family

ID=66100130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019520856A Active JP6864088B2 (ja) 2018-11-27 2018-11-27 ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法

Country Status (14)

Country Link
US (1) US11354727B2 (ja)
EP (1) EP3545481A4 (ja)
JP (1) JP6864088B2 (ja)
KR (1) KR102254500B1 (ja)
CN (1) CN110291550A (ja)
AU (1) AU2018348324A1 (ja)
BR (1) BR112019008064B1 (ja)
CA (1) CA3040783A1 (ja)
MX (1) MX2019004546A (ja)
PH (1) PH12019500869A1 (ja)
RU (1) RU2744496C2 (ja)
SG (1) SG11201903439RA (ja)
WO (1) WO2019072283A2 (ja)
ZA (1) ZA201902474B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544782B2 (en) 2018-05-06 2023-01-03 Strong Force TX Portfolio 2018, LLC System and method of a smart contract and distributed ledger platform with blockchain custody service
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
CN112534452A (zh) 2018-05-06 2021-03-19 强力交易投资组合2018有限公司 用于改进自动执行能源、计算、存储和其它资源的现货和远期市场中的分布式账本和其它交易的机器和系统的方法和系统
US11842322B2 (en) * 2018-08-22 2023-12-12 Equinix, Inc. Smart contract interpreter
GB2583738B (en) * 2019-05-07 2021-05-05 Arm Ip Ltd Content distribution integrity control
EP3983922A1 (en) * 2019-06-14 2022-04-20 Ailia SA Method for the execution of an instance of a smart contract by means of a blockchain
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US20220292082A1 (en) * 2019-08-19 2022-09-15 Hangzhou Qulian Technology Co., Ltd. Method, apparatus and device for parallel execution of smart contract, and medium
US11893578B2 (en) * 2019-10-11 2024-02-06 Christopher Charles Anderson System and method for online transactions using cryptographic digital tokens
EP3955224A1 (en) * 2020-08-14 2022-02-16 Nagravision S.A. Localized betting system and method
CN111767097B (zh) * 2020-08-31 2020-12-11 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置、电子设备、存储介质
CN112529589B (zh) * 2021-02-10 2021-07-27 北京全息智信科技有限公司 一种长耗时区块链交易的处理方法、装置和电子设备
CN112580112B (zh) * 2021-02-26 2021-06-22 北京全息智信科技有限公司 一种基于全链共识、局部部署的智能合约实现方法、装置
KR20230117975A (ko) 2022-02-03 2023-08-10 충남대학교산학협력단 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017092788A1 (en) * 2015-11-30 2017-06-08 Rwe Ag Supply medium (e.g. electrical power) transaction agreement system
JP2018036893A (ja) * 2016-08-31 2018-03-08 ヤフー株式会社 生成プログラム、生成装置及び生成方法
WO2018165104A1 (en) * 2017-03-08 2018-09-13 Alibaba Group Holding Limited Business processing method and apparatus
US20180285810A1 (en) * 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
JP2019003309A (ja) * 2017-06-13 2019-01-10 株式会社野村総合研究所 検査装置
JP2019053729A (ja) * 2017-09-15 2019-04-04 富士通株式会社 スマートコントラクトのテスト方法及びテスト装置
JP2019083013A (ja) * 2017-10-30 2019-05-30 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー ブロックチェーン内でスマートコントラクトをセキュア化する方法およびシステム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436923B1 (en) 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
US20170011460A1 (en) 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
EP3125489B1 (en) 2015-07-31 2017-08-09 BRITISH TELECOMMUNICATIONS public limited company Mitigating blockchain attack
US10114969B1 (en) 2015-08-04 2018-10-30 Jordan White Chaney Ultra-secure blockchain-based electronic information transfer system
WO2017090041A1 (en) 2015-11-24 2017-06-01 Ben-Ari Adi A system and method for blockchain smart contract data privacy
US10230756B2 (en) 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
US11625694B2 (en) 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
WO2017145019A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
WO2017173399A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
CN109313763B (zh) * 2016-03-31 2023-02-28 比特飞翔区块链株式会社 层次型网络系统以及用于层次型网络系统的节点
CA3019642C (en) * 2016-04-01 2023-03-07 Jpmorgan Chase Bank, N.A. Systems and methods for providing data privacy in a private distributed ledger
US10022613B2 (en) 2016-05-02 2018-07-17 Bao Tran Smart device
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
KR101949705B1 (ko) 2016-07-21 2019-02-19 대전보건대학 산학협력단 정맥수액 투약오류 예방을 위한 수액연결관 공기탐지 방법
US20180089761A1 (en) 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a leader-follower multi-asset portfolio
GB2557577A (en) * 2016-10-21 2018-06-27 Cygnetise Ltd Methods and apparatus for recording a change of authorisation state of one or more authorisation agents
US10726343B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. Performing compliance operations using cognitive blockchains
US10726346B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. System for performing compliance operations using cognitive blockchains
JP6775086B2 (ja) 2016-12-16 2020-10-28 株式会社日立製作所 ブロックチェーン監視及び管理
WO2018115567A1 (en) 2016-12-19 2018-06-28 Nokia Technologies Oy Method and apparatus for private data transfer between parties
CN106874087A (zh) 2017-01-25 2017-06-20 上海钜真金融信息服务有限公司 一种区块链智能合约定时任务调度方法
WO2018140913A1 (en) 2017-01-30 2018-08-02 SALT Lending Holdings, Inc. System and method of creating an asset based automated secure agreement
US11411963B2 (en) 2017-02-13 2022-08-09 Nokia Technologies Oy Network access sharing
US10225076B2 (en) * 2017-02-17 2019-03-05 Tianqing Leng Splitting digital promises recorded in a blockchain
US10356102B2 (en) 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain
CN106980649B (zh) 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
US20180285971A1 (en) 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
US10541818B2 (en) 2017-04-19 2020-01-21 International Business Machines Corporation Decentralized biometric signing of digital contracts
CN107330701A (zh) * 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备
CN107392618B (zh) * 2017-07-28 2021-02-12 苏州朗润创新知识产权运营有限公司 植入智能合约的方法和设备
US10891694B1 (en) * 2017-09-06 2021-01-12 State Farm Mutual Automobile Insurance Company Using vehicle mode for subrogation on a distributed ledger
CN107993069A (zh) 2017-12-13 2018-05-04 清华大学 一种基于区块链网络的在线交易方法及系统
US11544708B2 (en) * 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain
CN108109017A (zh) 2018-01-11 2018-06-01 杭州秘猿科技有限公司 基于区块链智能合约的商品交易系统
RU181439U1 (ru) 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
CN108833398B (zh) 2018-06-08 2020-12-15 深圳智链未来科技有限公司 一种区块链智能合约更新方法、装置及设备
KR102121930B1 (ko) * 2018-07-03 2020-06-11 네이버 주식회사 블록체인 기반의 개인 데이터 처리 방법 및 시스템

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017092788A1 (en) * 2015-11-30 2017-06-08 Rwe Ag Supply medium (e.g. electrical power) transaction agreement system
JP2018536938A (ja) * 2015-11-30 2018-12-13 イノジー イノヴァツィオン ゲゼルシャフト ミット ベシュレンクテル ハフツングinnogy Innovation GmbH 供給媒体(例えば、電力)取引契約システム
JP2018036893A (ja) * 2016-08-31 2018-03-08 ヤフー株式会社 生成プログラム、生成装置及び生成方法
WO2018165104A1 (en) * 2017-03-08 2018-09-13 Alibaba Group Holding Limited Business processing method and apparatus
US20180285810A1 (en) * 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
JP2019003309A (ja) * 2017-06-13 2019-01-10 株式会社野村総合研究所 検査装置
JP2019053729A (ja) * 2017-09-15 2019-04-04 富士通株式会社 スマートコントラクトのテスト方法及びテスト装置
JP2019083013A (ja) * 2017-10-30 2019-05-30 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー ブロックチェーン内でスマートコントラクトをセキュア化する方法およびシステム

Also Published As

Publication number Publication date
EP3545481A4 (en) 2020-02-12
BR112019008064B1 (pt) 2022-07-12
KR102254500B1 (ko) 2021-05-24
ZA201902474B (en) 2021-06-30
RU2744496C2 (ru) 2021-03-10
MX2019004546A (es) 2019-12-09
US20210082033A1 (en) 2021-03-18
AU2018348324A1 (en) 2020-06-11
WO2019072283A3 (en) 2019-09-26
WO2019072283A2 (en) 2019-04-18
CN110291550A (zh) 2019-09-27
RU2019111962A3 (ja) 2020-10-23
RU2019111962A (ru) 2020-10-23
SG11201903439RA (en) 2019-05-30
BR112019008064A2 (pt) 2019-11-12
EP3545481A2 (en) 2019-10-02
JP6864088B2 (ja) 2021-04-21
PH12019500869A1 (en) 2019-12-02
KR20200066261A (ko) 2020-06-09
CA3040783A1 (en) 2019-04-18
US11354727B2 (en) 2022-06-07

Similar Documents

Publication Publication Date Title
JP6864088B2 (ja) ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法
US11488176B2 (en) Systems, methods, and apparatuses for implementing certificates of authenticity of digital twins transacted onto a blockchain using distributed ledger technology (DLT)
TWI737944B (zh) 基於區塊鏈的交易執行方法及裝置、電子設備
WO2020220763A1 (zh) 基于区块链的信用记录、查询方法及装置和电子设备
US20200250661A1 (en) Systems, methods, and apparatuses for implementing declarative smart actions for coins and assets transacted onto a blockchain using distributed ledger technology (dlt)
US20200118131A1 (en) Database transaction compliance
US11138597B2 (en) System and method for improving security of smart contract on blockchain
JP7173976B2 (ja) コンピュータにより実現される方法およびシステム
US20200380505A1 (en) Auto-pilot transactions using smart contracts
Braghin et al. Designing smart-contract based auctions
CN113795369A (zh) 使用分布式账本进行唯一项创建
WO2021223493A1 (en) Method and system for blockchain-based loan management
CN112330181A (zh) 基于区块链的企业信用评价方法及装置
US11449938B2 (en) Methods and systems for tracking unspent transaction output (UTXO) tokens in a distributed ledger technology-based network
WO2018192931A1 (en) Delivery versus payment mechanism
CN115809909A (zh) 区块链网络拥塞自适应数字资产事件处置系统和方法
AU2019101593A4 (en) System and method for improving security of smart contract on blockchain
WO2021125107A1 (ja) 制御方法、装置、および、プログラム
US20240152918A1 (en) Distributed database with inter-related records relating to a vehicle
US20230162173A1 (en) System for Implementing Artificially Intelligent Smart Contract Escrow Service
US20240020683A1 (en) Methods and systems for multiple gating verifications based on a blockchain wallet
CN116012121A (zh) 基于区块链的拍卖方法、装置和电子设备
KR20230040735A (ko) 블록체인 기반의 소유권 증명에 기초하여 기대 이익을 분배하는 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201026

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: 20210302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210401

R150 Certificate of patent or registration of utility model

Ref document number: 6864088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150