可访问多个区块链的智能合约的执行方法和系统技术方案

技术编号:19427381 阅读:21 留言:0更新日期:2018-11-14 10:59
本发明专利技术提供一种可访问多个区块链的智能合约的执行方法,包括:在包括多个节点的智能合约运行环境中对待执行智能合约进行验证和共识,其中每个节点对待执行智能合约进行签名,其中待执行智能合约包括至少一个执行任务,每个执行任务通过API与区块链进行交互;由每个区块链针对待执行智能合约验证用户的签名以及每个节点的签名;将通过验证的待执行智能合约存储到每个区块链中;执行合约时,得到待执行合约的至少一个执行任务;和当执行各个执行任务时,通过调用API访问区块链,得到执行结果和执行状态,每个节点对执行结果进行验证和共识后,将执行结果和执行状态存储到每个区块链上。

【技术实现步骤摘要】
可访问多个区块链的智能合约的执行方法和系统
本专利技术涉及区块链和智能合约
,更具体的,涉及一种基于共识机制的涉及多个区块链的智能合约的跨链执行方法和系统。
技术介绍
智能合约(以下也简称为“合约”)是一段代码和数据的集合,也叫“可编程合约”,即通过程序编码定义合约,预设执行条件,当触发执行条件时执行行为。其中的“智能”是执行上的智能,也就是说达到某个预设条件,合约自动执行。智能合约的本质是一些执行任务的集合,当满足合约中的触发条件或者预置条件后,会按照事先定义好的执行任务进行执行,一般情况下,执行任务可包括操作和交易,交易的执行是由用户发起的,用户对交易进行签名。
技术实现思路
专利技术要解决的问题然而,在传统方法中,智能合约的运行需要依附区块链系统,需要事先预存合约中涉及到的所有资源,需要在一个区块链中执行合约,但是这样会导致合约与区块链的耦合性强,不同区块链之间无法进行协同的操作,而且无法进行资源转移,资源的流动性差,因此当智能合约需要访问多个不同区块链时,无法很好地调度不同区块链的资源。有鉴于此,本专利技术提供了一种基于共识机制的智能合约的执行方法及系统,实现了一种能够访问多个不同区块链的自动、可靠性高、资源使用灵活的分布式智能合约的执行机制。解决问题的技术方案为达成上述目的,根据本专利技术的一个实施方式,一种可访问多个区块链的智能合约的执行方法,其特征在于,包括:智能合约运行环境验证共识步骤,在与区块链逻辑上分离的预先构建的包括多个节点的智能合约运行环境中,对携带有参与待执行智能合约的用户的签名的待执行智能合约进行验证和共识,在所述验证和共识中,每个节点对所述待执行智能合约进行签名,其中所述待执行智能合约包括至少一个执行任务,所述至少一个执行任务中的至少一部分与至少两个区块链相关联,每个执行任务通过其所关联的区块链的应用程序接口与该区块链进行交互;智能合约发送步骤,由智能合约运行环境将通过验证并达成共识的待执行智能合约发送到每个区块链中;区块链验证步骤,由每个区块链针对通过验证并达成共识的待执行智能合约,验证参与所述待执行合约的用户的签名以及每个所述节点对所述待执行智能合约的签名;智能合约存储步骤,将通过每个区块链的验证的待执行智能合约存储到每个区块链中;智能合约执行步骤,当执行各个执行任务时,由智能合约运行环境通过调用与该执行任务关联的区块链的应用程序接口访问该区块链,执行该执行任务,智能合约运行环境的每个所述节点对执行结果进行验证和共识,并将通过验证并达成共识的执行结果存储到每个区块链。优选的,在智能合约运行环境验证共识步骤中,智能合约运行环境中的每个节点对智能合约均进行验证,根据每个节点的验证结果,智能合约运行环境对所述智能合约达成共识。优选,当通过验证的节点数量占所有节点数量的比率大于预定量时,智能合约运行环境对所述智能合约达成共识。其中,所述预定量可以为1/2。此外,智能合约运行环境对合约进行验证时,可以对合约内容、所述用户的签名和合约哈希中的至少任一者进行验证。所述执行方法还可以包括:由区块链针对来自所述智能合约运行环境的通过验证并达成共识的待执行智能合约验证合约内容、合约哈希中的至少一者。在区块链验证步骤之前,所述执行方法还可以包括:智能合约运行环境读取并认证区块链的信息来确保待执行智能合约存储到区块链中。所述执行方法还可以包括:当智能合约运行环境检测到先前发送的待执行智能合约的版本超时且区块链还没有存入该待执行智能合约时,由合约运行环境重新将待执行智能合约发送给区块链。根据本专利技术的另一实施方式,一种可访问多个区块链的智能合约的执行系统,包括:应用端,在应用端处创建待执行智能合约;用于执行智能合约的智能合约运行环境,与应用端连接以接收所述待执行智能合约,所述智能合约运行环境包括用于对待执行智能合约和执行时的智能合约进行验证和共识的多个节点;与所述智能合约运行环境逻辑上分离的多个区块链,与智能合约环境连接进行交互;控制器,包括处理器和存储有程序指令的存储器,所述程序指令当被处理器执行时使得控制器被配置成与所述应用端、智能合约运行环境和区块链协同操作,执行如下步骤:智能合约运行环境验证共识步骤,在与区块链逻辑上分离的预先构建的包括多个节点的智能合约运行环境中,对携带有参与待执行智能合约的用户的签名的待执行智能合约进行验证和共识,在所述验证和共识中,每个节点对所述待执行智能合约进行签名,其中所述待执行智能合约包括至少一个执行任务,所述至少一个执行任务中的至少一部分与至少两个区块链相关联,每个执行任务通过其所关联的区块链的应用程序接口与该区块链进行交互;智能合约发送步骤,由智能合约运行环境将通过验证并达成共识的待执行智能合约发送到每个区块链中;区块链验证步骤,由每个区块链针对通过验证并达成共识的待执行智能合约,验证参与所述待执行合约的用户的签名以及每个所述节点对所述待执行智能合约的签名;智能合约存储步骤,将通过每个区块链的验证的待执行智能合约存储到每个区块链中;智能合约执行步骤,当执行各个执行任务时,由智能合约运行环境通过调用与该执行任务关联的区块链的应用程序接口访问该区块链,执行该执行任务,智能合约运行环境的每个所述节点对执行结果进行验证和共识,并将通过验证并达成共识的执行结果存储到每个区块链。专利技术效果根据本专利技术的技术方案,通过将智能合约和区块链分开,使得智能合约模块和区块链模块从逻辑上相互独立,使用智能合约和多条区块链进行交互,实现了在多条区块链的跨链操作;同时独立开的智能合约代表了操作集合,区块链代表了数据存储,即,独立的环境将数据和操作分开;每条链可以为多个合约实体提供记账服务,同时每个合约实体可操作多条区块链,包括多种类型的区块链,例如同质区块链和异构区块链等,从根本上解决了多区块链之间的异构协同与可扩展性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术的在应用端创建的智能合约的实现方法的流程图;图2为本专利技术的在应用端创建的智能合约的实现方法的子流程图;图3为本专利技术的第一实施方式的基于共识机制的智能合约的执行方法流程图;图4为本专利技术的第二实施方式的基于共识机制的智能合约的执行系统的结构框图;图5为本专利技术实施例1的基于共识机制的智能合约的执行方法在智能合约运行环境处的操作流程图;图6为本专利技术实施例1的基于共识机制的智能合约的执行方法在区块链处的操作流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术中,智能合约运行环境是指,与区块链逻辑上分离的用于执行智能合约的独立的逻辑层,包括微芯片群、智能终端群、计算机集群、云服务器群等。其中每个微芯片、每个智能终端,每个计算机,每个云服务器可相当于智能合约运行环境中的每个节点。下面,本文档来自技高网...

【技术保护点】
1.一种可访问多个区块链的智能合约的执行方法,其特征在于,包括:智能合约运行环境验证共识步骤,在与区块链逻辑上分离的预先构建的包括多个节点的智能合约运行环境中,对携带有参与待执行智能合约的用户的签名的待执行智能合约进行验证和共识,在所述验证和共识中,每个节点对所述待执行智能合约进行签名,其中所述待执行智能合约包括至少一个执行任务,所述至少一个执行任务中的至少一部分与至少两个区块链相关联,每个执行任务通过其所关联的区块链的应用程序接口与该区块链进行交互;智能合约发送步骤,由智能合约运行环境将通过验证并达成共识的待执行智能合约发送到每个区块链中;区块链验证步骤,由每个区块链针对通过验证并达成共识的待执行智能合约,验证参与所述待执行合约的用户的签名以及每个所述节点对所述待执行智能合约的签名;智能合约存储步骤,将通过每个区块链的验证的待执行智能合约存储到每个区块链中;智能合约执行步骤,当执行各个执行任务时,由智能合约运行环境通过调用与该执行任务关联的区块链的应用程序接口访问该区块链,执行该执行任务,智能合约运行环境的每个所述节点对执行结果进行验证和共识,并将通过验证并达成共识的执行结果存储到每个区块链。...

【技术特征摘要】
2017.04.27 CN 20171028846891.一种可访问多个区块链的智能合约的执行方法,其特征在于,包括:智能合约运行环境验证共识步骤,在与区块链逻辑上分离的预先构建的包括多个节点的智能合约运行环境中,对携带有参与待执行智能合约的用户的签名的待执行智能合约进行验证和共识,在所述验证和共识中,每个节点对所述待执行智能合约进行签名,其中所述待执行智能合约包括至少一个执行任务,所述至少一个执行任务中的至少一部分与至少两个区块链相关联,每个执行任务通过其所关联的区块链的应用程序接口与该区块链进行交互;智能合约发送步骤,由智能合约运行环境将通过验证并达成共识的待执行智能合约发送到每个区块链中;区块链验证步骤,由每个区块链针对通过验证并达成共识的待执行智能合约,验证参与所述待执行合约的用户的签名以及每个所述节点对所述待执行智能合约的签名;智能合约存储步骤,将通过每个区块链的验证的待执行智能合约存储到每个区块链中;智能合约执行步骤,当执行各个执行任务时,由智能合约运行环境通过调用与该执行任务关联的区块链的应用程序接口访问该区块链,执行该执行任务,智能合约运行环境的每个所述节点对执行结果进行验证和共识,并将通过验证并达成共识的执行结果存储到每个区块链。2.如权利要求1所述的执行方法,其中在智能合约运行环境验证共识步骤中,智能合约运行环境中的每个节点对智能合约均进行验证,根据每个节点的验证结果,智能合约运行环境对所述智能合约达成共识。3.如权利要求2所述的执行方法,其中,当通过验证的节点数量占所有节点数量的比率大于预定量时,智能合约运行环境对所述智能合约达成共识。4.如权利要求3所述的执行方法,其中,所述预定量为1/2。5.如权利要求1所述的执行方法,其中,智能合约运行环境对合约进行验证时,对合约内容、所述用户的签名和合约哈希中的至少任一者进行验证。6.如权利要求3所述的执行方法,还包括:由区块链针对来自所述智能合约运行环境的通过验证并达成共识的待执行智能合约验证合约内容、合约哈希...

【专利技术属性】
技术研发人员:毕伟
申请(专利权)人:中思博安科技北京有限公司
类型:发明
国别省市:北京,11

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

1