基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统技术方案

技术编号:18896055 阅读:78 留言:0更新日期:2018-09-08 11:42
本发明专利技术涉及一种基于外部数据构建多种触发机制以执行区块链中智能合约的方法及系统,其中该方法包括首先发布一智能合约于区块链网络中并等待至所述智能合约的所有参与方的确认完成;然后所述区块链网络中的触发组件根据所述智能合约中自定义的触发机制进行外部数据的调用,并在轮询到所述外部数据满足任一所述触发机制之后,向全网分布式节点发布交易广播信息;最后全网分布式节点分别对已触发智能合约对应的外部数据进行调用和校验。采用该发明专利技术中的基于外部数据构建多种触发机制以执行区块链中智能合约的方法及系统,能够实现区块链上智能合约对外部数据的调用,并以此作为对于相应智能合约的触发依据,保证所述智能合约一经触发即能够实现独立的、完整的执行,从而扩展智能合约实现对于复杂应用场景的支持。

A method and system for constructing intelligent contracts based on external data to implement various triggering mechanisms in block chain networks

The present invention relates to a method and system for constructing a variety of triggering mechanisms based on external data to execute an intelligent contract in a block chain, wherein the method includes first publishing an intelligent contract in a block chain network and waiting for the confirmation of all participants in the intelligent contract to be completed; and then the triggering component in the block chain network. According to the self-defined triggering mechanism in the intelligent contract, the external data is invoked, and after polling the external data to satisfy any triggering mechanism, the transaction broadcast information is issued to the distributed nodes of the whole network; finally, the distributed nodes of the whole network invoke and invoke the external data corresponding to the triggered intelligent contract respectively. Check. Using the method and system of constructing various triggering mechanisms based on external data in the invention to execute intelligent contracts in block chains, the invocation of external data by intelligent contracts on block chains can be realized, and the triggering basis for corresponding intelligent contracts can be used to ensure that the intelligent contracts can be independent once triggered. And complete execution, so as to extend the support of intelligent contracts for complex application scenarios.

【技术实现步骤摘要】
基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统
本专利技术涉及区块链
,尤其涉及外部触发机制
,具体是指一种基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统。
技术介绍
智能合约(smartcontract)这个术语是在1995年由多产的跨领域法律学者尼克·萨博(NickSzabo)提出来的。他将智能合约定义为:一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。但上述智能合约的定义一直没有得到完整的实现,主要的原因是缺少一种在执行过程中不受外界干扰,并且执行完成的结果能够不被篡改而有效保存的基础环境。这个情况在区块链技术发展的情况下得到改观,区块链通过密码学确定参与方,共识机制,以分布式网络为基础,以区块链的数据记录方式等技术手段满足了以上的条件。但目前区块链中的智能合约大都存在以下问题:1、只支持单一的触发方式不足以满足更多的应用场景的实现:当前的智能合约的触发机制都是以一笔向该合约地址转账的交易触发。而在实际应用中,存在大量的依赖于时间触发或者事件触发的应用场景,而这些应用在现有智能合约下实现是存在问题的。例如假如存在这样一种情况,从Alice和Bob在签订这个智能合约起,十天内如果上证指数超过3000点,那么智能合约完成Alice向Bob的支付,反之,智能合约将Alice保存在合约里的价值退回给Alice。如果Alice和Bob都确认这份智能合约即形成承诺,以Alice将约定的支付价值转入智能合约,交由合约存储保管开始,那么以现有的智能合约所具有的功能进行实现,需要有人在这十天里,上证指数超过3000点的时候,或者在上证指数始终不满足要求并在十天到期时,向该智能合约发起一笔触发交易,并将该情况以一种形式作为触发交易输入数据的一部分,通过触发交易输入给智能合约,这样这份智能合约才能够被激活和执行(参阅图1),我们知道,智能合约是通过一种以代码方式用数字化形式实现的承诺,并交由计算机或者网络来执行,那么保障一个智能合约能够完成承诺的执行一定需要满足以下两个条件:第一,从智能合约执行开始就不会因为任何原因中断合约的执行。第二,智能合约不会产生与预置条件和实际情况相违背的结果。这两个情况在这个过程中都有可能存在。首先目前智能合约只能由触发交易激活,这也就意味目前的智能合约不具有对外部条件判断,以及自我激活的能力。在刚才的应用场景中,它必须依赖于第504处有一笔以该智能合约为目标地址的交易,才能够触发智能合约进行后续的执行。这笔交易需要由一个来自现实世界中的个体发起,如果该个体与原定的智能合约利益有抵触,就可能造成无人再次激活该合约,从而造成智能合约中断的情况,这也就意味着体现为智能合约的承诺不能被完整地执行完成。人为环节带来的不确定因素对智能合约完整可靠的执行带来极大的风险。其次,外部数据是由第二次的交易以数据的方式输入给智能合约的,而智能合约没有途径也没有方式在第505处对该数据进行校对,只能对其进行计算。这也就意味着智能合约无法判断第504处所输入的情况是否真实的发生了,以至于按照恶意的错误数据智能合约将执行产生与实际情况相违背的错误结果。2、不支持对于系统外部数据的获取和响应能力:制约了现有的智能合约不能对外部数据,例如上述第1点中提到的约定的时间条件,和上证指数的事件条件的原因是,目前的智能合约机制都只设计了对系统内数据的获取,而没有设计对系统外部数据获取的途径,也就无法建立相应的能力。
技术实现思路
本专利技术的目的是克服了上述现有技术的缺点,提供了一种能够通过外部数据触发智能合约的基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统。为了实现上述目的,本专利技术的基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统具有如下构成:该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法,其主要特点是,所述的方法包括以下步骤:(1)发布一智能合约于区块链网络中并等待至所述智能合约的所有参与方的确认完成后,所述智能合约将处于待触发状态,以等待触发机制满足时被装载和执行;(2)所述区块链网络中的触发组件根据所述智能合约中自定义的触发机制进行外部数据的调用,并在轮询到所述外部数据满足任一所述触发机制之后,向全网分布式节点发布交易广播信息,以触发所述全网分布式节点对所述智能合约的装载和执行;(3)全网分布式节点分别对已触发智能合约对应的外部数据进行调用和校验,以及通过全网分布式节点的共识验证机制确保外部数据的真实性和触发所述智能合约的有效性,并在所述的触发机制通过所述的共识验证机制后完成对所述已触发的智能合约的装载和执行。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法的步骤(2)中,所述区块链网络中的触发组件根据所述智能合约中自定义的触发机制进行外部数据的调用具体为:所述的触发组件基于所述的全网分布式节点通过网络应用协议与外部数据源的API接口的连接关系,并根据所述智能合约中自定义的触发机制调用所述的外部数据。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法的步骤(2)中,所述的触发所述全网分布式节点对所述智能合约的装载和执行具体为:通过所述全网分布式节点中的一个节点确立所述外部数据和所述智能合约自定义的触发机制的满足关系,并向所述全网分布式节点发布交易广播信息,以完成所述全网分布式节点对所述智能合约的触发。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法的步骤(3)包括以下步骤:(3.1)所述的全网分布式节点中的一个节点执行已触发的智能合约,同时所述全网分布式节点中的其他节点根据所述的交易广播信息也执行所述已触发的智能合约,且执行所述已触发的智能合约时,每一个节点分别调用所述已触发的智能合约对应的外部数据,并对所述外部数据的预置响应条件进行校验;(3.2)通过共识验证机制在全网分布式节点间形成对所述已触发的智能合约是否满足触发机制的判断,如否,则返回至步骤(2),否则完成对所述已触发的智能合约的执行,并将执行结果记录到区块链网络的分布式账本中,至此结束整个过程。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法的步骤(2)中,所述的触发组件存储有所述区块链网络中各个智能合约的触发机制。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法的触发机制包括基于区块链网络的外部数据构建的时间触发机制和事件触发机制。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法的网络应用协议为http协议或socks协议。该基于外部数据构建多种触发机制以执行区块链网络中智能合约的系统,其主要特点是,所述的系统包括:外部数据调用模块,通过网络应用协议,与外部数据源的API接口相连接,以调用外部数据;触发组件模块,与所述的外部数据调用模块相连接,根据所述智能合约中自定义的触发机制进行外部数据的调用,并在轮询到所述外部数据满足任一所述触发机制之后,向全网分布式节点发布交易广播信息,以触发所述全网分布式节点对所述智能合约的装载和执行;外部数据验证模块,用于对已触发智能合约对应的外部数据进行验证,以及通过全网分布式节点的共识验证机制确保本文档来自技高网
...

【技术保护点】
1.一种基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法,其特征在于,所述的方法包括以下步骤:(1)发布一智能合约于区块链网络中并等待至所述智能合约的所有参与方的确认完成后,所述智能合约将处于待触发状态,以等待触发机制满足时被装载和执行;(2)所述区块链网络中的触发组件根据所述智能合约中自定义的触发机制进行外部数据的调用,并在轮询到所述外部数据满足任一所述触发机制之后,向全网分布式节点发布交易广播信息,以触发所述全网分布式节点对所述智能合约的装载和执行;(3)全网分布式节点分别对已触发智能合约对应的外部数据进行调用和校验,以及通过全网分布式节点的共识验证机制确保外部数据的真实性和触发所述智能合约的有效性,并在所述的触发机制通过所述的共识验证机制后完成对所述已触发的智能合约的装载和执行。

【技术特征摘要】
1.一种基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法,其特征在于,所述的方法包括以下步骤:(1)发布一智能合约于区块链网络中并等待至所述智能合约的所有参与方的确认完成后,所述智能合约将处于待触发状态,以等待触发机制满足时被装载和执行;(2)所述区块链网络中的触发组件根据所述智能合约中自定义的触发机制进行外部数据的调用,并在轮询到所述外部数据满足任一所述触发机制之后,向全网分布式节点发布交易广播信息,以触发所述全网分布式节点对所述智能合约的装载和执行;(3)全网分布式节点分别对已触发智能合约对应的外部数据进行调用和校验,以及通过全网分布式节点的共识验证机制确保外部数据的真实性和触发所述智能合约的有效性,并在所述的触发机制通过所述的共识验证机制后完成对所述已触发的智能合约的装载和执行。2.根据权利要求1所述的基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法,其特征在于,所述的步骤(2)中,所述区块链网络中的触发组件根据所述智能合约中自定义的触发机制进行外部数据的调用具体为:所述的触发组件基于所述的全网分布式节点通过网络应用协议与外部数据源的API接口的连接关系,并根据所述智能合约中自定义的触发机制调用所述的外部数据。3.根据权利要求2所述的基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法,其特征在于,所述的步骤(2)中,所述的触发所述全网分布式节点对所述智能合约的装载和执行具体为:通过所述全网分布式节点中的一个节点确立所述外部数据和所述智能合约自定义的触发机制的满足关系,并向所述全网分布式节点发布交易广播信息,以完成所述全网分布式节点对所述智能合约的触发。4.根据权利要求3所述的基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法,其特征在于,所述的步骤(3)包括以下步骤:(3.1)所述的全网分布式节点中的一个节点执行已触发的智能合约,同时所述全网分布式节点中的其他节点根据所述的交易广播信息也执行所述已触发的智能合约,且执行所述已触发的智能合约...

【专利技术属性】
技术研发人员:钱德君许国昌蒋斌吴建刚何曌君罗希
申请(专利权)人:上海分赋信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1