CN110291550A - 提高区块链上智能合约的安全性的系统和方法 - Google Patents

提高区块链上智能合约的安全性的系统和方法 Download PDF

Info

Publication number
CN110291550A
CN110291550A CN201880011028.1A CN201880011028A CN110291550A CN 110291550 A CN110291550 A CN 110291550A CN 201880011028 A CN201880011028 A CN 201880011028A CN 110291550 A CN110291550 A CN 110291550A
Authority
CN
China
Prior art keywords
transaction
intelligent contract
protective condition
current state
block chain
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.)
Pending
Application number
CN201880011028.1A
Other languages
English (en)
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co 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 CN110291550A publication Critical patent/CN110291550A/zh
Pending legal-status Critical Current

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
    • 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
    • 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
    • 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)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General 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

一种用于提高智能合约的安全性的计算机实现方法包括:获得都调用智能合约的第一交易和第二交易,其中,第一交易与保护条件相关;执行第二交易并更新智能合约的当前状态;确定智能合约的更新的当前状态是否满足保护条件;响应于确定更新的当前状态满足保护条件,执行第一交易,并将第二交易和第一交易记录到数据区块中以添加到区块链;以及响应于确定更新的当前状态不满足保护条件,将第二交易记录到另一数据区块中以添加到区块链,而不执行第一交易。

Description

提高区块链上智能合约的安全性的系统和方法
技术领域
本公开一般涉及计算机技术,尤其涉及用于提高区块链上智能合约的安全性的系统和方法。
背景技术
区块链技术以去中心化的方式确保数据存储。数据可以存储在彼此之间具有优先级关系的一系列数据区块中,这形成区块的链。区块的链由节点网络维护,节点网络还负责在将数据存储到区块中之前验证数据。利用节点采用的加密技术和共识技术,存储在区块链中的数据几乎是不可更改的。因此,节点网络也称为区块链共识网络。最近,区块链技术已经扩展到提供用于执行智能合约的框架。智能合约是一段代码,其可以在区块链共识网络中运行以完成用户制定的业务逻辑。智能合约可以包括以数字格式定义的一组承诺,并且包括各方之间的具有以代码说明的相关约定的协议。智能合约可以根据未来的签名或触发事件而自动达成。但是,区块链智能合约容易受到在线恶意攻击,诸如未经授权的资产转移。因此,必须提高智能合约的安全性以至少减轻这些风险。
发明内容
本公开的各种实施例可以包括用于提高区块链上的智能合约的安全性的系统、方法和非暂时性计算机可读介质。根据一个方面,一种用于提高智能合约的安全性的系统包括一个或多个处理器及一个或多个非暂时性计算机可读存储器,该一个或多个非暂时性计算机可读存储器耦接到一个或多个处理器并配置有可由一个或多个处理器执行以使得系统执行以下操作的指令,所述操作包括:获得都调用智能合约的第一交易和第二交易,其中,第一交易与保护条件相关;执行第二交易并更新智能合约的当前状态;确定智能合约的更新的当前状态是否满足保护条件;响应于确定更新的当前状态满足保护条件,执行第一交易,并将第二交易和第一交易记录到新数据区块中以添加到区块链;以及响应于确定更新的当前状态不满足保护条件,将第二交易记录到另一新数区据块中以添加到区块链,而不执行第一交易。
在一些实施例中,系统被进一步促使执行:响应于确定更新的当前状态不满足保护条件,将执行异常返回到提交第一交易的计算设备。
在一些实施例中,当前状态包括智能合约的交易项目的当前价格;保护条件与交易项目的价格范围、数量范围或时间范围相关。
在一些实施例中,第一交易与价格范围内交易项目的购买订单相关;第二交易与销售交易项目的销售订单相关。
在一些实施例中,保护条件基于第一交易自动产生。
在一些实施例中,保护条件由提交第一交易的计算设备提交。
在一些实施例中,获得第一交易和第二交易包括从池数据库获得第一交易和第二交易。
在一些实施例中,多个节点各自包括用于存储区块链的副本作为账本的存储器;节点被配置为当新数据区块或另一新数据区块被添加到区块链时更新账本。
根据另一方面,一种计算机实现的用于提高智能合约的安全性的方法包括:获得都调用智能合约的第一交易和第二交易,其中,第一交易与保护条件相关;执行第二交易并更新智能合约的当前状态;确定智能合约的更新的当前状态是否满足保护条件;响应于确定更新的当前状态满足保护条件,执行第一交易,并将第二交易和第一交易记录到数据区块中以添加到区块链;以及响应于确定更新的当前状态不满足保护条件,将第二交易记录到另一数据区块中以添加到区块链,而不执行第一交易。
根据另一方面,一种非暂时性计算机可读存储介质,配置有可由一个或多个处理器执行以使一个或多个处理器执行以下操作的指令,所述操作包括:获得都调用智能合约的第一交易和第二交易,其中,第一交易与保护条件相关;执行第二交易并更新智能合约的当前状态;确定智能合约的更新的当前状态是否满足保护条件;响应于确定更新的当前状态满足保护条件,执行第一交易,并将第二交易和第一交易记录到数据区块中以添加到区块链;以及响应于确定更新的当前状态不满足保护条件,将第二交易记录到另一数据区块中以添加到区块链,而不执行第一交易。
在参考附图考虑以下描述和随附的权利要求时,本文公开的系统、方法和非暂时性计算机可读介质的这些和其他特征以及结构的元件和部件的组合相关的操作和功能的方法和制造经济将变得更加显而易见,所有这些附图形成本说明书的一部分,其中,相同的附图标记在各附图中表示对应的部件。然而,应该清楚地理解,附图仅用于说明和描述的目的,不旨在作为本发明的限制的定义。
附图说明
在随附的权利要求中具体阐述了本技术的各种实施例的某些特征。通过参考以下详细描述和附图将获得对该技术的特征和优点的更好理解,所述详细描述阐述了利用本发明的原理的说明性实施例,在附图中:
图1示出了根据各种实施例的示例性区块链。
图2A示出了根据各种实施例的用于提高智能合约的安全性的示例性计算环境。
图2B示出了根据各种实施例的示例性池数据库。
图3示出了根据各种实施例的示例性智能合约执行模型。
图4示出了根据各种实施例的用于提高智能合约的安全性的示例性方法的流程图。
图5示出了根据各种实施例的用于提高智能合约的安全性的示例性方法的流程图。
图6示出了可实现本文描述的任何实施例的示例性计算机系统的框图。
具体实施方式
现在将详细参考示例性实施例,其示例在附图中示出。以下描述参考附图,其中除非另有说明,否则不同附图中的相同数字表示相同或相似的元件。在符合本发明的示例性实施例的以下描述中阐述的实施方式不代表符合本发明的所有实施方式。相反,它们仅仅是符合本发明相关的方面的系统和方法的示例。
智能合约可包括有关进程或工作流程的协议,并描述各方应满足的条款和义务。在操作中,事件驱动的状态机可被用于检查智能合约的条款。各方可在共享的账本上记录签名和其他不可撤销的数据。用户可以使用交易来调用和执行智能合约。交易是指用户之间或用户与金融实体之间的任何通信。例如,交易可以指商品或服务的购买或销售、商品或服务的提供或退回、支付交易、信用交易或其他类似交互。交易也可以称为“交易请求”、“贸易”或“买卖”。
在一些实施例中,智能合约是在以太坊环境中实施、部署和执行的合约。智能合约是法律合约的数字化。智能合约在以太坊虚拟机或各种区块链节点内部署、存储和执行。智能合约可以存储数据。存储的数据可被用于记录实现真实世界合约的逻辑所需的信息、事实、关联、余额和任何其他信息。智能合约可类似于面向对象的类。智能合约可以调用另一智能合约,如面向对象的对象,以创建和使用另一类的对象。
区块链技术已被用于实现各种服务的优化,诸如智能合约中的交易服务。图1示出了根据各种实施例的示例性区块链。如图1所示,区块链100可包括多个数据区块102。每个区块可以经由加密哈希值链接到前一区块。例如,区块2经由区块1的哈希值106链接到区块1,区块n经由另一区块n-1的哈希值链接到区块n-1。每个区块102还包括数据结构。数据结构可以包括,例如,对应于智能合约的执行结果的数据104,例如账户余额、支付收据。在新数据被提交和验证时,包括新数据的附加区块可以被产生并通过包括前一块的哈希值而被附加到区块链100的最后一个区块。
在一些实施例中,在接收到未确认交易的交易请求时,在区块链网络(例如,一个或多个节点)通过共识验证未确认交易并将交易打包到区块链之前,区块链节点将交易请求暂时存储在存储器池中(下面参考图2B更详细地描述)。在某些时候,存储器池可以存储许多未确认交易。在区块链共识网络将交易打包到区块链中之前,执行存储器池中未确认交易的顺序并未确定。交易的排序影响执行智能合约的最终结果,这被称为交易排序依赖(TOD)。
在本公开的上下文中进一步描述了TOD问题。在一些实施例中,区块链中的数据区块可以包含与智能合约相关的一组交易。在区块链的每次更新期间,智能合约的状态可以被更新若干次。在一个示例中,区块链当前处于状态σ,要添加到区块链的新数据区块包括由(Ti,Tj)表示的两笔交易,它们分别调用相同的智能合约。由于两笔交易的执行顺序不确定,当两笔交易各自调用智能合约的执行时,不能确定智能合约的确切状态。例如,当交易Ti调用智能合约时,它无法确定合约是否处于状态σ,或者合约是否已基于交易Tj的调用而被执行,从而合约的状态已经改变换句话说,当交易Ti调用智能合约时,智能合约可以处于状态σ或处于状态σ′。类似地,当交易Tj调用相同的智能合约时,智能合约可以处于状态σ,或者合约已根据交易Ti的调用而被执行并且已经完成了状态转换因此,两笔交易调用时智能合约的状态取决于交易Ti和Tj的执行排序。
当交易意图调用合约时智能合约的初始状态与当由于交易调用而发生相应的执行时智能合约的实际状态之间可能存在差异。区块链节点(例如,区块链矿工)可以确定这些交易的执行顺序,从而确定区块的更新顺序。换句话说,智能合约的最终状态可以取决于区块链节点的调用顺序。这被称为TOD。
TOD会导致执行智能合约的安全风险。首先,如果存在智能合约的同时调用,即使合约的调用是非恶意的,调用也可能相互干扰并且给通过交易调用合约的用户带来意外的结果。其次,恶意用户可以利用智能合约的TOD来获得不公平的利益,甚至窃取其他用户的资产。例如,卖方可以在买方提交购买交易并且期望在涨价前以初始价格购买的同一时间段内提交销售交易以提高价格。在销售交易和购买交易将被添加到区块链的同一区块的这种情况下,如果在购买交易之前执行销售交易,则买方可能最终支付上涨的价格。
在以太坊的背景下,一些方法诸如批量拍卖和预提交已被用于解决TOD问题。虽然批量拍卖方案可以解决TOD问题并防止高频交易,但是牺牲了单笔交易的执行效率。一次交易失败将导致所有提交的交易失败。在交易的正式执行之前预提交交易可以避免TOD的风险。但是,预提交方案要求双方在执行前就结果达成共识,从而降低了执行效率。这两种方案都没有从根本上解决TOD问题。
本方法和系统提供至少减轻TOD问题的技术方案。所公开的操作类型表示必须取决于计算机系统并且在计算机出现之前不存在的技术。所公开的方法和系统还通过增强执行区块链智能合约的安全性来提高计算机的功能。即使当智能合约的交易被区块链矿工以任意顺序实施时,本系统和方法也使得交易对智能合约的调用能够返回预期结果或执行异常。意外结果可以得到避免。例如,当用户(例如,买方)提交请求以某一价格购买产品的交易时,调用智能合约的购买交易的结果可以是以所请求的价格完成商品的购买,或者如果由于另一笔交易的实施而在智能合约中价格已经改变,则返回失败。因此,买方的交易不会以买方不期望的改变的价格实施。因此,可以避免通过欺诈交易或来自卖方的交易操纵实现的资产的未授权转移。
图2A示出了根据各种实施例的示例性计算环境,例如,用于在区块链上执行智能合约的区块链网络200。如图2A所示,区块链网络200可以包括可通过一个或多个网络彼此通信的多个节点202、池数据库230以及一个或多个用户计算设备240。示例性网络220(例如,因特网上的有线或无线连接等)可以使用一个或多个通信协议,例如,蜂窝、WiFi和其他通信协议。网络220可以基于对等和/或客户端/服务器模型。在一些实施例中,多个节点202可以包括计算设备,每个计算设备包括一个或多个处理器204以及耦接到一个或多个处理器204的一个或多个存储器206(例如,存储指令的一个或多个非暂时性计算机可读存储介质)。节点202可以是用于提高智能合约的安全性的示例性系统。一个或多个存储器可以配置有可由一个或多个处理器执行以使系统(例如,一个或多个处理器)执行本文描述的操作的指令。在一些实施例中,处理器204可以部分地或完全地实现为一个或多个逻辑电路。在一些实施例中,节点202和用户计算设备240可以包括其他计算资源和/或访问其他计算资源(例如,经由一个或多个连接/网络)。
在一些实施例中,节点202可以包括智能合约执行引擎(例如,以太坊虚拟机)。智能合约执行引擎可以包括存储在存储器206上并且可由处理器204执行的指令或程序代码。当智能合约执行引擎由处理器204执行时,智能合约执行引擎应用智能合约的参数来执行智能合约。在一些实施例中,用户计算设备204可以存储指令或程序代码,当由用户计算设备204上的处理器执行时,所述指令或程序代码使得用户计算设备204在用户计算设备240上呈现调用界面。调用界面被配置为使用户能够调用智能合约来实现交易请求。调用界面可以被配置为允许用户输入保护条件(例如,商品的价格条件)以及用户提交的交易。智能合约执行引擎可以被配置为确定智能合约的状态是否满足通过用户输入与交易一起提交的保护条件。
在一些实施例中,池数据库230可以以分布式的方式被多个节点202访问。例如,池数据库230可以分别存储在多个节点202的存储器206中。参考图2B,示出了根据各种实施例的示例性池数据库230。池数据库230可以存储由用户操作的一个或多个用户计算设备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,并且一个或多个节点202可以涉及处理一笔交易。节点202的单数形式可以表示一个或多个节点。
替代节点202,专用以太坊虚拟机(例如,安装在一个或多个计算机或服务器中)可以执行本文描述的各种步骤。以太坊虚拟机可以包括一个或多个处理器以及一个或多个非暂时性计算机可读存储器,一个或多个非暂时性计算机可读存储器耦合到一个或多个处理器并配置有可由一个或多个处理器执行以使以太坊虚拟机执行本文所述的操作的指令。可选地,可以使用其他类型的虚拟机或软件来代替以太坊虚拟机。
在一些实施例中,节点202可以通过用户计算设备240从用户接收交易。节点202还可以从用户接收保护条件连同交易。在一些实施例中,用户计算设备240的调用界面可以指示用户向用户的交易添加保护条件。可选地,节点202可以基于用户提交的交易的内容产生保护条件。保护条件可以是商品或服务的价格、商品或服务的数量、商品的运送时间或服务的交付等。在一些实施例中,提交的交易被存储在池数据库230中以用于成组执行。与保护条件相关的交易可涉及调用智能合约。例如,用户是提交调用智能合约的交易的买方,智能合约请求以1美元的价格购买10单位的商品。与交易相关的保护条件可以是商品的价格是一美元(或诸如小于一美元的范围),当不满足保护条件时不能实施交易。
保护条件可被添加到交易以避免由于TOD导致的非预期结果。保护条件也可以称为执行条件、执行保护条件、或条件。在一些实施例中,通过针对保护条件检查智能合约的状态,节点202可以实施调用智能合约的交易以返回预期结果或返回失败,从而避免非预期的结果,例如,以非预期的价格购买商品或服务。换句话说,保护条件可被定义为保护用户免于进入非预期的交易,例如,价格上涨的交易。
在一些实施例中,节点202可以确定智能合约的当前状态。例如,智能合约的状态也可以称为区块链的世界状态。区块链的世界状态可以反映关于在区块链上执行的所有交易的最新状态。例如,每次一组交易已经实现时,可以更新区块链的世界状态以反映实现。节点202可以基于保护条件和智能合约的当前状态来实施交易。基于交易的实施结果,节点202可以将智能合约的当前状态更新为另一状态(其可以与当前状态相同或不同)。基于保护条件和智能合约的当前状态的交易的实施可以包括以下多个方案。
在一些实施例中,节点202可以在执行交易T之前确定在智能合约的当前状态σ下是否满足交易保护条件c(例如,价格是一美元)。在智能合约的当前状态σ下,如果保护条件c未被满足则交易T可以被丢弃,如下面的等式(1)所示。在上面的示例中,在智能合约的当前状态σ下,如果商品的价格不是一美元(例如,由于执行先前的交易,价格已经上涨到两美元),则条件c未被满足,这笔交易可被丢弃。等式(1)也可以称为规则TX-STALE
其中,TX和T表示提交的交易;c表示交易TX或交易T的保护条件;σ表示区块链的世界状态;表示转换。在一些实施例中,如果在交易中没有指定保护条件,则可以认为交易不需要保护条件。
在一些实施例中,在交易要调用的智能合约的当前状态σ下,如果交易的保护条件c被满足(σ∈c),则节点202可以将智能合约的余额更新值v。例如,节点202可以向余额添加值v或从余额减去值v。值v可以是基于交易内容确定的值。在一些实施例中,智能合约可以与存储在区块链网络200中的库存(inventory)相关,例如,池数据库230,或者一个或多个节点202。库存可以存储交易项目的数量、它们的价格以及项目的其他相关信息。智能合约的余额可以指项目之一的数量。因此,当智能合约的当前状态满足交易条件时,节点202可以更新智能合约的余额(例如,库存项目的数量)以临时保留通过交易要购买或出售的项目的数量。在上面的示例中,在智能合约的当前状态σ下,如果商品的价格是一美元,则交易的保护条件c被满足,节点202可以通过从余额减去要购买的10个单位的商品来更新智能合约的余额。
在另一个示例中,如果卖方提交了根据智能合约销售商品(例如,15个单位的商品)的交易,如果智能合约的当前状态满足与卖方的交易相关的保护条件(例如,合约价格与交易的销售价格相匹配),则节点202可以通过将15个单位的商品添加到智能合约的余额而基于销售的商品的数量来更新智能合约的余额。在一些实施例中,节点202还可以更新卖方或买方的余额。例如,节点202可以将购买的商品的数量添加到买方的余额,并且从卖方的余额减少销售的商品的数量。
在一些实施例中,如果智能合约的余额更新成功,则节点202可以将智能合约的当前状态σ改变为过渡状态σ′。例如,区块链的世界状态可以从状态σ变为过渡状态σ′。如果智能合约余额更新失败(例如,没有足够的智能合约的库存来提供要购买的商品的数量),则交易不能继续,并且节点202可以丢弃交易。智能合约的状态可以保持在状态σ。
在一些实施例中,当智能合约余额更新成功时,节点202可以通过调用或调出智能合约的相应代码来执行交易。例如,节点202可以执行临时存储在池数据库230中的一组交易,其中该组交易包括具有已针对智能合约的状态检查的保护条件的交易。在一些实施例中,组中要执行的交易可以各自具有保护条件。在一些实施例中,组中的一些交易可以不具有保护条件,节点202假设这些交易已经通过如上所述的条件检查。以这种方式,区块链网络200或节点202可以执行现有的智能合约,其可以没有保护条件。
在一些实施例中,当执行智能合约时,与交易相关的参数l可以被传递到智能合约的一个或多个进程或函数中,可以执行智能合约的一个或多个进程或函数。如果智能合约的执行可以完成,则节点202可以将智能合约的状态从过渡状态σ′改变为结束状态σ″。因此,交易的实施已经完成。这样的处理可以由以下等式(2)表示。
其中,TX和T表示提交的交易;c表示交易TX或交易T的保护条件;id表示区块链中智能合约的地址;M表示智能合约执行代码或智能合约执行代码的一部分;l表示智能合约调用参数;bal代表智能合约的账户余额;σ[id]表示在状态σ下地址id处的相应智能合约代码;σ[id][bal]表示在状态σ下在地址id处智能合约的账户余额;σ、σ′和σ″表示区块链的三个世界状态;←表示赋值;→和表示转换;ε表示用于执行智能合约执行代码M的调用堆栈。
在一些实施例中,在智能合约的过渡状态σ′下,如果智能合约的执行无法完成,并且发生执行异常,则节点202可以将智能合约的过渡状态σ′恢复为状态σ。例如,区块链的世界状态可以从过渡状态σ′恢复到初始状态σ。当执行进程中出现错误或满足当前条件时,可能会发生执行异常。例如,执行已运行超过预定时间并且仍在运行(也称为执行超时),或者要购买的商品的数量多于智能合约的库存等。在一些实施例中,节点202可以返回指示交易执行失败的执行异常<e>exc。这种情况可以在下面的等式(3)中描述。
其中,TX和T表示提交的交易;c表示交易TX或交易T的保护条件;id表示区块链中智能合约的地址;M为机器代码并且表示智能合约执行代码;l表示智能合约调用参数;bal代表智能合约的账户余额;σ[id]表示在状态σ下地址id处的相应智能合约代码;σ[id][bal]表示在状态σ下在地址id处智能合约的账户余额;σ、σ′和σ″表示区块链的三个世界状态;←表示赋值;→和表示转换;ε表示用于执行智能合约执行代码M的调用堆栈;<e>exc表示交易的执行异常。
等式(1)-(3)中描述的示例性方案确保提交交易的各方获得预期的输出或交易的失败。买方可以确信不会支付超过他们发出购买订单时同意的价格。此外,该方案可以反向兼容(backward-compatible)。在现有的智能合约中,保护条件可以默认设置为“真”,因此不需要改变现有的智能合约代码以应用等式(1)-(3)中描述的方案。
参照图3,示出了根据各种实施例的示例性智能合约执行模型300。示例性智能合约执行模型300可以是上文参考如图2A-2B所述的方案的应用,并且可以由区块链网络200中的一个或多个实体(例如,节点202、用户计算设备240和池数据库230)来实现。如图3所示,卖方已经提交了交易“TxB”,买方基本上在同一时段内提交了交易“TxA”。时间段可以是区块链接受交易的提交以进行验证的时间段。在一些实施例中,两笔交易已临时存储在池数据库230中。在商品的价格固定为5美元(“c='p==5'”)的保护条件下,交易“TxA”为调用智能合约“X”的“购买”进程从而以5美元(“p=5”)的价格购买两单位的商品(在交易“TxA”中由“g=2”表示)。另一方面,卖方提交的交易“TxB”为执行智能合约“X”的“销售”进程从而以6美元的价格(“p=6”)出售所有单位的商品(例如,50个单位,并由“g=50”表示)。
在不知道卖方的交易“TxB”存在的情况下,买方了解到当前合约价格为5美元,因此预期以5美元的价格完成交易“TxA”。如果买方的交易“TxA”首先执行,则交易“TxA”的保护条件满足,并且交易“TxA”可以正常地实施。然而,如果卖方的交易“TxB”首先执行,则智能合约“X”中的所有单位的商品的价格增加到6美元,并且智能合约“X”的状态被转换为新状态。因此,如果随后在智能合约“X”的新状态下执行买方的交易“TxA”,则买方的交易“TxA”的保护条件“c='p==5'”不满足,因此买方的交易“TxA”终止,因为买方和卖方尚未达成价格协议。
与以太坊中的批量拍卖和预提交的方法相比,现有的基于条件保护的交易执行机制通过为每笔交易设置执行条件来避免交易之间的排序依赖,因此不会影响单笔交易的执行效率。此外,所公开的系统和方法防止了由于预提交方法带来的多个执行阶段引起的额外成本。
图4示出了根据各种实施例的用于智能合约执行的示例性方法400的流程图。方法400可以由包括例如图2A的区块链网络200的一个或多个部件的系统实现。示例性方法400可以由节点202、用户计算设备240和/或以太坊虚拟机中的一个或多个来实现。示例性方法400可以由节点202的一个或多个部件(例如,处理器、进程和存储器组合、一个或多个逻辑电路等)实现。方法400可以由与环境200类似的多个系统实现。以下给出的方法400的操作旨在是说明性的。取决于实施方式,示例性方法400可以包括以各种顺序或并行执行的附加、更少或替代步骤。
框402包括:获得都调用智能合约的第一交易(例如,TxA)和第二交易(例如,TxB),其中:第一交易与保护条件相关。在一些实施例中,执行第二交易可以改变智能合约的当前状态(例如,交易项目的价格)。在一些实施例中,保护条件基于第一交易自动生成。在一些实施例中,保护条件由提交第一交易的计算设备提交。在一些实施例中,当例如在池数据库中接收到第一交易和第二交易时,可以存在或可以不存在执行第一交易和第二交易的顺序。第二笔交易可以有或者可以没有保护条件。
在一些实施例中,当前状态包括智能合约的交易项目的当前价格;保护条件与交易项目的价格范围(例如,预设价格)、数量范围或时间范围相关。例如,第一交易与价格范围的交易项目的购买订单相关;第二交易与销售交易项目的销售订单相关。
在一些实施例中,区块链节点(例如,节点202)被配置为周期性地(例如,每隔10分钟)收集未确认交易以存储在池数据库中;并且获得第一交易和第二交易,包括:从池数据库中的未确认交易池中获得第一交易和第二交易。收集和存储未确认交易的节点不一定是从池数据库获得未确认交易的节点。未确认交易池没有执行顺序,在从池数据库获得未确认交易池并且执行以下步骤之后,可以确定执行的顺序。
在一些实施例中,区块链节点(例如,节点202)各自包括用于存储区块链的副本作为账本的存储器;为了维护数据区块的区块链,区块链节点被配置为当新数据区块或另一新数据区块被添加到区块链时更新账本。
框404包括:执行第二交易并更新智能合约的当前状态。第一交易和第二交易可以被随机选择以供执行。此框描述第二个交易被首先选择的场景。
可选地,在一些实施例中,第一交易可以在第二交易之前执行,并且更新智能合约的当前状态。
框406包括:确定智能合约的更新的当前状态是否满足保护条件。
框407包括:响应于确定更新的当前状态满足保护条件,执行第一交易,并将第二交易和第一交易记录到新数据区块中以添加到区块链。
框408包括:响应于确定更新的当前状态不满足保护条件,将第二交易记录到另一新数据区块中以添加到区块链,而不执行第一交易。在一些实施例中,框408还包括:响应于确定更新的当前状态不满足保护条件,将执行异常返回到提交第一交易的计算设备。
在一些实施例中,当前状态可以通过任何因素改变,不限于先前交易(例如,第二交易)。例如,计算机实现的用于提高智能合约安全性的方法包括:获得调用智能合约的第一交易,其中,第一交易与保护条件相关;确定智能合约的当前状态是否满足保护条件;响应于确定当前状态满足保护条件,执行第一交易,并将第一交易记录到数据区块中以添加到区块链;以及响应于确定当前状态不满足保护条件,不执行第一交易。
图5示出了根据各种实施例的用于实现交易的示例性方法500的流程图。方法500可以在包括例如图2A的区块链网络200的各种系统中实现。示例性方法500可以由节点202和用户计算设备240实现。方法500可以由类似于区块链网络200的多个系统实现。方法500的操作可以是图4中的框406和框407的实施例。下文给出的方法500的操作旨在是说明性的。取决于实施方式,示例性方法500可以包括以各种顺序或并行执行的附加、更少或替代步骤。
在框502处,可以确定智能合约的当前状态(也称为第一状态)是否满足交易的条件(例如,在图4中的框402处接收到的交易的条件)。当前状态可以是图4中的框406中的“更新的当前状态”。例如,条件可以是商品的价格被固定在交易中限定的值。在框504处,如果确定智能合约的第一状态不满足交易的条件,则可以放弃交易。例如,在智能合约的第一状态下,如果商品的价格已经改变为与交易中限定的价格不同的值,则不满足条件并且可以放弃交易。
在框506处,如果确定智能合约的第一状态满足交易的条件,则可以更新智能合约的余额。在框508处,可以确定智能合约的余额是否更新成功。如果更新失败,则交易可被放弃,如框504所示。在框510处,如果智能合约的余额更新成功,则智能合约的第一状态可以改变为第二状态。在框512处,交易可以通过基于与交易相关的参数执行智能合约来实现。例如,与交易相关的参数的值可被传递给智能合约的一个或多个进程,并且可以执行一个或多个进程。
在框514处,确定智能合约是否执行成功。在框516处,如果确定智能合约执行成功,则智能合约的状态可以改变为第三状态。交易已成功实施。在框518处,如果智能合约执行失败,则可以返回执行异常。在框520处,智能合约的状态可以改变回第一状态。在一些实施例中,图4中的框407包括图5中的框506-516。
本文所述的技术通过一个或多个专用计算设备实现,专用计算设备可以为台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、网络设备或任何包含硬接线和/或程序逻辑以实现这些技术的其他设备或设备的组合。
图6是示出了可在其中实施本文所述任一实施例的示例性计算机系统600的框图。系统600可以对应于以上参考图2A描述的节点202或用户计算设备240。计算机系统600包括总线602或其他用于传送信息的通信机制、与总线602耦合的用于处理信息的一个或多个硬件处理器604。硬件处理器604可以为,例如,一个或多个通用微型处理器。
计算机系统600还包括主存储器606,例如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备,其耦合到总线602用于存储信息和将被处理器604执行的指令。主存储器606还可以用于存储在执行将由处理器604执行的指令期间的临时变量或其他中间信息。此种指令,当存储于可由处理器604访问的存储介质中时,致使计算机系统600变成被定制为执行指令指定的操作的专用机器。计算机系统600还包括耦合到总线602的、用于存储用于处理器604的静态信息和指令的只读存储器(ROM)608或其他静态存储设备。存储设备(storage device)610,例如磁盘、光盘或USB拇指硬盘(闪存)等,被提供并耦合至总线602用于存储信息和指令。
计算机系统600可以使用与计算机系统组合促使计算机系统600作为专用机器或将计算机系统600编程为专用机器的定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文所述的技术。根据一实施例,本文所述的操作、方法和处理由计算机系统600响应于处理器604执行包含在主存储器606中的一个或多个指令的一个或多个序列而执行。这样的指令可以从另一存储介质,如存储设备610,被读入主存储器606。执行包含在主存储器606中的指令的序列促使处理器604执行本文所述的处理步骤。在可选实施例中,硬接线电路可以代替软件指令或与其组合使用。
处理器604可以对应于上述处理器204,且主存储器606、ROM 608和/或存储610可以对应于上述存储器206。主存储器606、ROM 608和/或存储610可以包括非暂态存储介质。本文使用的术语“非暂态介质”和类似术语指代存储促使机器以特定方式运行的指令和/或数据的任何介质。这样的非暂态介质可以包括非易失性介质和/或易失性介质。非易失性介质包括,例如,光盘或磁盘,如存储设备610。易失性介质包括动态存储器,例如主存储器606。常规形式的非易失性介质包括,例如,软磁盘、软盘、硬盘、固态硬盘、磁带或其他任何磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有穿孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储芯片或盒式磁带、以及以上的网络版本。
计算机系统600还包括耦合到总线602的通信接口/网络端口618。通信接口/网络端口618提供耦合到连接至一个或多个本地网络的一个或多个网络链路的双向数据通信。例如,通信接口/网络端口618可以为综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或用以提供至对应类型的电话线路的数据通信连接的调制解调器。作为另一示例,通信接口/网络端口618可以为局域网(LAN)卡,以提供至可兼容LAN(或与WAN通信的WAN组件)的数据通信连接。也可以实施无线链路。在任何这样的实施方式中,通信接口/网络端口618发送并接收电的、电磁的或光学信号,该信号携带代表各种类型的信息的数字数据流。
计算机系统600可以通过网络、网络链路和通信接口/网络端口618发送并接收包括程序代码的数据。在互联网示例中,服务器可以通过互联网、ISP、本地网络和通信接口/网络端口618传输所请求的用于应用程序的代码。代码被接收后,所接收的代码可以由处理器604执行,和/或存储在存储设备610中,或其他非易失性存储设备中用于随后的执行。
先前部分中描述的每个方案、机制、解决方案、处理、方法和算法可以嵌入由一个或多个包括计算机硬件的计算机系统或计算机处理器执行的代码模块并由该代码模块全部或部分地自动化操作。处理和算法可以部分或整体地在专用电路中实现。在一些实施例中,处理器604可以部分或整体地实现为上述一个或多个逻辑电路。
上述各种特征和处理可以独立于彼此使用或以各种方式组合使用。所有可能的组合和子组合旨在落入本公开范围内。此外,可以在一些实施例中省略特定方法或处理方框。本文所述的方法和处理也不限制于任何特定次序,且与之有关的状态或方框可以以其他合适的次序进行。例如,所描述的方框或状态可以按不同于所特定公开的顺序执行,或多个方框或状态可以组合在单个方框或状态中。示例方框或状态可以按连续、并行或一些其他方式执行。可以向所公开的示例实施例添加方框或状态或从其中移除方框或状态。本文所述的示例系统和组件可以被配置为不同于所描述的那样。例如,对比于公开的示例实施例,可以向其中添加、从中移除或重新排列元件。
可以通过算法至少部分地执行本文所述的示例方法的各种操作。算法可以包括在存储于存储器(例如,上述非暂态计算机可读存储介质)中的程序代码或指令中。这样的算法可以包括机器学习算法。在一些实施例中,机器学习算法可以不确切地将计算机编程以执行功能,但可以从训练数据中学习以建立执行该功能的预测模型。
本文所述的示例方法的各种操作可以至少一部分地由一个或多个处理器执行,所述一个或多个处理器暂时性地配置(例如,通过软件)为或永久性地配置为执行相关操作。无论暂时性地还是永久性地配置,这样的处理器都可以构建进行操作以执行本文所述的一个或多个操作或功能的由处理器实现的引擎。
类似地,本文所述方法可以至少一部分地由处理器实现,其中特定处理器或多个处理器作为硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或者由处理器实现的引擎执行。此外,一个或多个处理器还可以进行操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务(SaaS)”。例如,至少一些操作可以由一组计算机(例如包括处理器的机器)执行,这些操作可经由网络(例如互联网)并且经由一个或多个合适的接口(例如应用程序接口(API))访问。
特定操作的性能可以在处理器之间分配,即不仅驻留于单个机器中,而且部署在多个机器上。在一些示例实施例中,处理器或由处理器实现的引擎可以位于单个地理位置(例如,在家庭环境、办公环境或服务器群中)。在其他示例实施例中,处理器或由处理器实现的引擎可以分布在多个地理位置。
在整个说明书中,多个示例可以实现被描述为单个示例的组件、操作或结构。尽管一个或多个方法的各个操作被示出为或描述为单独的操作,但是可以同时执行单独操作中的一个或多个,且无需按所示顺序执行操作。示例配置中作为单独组件呈现的结构和功能可以实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以实现为单独的组件。这些和其他变化、修改、附加和改进都落入本文主题的范围内。
本文所描述的和/或附图中所描绘的任何处理描述、元件或流程图中的方框应被理解为潜在地表示包括用于实现处理中的特定逻辑功能或步骤的一个或多个可执行指令的模块、片段或代码的部分。可选实施方式包括在本文所描述的实施例的范围内,其中元件或功能可以取决于所涉及的功能,如本领域人员理解的那样,按所示出或讨论的顺序之外的顺序被删除或执行,包括基本上同时或以相反的顺序。
尽管已经参考特定示例实施例描述了主题的概况,还是可以在不脱离本公开的实施例的宽泛范围的情况下,对这些实施例进行修改和改变。本主题的这些实施例可以单独地或共同地通过术语“发明”在本文中仅仅为了方便而提及,并且如果实际上不止一个被公开,则不旨在将本申请的范围主动地限制于任何单个公开或概念。
以充足的细节描述了本文所示出的实施例,使得本领域技术人员能够实现所公开的教导。可以使用其他实施例或从中推导出其他实施例,使得可以在不脱离本公开范围的情况下产生结构和逻辑替换和变化。因此,具体实施方式不应被视为具有限制意义,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

Claims (20)

1.一种计算机实现的用于提高智能合约的安全性的方法,包括:
获得都调用智能合约的第一交易和第二交易,其中,所述第一交易与保护条件相关;
执行所述第二交易并更新所述智能合约的当前状态;
确定所述智能合约的所述更新的当前状态是否满足所述保护条件;
响应于确定所述更新的当前状态满足所述保护条件,执行所述第一交易,并将所述第二交易和所述第一交易记录到数据区块中以添加到区块链;以及
响应于确定所述更新的当前状态不满足所述保护条件,将所述第二交易记录到另一数据区块中以添加到所述区块链,而不执行所述第一交易。
2.根据权利要求1所述的方法,还包括:
响应于确定所述更新的当前状态不满足所述保护条件,将执行异常返回给提交所述第一交易的计算设备。
3.根据权利要求1所述的方法,其中:
所述当前状态包括所述智能合约的交易项目的当前价格;以及
所述保护条件与所述交易项目的价格范围、数量范围或时间范围相关。
4.根据权利要求3所述的方法,其中:
所述第一交易与在所述价格范围内的所述交易项目的购买订单相关;以及
所述第二交易与销售所述交易项目的销售订单相关。
5.根据权利要求1所述的方法,其中:
所述保护条件是基于所述第一交易自动产生的。
6.根据权利要求1所述的方法,其中:
所述保护条件由提交所述第一交易的计算设备提交。
7.根据权利要求1所述的方法,其中:
获得所述第一交易和所述第二交易,包括:从池数据库获得所述第一交易和所述第二交易。
8.根据权利要求1所述的方法,其中:
多个节点各自包括用于存储所述区块链的副本作为账本的存储器;以及
所述节点被配置为在将所述新数据区块或所述另一新数据区块添加到所述区块链时更新所述账本。
9.一种用于提高智能合约的安全性的系统,包括一个或多个处理器及一个或多个非暂时性计算机可读存储器,所述一个或多个非暂时性计算机可读存储器耦接到所述一个或多个处理器并配置有能够由所述一个或多个处理器执行以使所述系统执行以下操作的指令,所述操作包括:
获得都调用智能合约的第一交易和第二交易,其中,所述第一交易与保护条件相关;
执行所述第二交易并更新所述智能合约的当前状态;
确定所述智能合约的所述更新的当前状态是否满足所述保护条件;
响应于确定所述更新的当前状态满足所述保护条件,执行所述第一交易,并将所述第二交易和所述第一交易记录到新数据区块中以添加到所述区块链;以及
响应于确定所述更新的当前状态不满足所述保护条件,将所述第二交易记录到另一新数据区块中以添加到所述区块链,而不执行所述第一交易。
10.根据权利要求9所述的系统,其中,所述系统进一步被促使执行:
响应于确定所述更新的当前状态不满足所述保护条件,将执行异常返回至提交所述第一交易的计算设备。
11.根据权利要求9所述的系统,其中:
所述当前状态包括所述智能合约的交易项目的当前价格;以及
所述保护条件与所述交易项目的价格范围、数量范围或时间范围相关。
12.根据权利要求11所述的系统,其中:
所述第一交易与在所述价格范围内的所述交易项目的购买订单相关;以及
所述第二交易与销售所述交易项目的销售订单相关。
13.根据权利要求9所述的系统,其中:
所述保护条件是基于所述第一交易自动产生的。
14.根据权利要求9所述的系统,其中:
所述保护条件由提交所述第一交易的计算设备提交。
15.一种非暂时性计算机可读存储介质,配置有能够由一个或多个处理器执行以使所述一个或多个处理器执行以下操作的指令,所述操作包括:
获得都调用智能合约的第一交易和第二交易,其中,所述第一交易与保护条件相关;
执行所述第二交易并更新所述智能合约的当前状态;
确定所述智能合约的所述更新的当前状态是否满足所述保护条件;
响应于确定所述更新的当前状态满足所述保护条件,执行所述第一交易,并将所述第二交易和所述第一交易记录到数据区块中以添加到区块链;以及
响应于确定所述更新的当前状态不满足所述保护条件,将所述第二交易记录到另一数据区块中以添加到所述区块链,而不执行所述第一交易。
16.根据权利要求15所述的存储介质,所述处理器被促使进一步执行:
响应于确定所述更新的当前状态不满足所述保护条件,将执行异常返回至提交所述第一交易的计算设备。
17.根据权利要求15所述的存储介质,其中:
所述当前状态包括所述智能合约的交易项目的当前价格;以及
所述保护条件与所述交易项目的价格范围、数量范围或时间范围相关。
18.根据权利要求17所述的存储介质,其中:
所述第一交易与所述价格范围内的所述交易项目的购买订单相关;以及
所述第二交易与销售所述交易项目的销售订单相关。
19.根据权利要求15所述的存储介质,其中:
所述保护条件是基于所述第一交易自动产生的。
20.根据权利要求15所述的存储介质,其中:
所述保护条件由提交所述第一交易的计算设备提交。
CN201880011028.1A 2018-11-27 2018-11-27 提高区块链上智能合约的安全性的系统和方法 Pending CN110291550A (zh)

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 (1)

Publication Number Publication Date
CN110291550A true CN110291550A (zh) 2019-09-27

Family

ID=66100130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880011028.1A Pending CN110291550A (zh) 2018-11-27 2018-11-27 提高区块链上智能合约的安全性的系统和方法

Country Status (14)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767097A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置、电子设备、存储介质
CN112529589A (zh) * 2021-02-10 2021-03-19 北京全息智信科技有限公司 一种长耗时区块链交易的处理方法、装置和电子设备
CN112580112A (zh) * 2021-02-26 2021-03-30 北京全息智信科技有限公司 一种基于全链共识、局部部署的智能合约实现方法、装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
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
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
AU2019267454A1 (en) 2018-05-06 2021-01-07 Strong Force TX Portfolio 2018, LLC Methods and systems for improving machines and systems that automate execution of distributed ledger and other transactions in spot and forward markets for energy, compute, storage and other resources
US11842322B2 (en) * 2018-08-22 2023-12-12 Equinix, Inc. Smart contract interpreter
US11880882B2 (en) * 2019-04-25 2024-01-23 Intellectual Frontiers Llc Computer-controlled marketplace network for digital transactions
GB2583738B (en) * 2019-05-07 2021-05-05 Arm Ip Ltd Content distribution integrity control
WO2020250206A1 (en) * 2019-06-14 2020-12-17 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
US11982993B2 (en) 2020-02-03 2024-05-14 Strong Force TX Portfolio 2018, LLC AI solution selection for an automated robotic process
EP3955224A1 (en) * 2020-08-14 2022-02-16 Nagravision S.A. Localized betting system and method
KR102670647B1 (ko) 2022-02-03 2024-05-31 충남대학교 산학협력단 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980649A (zh) * 2017-02-28 2017-07-25 阿里巴巴集团控股有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN107330701A (zh) * 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备
CN107392618A (zh) * 2017-07-28 2017-11-24 中链科技有限公司 植入智能合约的方法和设备

Family Cites Families (42)

* 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
EP3384455A1 (en) * 2015-11-30 2018-10-10 Innogy Innovation GmbH Supply medium (e.g. electrical power) transaction agreement system
WO2017145019A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
IL261210B (en) 2016-02-23 2022-08-01 Nchain Holdings Ltd An exchange based on a 'block chain' with tokenization
EP3437002A4 (en) 2016-03-31 2019-08-21 Clause, Inc. SYSTEM AND METHOD FOR CREATING AND EXECUTING LEGAL CONTRACTS PILOTED BY DATA
JP6370016B2 (ja) * 2016-03-31 2018-08-08 株式会社bitFlyer 階層型ネットワークシステム、これに用いられるノード及びプログラム
EP3437048B1 (en) 2016-04-01 2021-06-09 ConsenSys Software Inc. 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 대전보건대학 산학협력단 정맥수액 투약오류 예방을 위한 수액연결관 공기탐지 방법
JP6703918B2 (ja) * 2016-08-31 2020-06-03 ヤフー株式会社 生成プログラム、生成装置及び生成方法
US20180089760A1 (en) 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a multi-asset rebalancing mechanism
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
US10726346B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. System for performing compliance operations using cognitive blockchains
US10726343B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. 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 上海钜真金融信息服务有限公司 一种区块链智能合约定时任务调度方法
US20180218176A1 (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
CN107341702B (zh) * 2017-03-08 2020-06-23 创新先进技术有限公司 一种业务处理的方法及装置
US20180285810A1 (en) 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
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
JP6952506B2 (ja) * 2017-06-13 2021-10-20 株式会社野村総合研究所 検査装置
US10891694B1 (en) * 2017-09-06 2021-01-12 State Farm Mutual Automobile Insurance Company Using vehicle mode for subrogation on a distributed ledger
CN109508981A (zh) * 2017-09-15 2019-03-22 富士通株式会社 用于测试智能合约的方法和装置
US11144893B2 (en) 2017-10-30 2021-10-12 Nec Corporation Method and system for securing smart contracts in blockchains
CN107993069A (zh) 2017-12-13 2018-05-04 清华大学 一种基于区块链网络的在线交易方法及系统
US10896418B2 (en) * 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980649A (zh) * 2017-02-28 2017-07-25 阿里巴巴集团控股有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN107330701A (zh) * 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备
CN107392618A (zh) * 2017-07-28 2017-11-24 中链科技有限公司 植入智能合约的方法和设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767097A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置、电子设备、存储介质
CN111767097B (zh) * 2020-08-31 2020-12-11 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置、电子设备、存储介质
CN112529589A (zh) * 2021-02-10 2021-03-19 北京全息智信科技有限公司 一种长耗时区块链交易的处理方法、装置和电子设备
CN112529589B (zh) * 2021-02-10 2021-07-27 北京全息智信科技有限公司 一种长耗时区块链交易的处理方法、装置和电子设备
CN112580112A (zh) * 2021-02-26 2021-03-30 北京全息智信科技有限公司 一种基于全链共识、局部部署的智能合约实现方法、装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110291550A (zh) 提高区块链上智能合约的安全性的系统和方法
EP3411824B1 (en) Systems and methods for storing and sharing transactional data using distributed computer systems
KR101694455B1 (ko) 블록체인 기반의 디지털 가상화폐를 환전 또는 송금하기 위한 방법 및 장치
US20190354945A1 (en) Real-time buying, selling, and/or trading blockchain-based goods using traditional currency
CN109886677B (zh) 一种基于区块链的商品购置方法和装置
WO2017098519A1 (en) A system and method for automated financial transaction validation, processing and settlement using blockchain smart contracts
JP2022508450A (ja) スマートステーブコインを実装して暗号通過のトラストレススマートスワップを容易にするシステム及び方法
US11138597B2 (en) System and method for improving security of smart contract on blockchain
US11068996B2 (en) Managing insurance platforms on a distributed ledger
KR102447254B1 (ko) 고속 거래 체결을 지원하는 거래소 운영 방법 및 시스템
US20230088674A1 (en) Systems and methods for blockchain network congestion-adaptive digital asset event handling
WO2018192931A1 (en) Delivery versus payment mechanism
KR20190127270A (ko) 블록체인을 이용한 경매 신뢰 시스템
US20200111159A1 (en) Systems and methods for distributed ledger-based stock transactions
AU2019101593A4 (en) System and method for improving security of smart contract on blockchain
KR20200094365A (ko) 블록체인 기반 가상 지점을 이용한 디지털 자산 서비스 제공 시스템 및 방법
KR102004511B1 (ko) 영업점에서 전자 화폐로 결제하기 위한 서버 및 결제 컴퓨팅 장치
JP5812645B2 (ja) 電子商取引システム
KR102374522B1 (ko) 거래 위험 관리를 지원하는 거래소 운영 방법 및 시스템
KR20200094532A (ko) 블록체인 기반 가상 지점을 이용한 개인 대상 디지털 자산 서비스 제공 시스템 및 방법
JP2019153022A (ja) 電力取引支援システム
US20180075534A1 (en) System for Guaranteeing Interest
KR102447248B1 (ko) 다른 사용자와 연동하여 종목을 거래할 수 있는 시스템을 제공하는 거래소 운영 방법 및 시스템
KR20190111436A (ko) 암호화화폐를 사용할 때 실시간 환율을 반영하여 즉시 지급이 되도록 하는 시스템.
TWI854323B (zh) 商品的非同質化代幣交易系統

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40016369

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190927

RJ01 Rejection of invention patent application after publication