CN114462094B - 一种基于容器的多方竞合智能合约数字系统及其执行方法 - Google Patents
一种基于容器的多方竞合智能合约数字系统及其执行方法 Download PDFInfo
- Publication number
- CN114462094B CN114462094B CN202111048290.3A CN202111048290A CN114462094B CN 114462094 B CN114462094 B CN 114462094B CN 202111048290 A CN202111048290 A CN 202111048290A CN 114462094 B CN114462094 B CN 114462094B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- contract
- intelligent
- container
- smart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本发明提供一种基于容器的多方竞合智能合约数字系统,包括:软件实现的子系统以及硬件实现的子系统,软件实现的子系统包括SaaS数据库以及软件服务总线;硬件实现的子系统包括智能合约执行器以及智能合约验证器;软件服务总线用于输送数据以及将智能合约容器从SaaS数据库输送到智能合约执行器上执行;智能合约验证器用于将数据放入SaaS数据库前对智能合约进行测试。基于容器的多方竞合智能合约执行方法,包括:基于智能合约检测机制对智能合约进行再度测试;智能合约执行前的预备;执行智能合约;将执行后的结果经过智能合约投票机制以确认是否成功执行;区块链系统从事一次共识,确定所有投票节点都有一致数据存储在区块链内;查验交易结果。
Description
技术领域
本发明属于区块链、智能合约技术领域,具体特别涉及一种基于容器的多方竞合智能合约数字系统及其执行方法。
背景技术
传统的智能合约都是代码直接部署到节点上,那么如果多个智能合约涉及到对相同数据的操作,就可能发生冲突的情况。容器技术能很好的避免这种情况,它能将不同的进程彼此隔离,互不干涉。这样,每个智能合约运行在不同的容器中,能大大提高智能合约的安全控制以及审计要求。国内外机构提出多方提供智能合约的技术方案,例如买方,卖方,监管方提供智能合约,一起来执行交易。
买方:提供智能合约验证卖方资产,保证真实性。
卖方:提供智能合约验证买方资产,保证真实性。
平台方:提供智能合约执行交易,保证交易的真实性和透明性。
监管方:提供智能合约需要执行KYC和AML,保证交易双方账户的合法性。
并且,国内外具有使用容器(container)技术来部署智能合约的初步技术方案,然而这些方案只是将智能合约代码放进容器内,智能合约的执行器改为在容器内执行,仍然存在传送时会出错的可能,错误类型包括例如代码被更改等,因此仍然存在如下相关问题需要解决:
(1)如何保证智能合约容器没有被更改过;
(2)如何保证接收方不会复制软件,到处部署;
(3)智能合约代码容器如何存储在系统内 ;
(4)智能合约容器如何在服务区上高速执行;
(5)如果有多个智能合约容器同时需要被执行,如何协调;
(6)执行的时候出错时应该如何处理;
许多团队提出使用容器来执行智能合约,但是没有讨论如何保证这些智能合约没有被更改以及确认所提供的智能合约在执行任务,而不是被交易平台换掉。
因此,现有技术仍然没有成熟的基于容器的智能合约数字模型,特别是针对多方竞合环境下的。
发明内容
本发明为了解决现有技术存在的一项或多项技术问题,提出一种多方竞合的智能合约数字模型作为基于容器的多方竞合智能合约数字系统及其执行方法的基础。在这个模型中,智能合约运行在容器中,并配置相应的机制保证智能合约的正确性以及执行过程的正确性和结果的可追溯。
本发明的目的在于提供一种基于容器的多方竞合智能合约数字系统,包括:
软件实现的子系统以及硬件实现的子系统,其中所述软件实现的子系统包括SaaS数据库以及软件服务总线;所述硬件实现的子系统包括智能合约执行器以及智能合约验证器;所述软件服务总线用于输送数据以及将所述智能合约容器从SaaS数据库输送到所述智能合约执行器上执行;所述智能合约验证器用于将数据放入所述SaaS数据库前对所述智能合约进行测试。
优选的,所述SaaS数据库用于存储部分或全部智能合约容器,或部分或全部智能合约代码,所述智能合约容器包含智能合约软件以及容器,所述智能合约容器具有两个哈希,即智能合约软件哈希和包含智能合约软件的容器整体哈希,所述SaaS数据库中存储的智能合约可以动态切换到所述企业服务总线ESB,执行时,在容器内的智能合约在容器内执行,而智能合约代码在整体架构中执行。
优选的,所述软件服务总线为企业服务总线ESB。
优选的,所述智能合约执行器用于执行相关的所述智能合约容器内的所述智能合约,所述智能合约执行器并行执行所述智能合约容器内或当地的沙盒内的一个或多个智能合约软件,所述智能合约的执行结果采用所述软件服务总线输出,所述智能合约执行器中设置投票机制以执行智能合约投票,将所述投票结果以及参与投票的所述智能合约容器的ID均送到所述智能合约所在的区块链平台;所述智能合约执行器为一个智能合约执行容器或智能合约执行沙盒,在智能合约执行器内执行代码不会影响到容器或是沙盒外部;
智能合约执行器具有一个或者多个;
如果具有一个智能合约执行器且智能合约执行器是一个容器,内部包含多个执行其他智能合约的容器,那么就形成一组智能合约容器包含在一个智能合约执行器容器内的结构;
如果具有多个智能合约执行器,每个智能合约执行器可以并行处理,每个智能合约执行器负责一组从不同单位传送的智能合约容器,只要每个智能合约执行器内的智能合约容器没有重叠,并行处理交易就不会互相干扰;
一个或者多个所述智能合约执行器由一个是多个独立服务器支持,可以在执行器内部并行执行智能合约。
本发明的目的还在于提供一种基于容器的多方竞合智能合约执行方法,包括:
步骤1,所述智能合约的参与方提交所述智能合约到所述智能合约容器,基于智能合约检测机制对所述智能合约进行再度测试以保证智能合约的正确性;
步骤2,进行所述智能合约执行前的预备;
步骤3,执行所述智能合约;
步骤4,获得每个所述智能合约的执行后的结果,将所述执行后的结果经过智能合约投票机制以确认所有智能合约是否成功执行;
步骤5,区块链系统从事一次共识,确定所有区块链可以投票的节点都有一致数据,共识后,智能合约执行结果存储在区块链系统内;
步骤6,随时查验交易结果。
优选的,所述步骤1包括:
步骤11,所述智能合约容器通过编译器实施智能合约检验,以检测所述智能合约的语法规范以及格式问题,并且在仿真的环境下进行测试;所述智能合约检验可以使用方法包括模型查验、软件测试、仿真、形式化方法;
如果提供单位的信誉不是很好,在步骤11,数字系统可以选择大量测试,包括在仿真环境下测试。如果智能合约由形式化语言编写,在步骤 11的智能合约容器可以安装形式化验证工具进行形式化验证;
步骤12,如果在所述步骤11中检测出问题,所述智能合约容器通知提供所述智能合约的参与方重新修改智能合约;如果在所述步骤11中未检测出问题,继续执行步骤13;
步骤13,所述数字系统和提供方进行合作测试,使用测试代数方式来处理,包括:
(1)在仿真环境下,所述数字系统提供仿真数据并将所述仿真数据输入所述智能合约,然而在所述智能合约容器内运行所述智能合约;
(2)获得所述智能合约运行后的结果,所述结果包括智能合约身份证以及数字签名;
(3)将所述运行后的结果以及输入的所述仿真数据采用加密方法获得加密数据,将所述加密数据发送给所述提供方;
(4)收到所述加密数据后,所述提供方对其进行解密和查验;查验的内容包括:智能合约身份证和数字签名;使用输入的同样的所述仿真数据,使用同样的智能合约执行,是否得到相同的运行后的结果;如果提供方得到的运行后的结果和收到的所述运行后的结果一致,采用加密信息通知所述数字系统所述智能合约通过验证;
所述步骤13中,数字系统使用多个数据来保证测试完整性,提供方可以先提供一些测试数据以及预期结果,让系统先测试,得出来的结果必定需要和提供方的预期结果一致作为证实,数字系统得到这个证实后,再由数字系统提供数据来测试智能合约,其他步骤和步骤(1)-(4)相同;所述步骤13在实际运行时进行或者在线下完成;
步骤14,如果均通过步骤11和步骤13, 证明所述智能合约通过所述数字系统和提供方进行合作测试,将所述智能合约部署在所述智能合约容器内;
步骤15,所述智能合约容器将所述智能合约的地址以及哈希存放在所述SaaS数据库中,方便核验;
优选的,所述步骤2包括:
当一个智能合约条件满足而需要执行时,系统查验买方单位、卖方单位、相关单位以及交易的种类,从SaaS数据库发送相关的智能合约容器并放在执行平台上预备执行,所述相关的智能合约容器包括例如买方的智能合约容器,卖方的智能合约容器,监管方的智能合约容器以及自己的智能合约容器;所述智能合约容器如果已经部署在智能合约执行器上,则直接执行内部的所述智能合约;所述智能合约容器如果已经部署在缓存上,则将所述智能合约容器高速部署在执行器上;所述智能合约容器的输入和输出进行标准化并使用硬件方式加速。
优选的,所述步骤3智能合约的执行过程和传统智能合约的执行不同,包括:
步骤31,区块链提供包括参数的数据和参数并输入到多个所述智能合约容器执行,每个智能合约都收到同样的所述数据;
步骤32,所述智能合约容器执行智能合约,由于有多方,因此需要同时执行:
卖方智能合约验证卖方身份以及账户资产的真实性以及其资产是否能够支持这次交易;
买方智能合约验证买方身份以及账户资产的真实性以及其资产是否能够支持这次交易;
平台方验证交易双方的身份以及资产的真实性,同时核实双方的资产是否确实能够支持这次交易,保证交易的公平性和透明性;
监管方通过KYC和AML验证交易双方的身份以及资产的真实性和合法性,同时防止平台方的作弊行为;
步骤33,每个所述智能合约得到执行后的结果后,写入每个所述智能合约的身份证以及执行后的结果,所述执行后的结果由所述智能合约返回,返回的所述结果包含所述智能合约的地址和哈希;
所执行的所述智能合约还包括第3方提供的智能合约或平台方提供的智能合约,所述第3方提供的智能合约或平台方提供的智能合约也可以一同被所述步骤3执行,第3方提供的智能合约或平台方提供的智能合约没有投票权,只能从事应用计算。
优选的,所述步骤4包括:
步骤41,所有参与的智能合约对所述执行后的结果进行投票,检查投票结果是否一致; 是否都通过每个参与的所述智能合约的批准;
步骤42,所述投票结果为计算结果,如果所有所述计算结果一致,而且都全部通过,则通过所述投票,则执行步骤43,交易可以正常结算完成;只要有一方不一致,则拒绝该次计算,所述投票未通过,执行步骤44;
步骤43,如果通过所述投票,将交易的结果和所有参与所述智能合约的身份证或是签名存储在区块链上,便于后续查询或是验证;
步骤44,如果未通过所述投票,将所述交易的结果以及所有所述智能合约的身份证或是签名存储在区块链上,便于后续查询或是验证,并且通知相关单位.
优选的,所述步骤6包括:使用Blockchain Query Language语言来高速查询区块链内信息。
本发明的有益效果:
本发明的方法和系统使用的协议、算法、数据结构,可以使单方或是多方单位提供他们的智能合约容器,维护他们的利益,这些协议保证存在容器的智能合约和提供方原来提供的智能合约是一致的,而且执行时是也使用同样的智能合约,后来的结果也可以检验和查询,智能合约容器就可以安全的使用在区块链和智能合约系统上。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据本发明的优选实施例的系统整体架构示意图;
图2为根据本发明的优选实施例的智能合约检验流程示意图;
图3为根据本发明优选实施例的智能合约执行机制示意图;
图4为根据本发明的优选实施例的并智能合约投票机制原理示意图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
本实施例中,智能合约软件由提供方传送,传送中所使用的安全协议采用加密计算,多次哈希验证,多次身份认证,反拷贝,反复制,反传送到其他单位的机制,使用这个方法确保:
1)区块链软件或是智能合约软件可以安全的传送到目标服务器上;
2)接收方不能更改软件,由于软件内有内置检验机制,如果发现问题,软件就会启动自毁的机制;
3)同样,软件不能复制,如果复制,复制的软件第一个步骤就是自动销毁;
4)提供方可以验证接收方符合上面条件后,软件才能执行。如果没有这样的机制传送过来,从外面来的智能合约代码风险非常高。
当然,也可以使用传统物理软件传送方式进行,但是这样机制代价高而且慢。
如图1所示,本实施例基于容器的多方竞合智能合约数字系统,包括:
软件实现的子系统以及硬件实现的子系统,其中所述软件实现的子系统包括SaaS数据库以及软件服务总线;所述硬件实现的子系统包括智能合约执行器以及智能合约验证器;所述软件服务总线用于输送数据以及将所述智能合约容器从SaaS数据库输送到所述智能合约执行器上执行;所述智能合约验证器用于将数据放入所述SaaS数据库前对所述智能合约进行测试。
作为优选的实施方式,所述SaaS数据库用于存储部分或全部智能合约容器,或部分或全部智能合约代码,所述智能合约容器包含智能合约软件以及容器,所述智能合约容器具有两个哈希,即智能合约软件哈希和包含智能合约软件的容器整体哈希,所述SaaS数据库中存储的智能合约可以动态切换到所述企业服务总线ESB。执行时,在容器内的智能合约在容器内执行,而智能合约代码在整体架构中执行,而整个架构是一个独立运行环境,即SaaS数据库和区块链系统的链条存在不同存储地方出现错误或者问题后不会影响区块链系统内其他地方。
作为优选的实施方式,所述软件服务总线为企业服务总线ESB(EnterpriseService Bus,ESB),当然,所述企业服务总线ESB可以被类似软件取代。由于ESB主要是提供可靠系统内数据运输, 但是其他数据运输软件也可以使用,只要能维持可靠安全数据传输即在本发明的保护范围内。
作为优选的实施方式,所述智能合约执行器用于执行相关的所述智能合约容器内的所述智能合约,所述智能合约执行器并行执行所述智能合约容器内或当地的沙盒内的一个或多个智能合约软件,所述智能合约的执行结果采用所述软件服务总线输出,所述智能合约执行器中设置投票机制以执行智能合约投票,将所述投票结果以及参与投票的所述智能合约容器的ID均送到所述智能合约所在的区块链平台;所述智能合约执行器为一个智能合约执行容器或智能合约执行沙盒,在智能合约执行器内执行代码不会影响到容器或是沙盒外部;
智能合约执行器具有一个或者多个;
如果具有一个智能合约执行器且智能合约执行器是一个容器,内部包含多个执行其他智能合约的容器,那么就形成一组(智能合约)容器包含在一个(智能合约执行器)容器内的结构;
如果具有多个智能合约执行器,每个智能合约执行器可以并行处理,每个智能合约执行器负责一组从不同单位传送的智能合约容器,只要每个智能合约执行器内的智能合约容器没有重叠,并行处理交易就不会互相干扰。
一个或者多个所述智能合约执行器由一个是多个独立服务器支持,可以在执行器内部并行执行智能合约,由于每一笔交易,参与方提供的智能合约容器,都是在自己的容器内执行,完全不会互相干扰,可以并行处理,而智能合约执行器在沙盒内,执行的结果不会影响到区块链系统。
本实施例提供一种基于容器的多方竞合智能合约执行方法,包括:
如图2所示,步骤1,所述智能合约的参与方提交所述智能合约到所述智能合约容器,基于智能合约检测机制对所述智能合约进行再度测试以保证智能合约的正确性;
步骤2,进行所述智能合约执行前的预备;
如图3所示,步骤3,执行所述智能合约;
如图4所示,步骤4,获得每个所述智能合约的执行后的结果,将所述执行后的结果经过智能合约投票机制以确认所有智能合约是否成功执行;所述智能合约投票机制不是区块链共识机制。
步骤5,区块链系统从事一次共识,确定所有区块链可以投票的节点都有一致数据,共识后,智能合约执行结果存储在区块链系统内;
每个智能合约的执行都需要区块链共识来保证其正确性,如果共识过程中出现任何问题,例如有智能合约延迟回复结果,或是多个智能合约的回复结果不一致,以反对结束。因为每一个智能合约都必须通过,如果其中一个智能合约得到负面结果,立刻通知智能合约执行器,这次智能合约执行失败,而没有必要继续进行;
步骤6,随时查验交易结果。
作为优选的实施方式,所述步骤1包括:
步骤11,所述智能合约容器通过编译器实施智能合约检验,以检测所述智能合约的语法规范以及格式问题,并且在仿真的环境下进行测试;所述智能合约检验可以使用方法包括模型查验、软件测试、仿真、形式化方法等。
如果提供单位的信誉不是很好,在步骤11,数字系统可以选择大量测试例如要求第3方进行大量测试,包括在仿真环境下测试。如果智能合约由形式化语言编写,在步骤 11的智能合约容器可以安装形式化验证工具进行形式化验证,例如使用比格犬模型(BeagleModel)的形式化验证工具,该模型使用智能合约模版,将大量智能合约模版存储在共享数据库,便利智能合约开发。
步骤12,如果在所述步骤11中检测出问题,所述智能合约容器通知提供所述智能合约的参与方重新修改智能合约;如果在所述步骤11中未检测出问题,继续执行步骤13;
有的数字系统可能不进行步骤11和步骤12,这代表数字系统放弃自身的质量控制权力。
步骤13,所述数字系统和提供方进行合作测试,由于系统执行环境是图3整体架构,仿真环境包括其他单位传送的智能合约,因此形成组合测试(CombinatorialTesting),可以使用测试代数(Test Algebra)方式来处理,包括:
(1)在仿真环境下,所述数字系统提供仿真数据并将所述仿真数据输入所述智能合约,然而在所述智能合约容器内运行所述智能合约;
(2)获得所述智能合约运行后的结果,所述结果包括智能合约身份证以及数字签名;
(3)将所述运行后的结果以及输入的所述仿真数据采用加密方法获得加密数据,将所述加密数据发送给所述提供方;
(4)收到所述加密数据后,所述提供方对其进行解密和查验;查验的内容包括:智能合约身份证和数字签名;使用输入的同样的所述仿真数据,使用同样的智能合约执行,是否得到相同的运行后的结果;如果提供方得到的运行后的结果和收到的所述运行后的结果一致,采用加密信息通知所述数字系统所述智能合约通过验证;
所述步骤13中,数字系统使用多个数据来保证测试完整性,提供方可以先提供一些测试数据以及预期结果,让系统先测试,得出来的结果必定需要和提供方的预期结果一致作为证实,数字系统得到这个证实后,再由数字系统提供数据来测试智能合约,其他细节步骤和步骤(1)-(4)相同;所述步骤13是提供方最后一次验证的机会,而且是在部署单位系统内验证,不是完全在自己系统内完成,如果提供方不愿意合作进行,就是放弃在实际环境下验证的机会;
步骤14,如果均通过步骤11和步骤13, 证明所述智能合约通过所述数字系统和提供方进行合作测试,将所述智能合约部署在所述智能合约容器内;
步骤15,所述智能合约容器将所述智能合约的地址以及哈希存放在所述SaaS数据库中,方便核验;
其中,所述步骤13在实际运行时进行或者在线下完成,而不在系统交易时完成,不影响系统性能。
作为优选的实施方式,所述步骤2包括:
当一个智能合约条件满足而需要执行时,系统查验买方单位、卖方单位、相关单位以及交易的种类,从SaaS数据库发送相关的智能合约容器并放在执行平台上预备执行,所述相关的智能合约容器包括例如买方的智能合约容器,卖方的智能合约容器,监管方的智能合约容器以及自己的智能合约容器;所述步骤2有多个监管单位需要参与,因此参与的智能合约容器大于4个;所述智能合约容器如果已经部署在智能合约执行器上,则直接执行内部的所述智能合约;所述智能合约容器如果已经部署在缓存上,则将所述智能合约容器高速部署在执行器上;其中经常使用的所述智能合约容器由所述SaaS数据库放进所述缓冲内,加速运行速度;所述智能合约容器的输入和输出进行标准化并使用硬件方式加速。
作为优选的实施方式,所述步骤3智能合约的执行过程和传统智能合约的执行不同,包括:
步骤31,区块链提供包括参数的数据和参数并输入到多个所述智能合约容器执行,每个智能合约都收到同样的所述数据;
步骤32,所述智能合约容器执行智能合约,由于有多方,因此需要同时执行:
卖方智能合约验证卖方身份以及账户资产的真实性以及其资产是否能够支持这次交易;
买方智能合约验证买方身份以及账户资产的真实性以及其资产是否能够支持这次交易;
平台方验证交易双方的身份以及资产的真实性,同时核实双方的资产是否确实能够支持这次交易,保证交易的公平性和透明性;
监管方通过KYC和AML验证交易双方的身份以及资产的真实性和合法性,同时防止平台方的作弊行为;
步骤33,每个所述智能合约得到执行后的结果后,写入每个所述智能合约的身份证以及执行后的结果,所述执行后的结果由所述智能合约返回,返回的所述结果包含所述智能合约的地址和哈希,从而明确标示哪一个智能合约被使用,也方便追溯;
所执行的所述智能合约还包括第3方提供的智能合约或平台方提供的智能合约,所述第3方提供的智能合约或平台方提供的智能合约也可以一同被所述步骤3执行,第3方提供的智能合约或平台方提供的智能合约没有投票权,只能从事应用计算。
作为优选的实施方式,所述步骤4包括:
步骤41,所有参与的智能合约对所述执行后的结果进行投票,检查投票结果是否一致; 是否都通过每个参与的所述智能合约的批准;
步骤42,所述投票结果为计算结果,如果所有所述计算结果一致,而且都全部通过,则通过所述投票,则执行步骤43,交易可以正常结算完成;只要有一方不一致,则拒绝该次计算,所述投票未通过,执行步骤44;
步骤43,如果通过所述投票,将交易的结果和所有参与所述智能合约的身份证或是签名存储在区块链上,便于后续查询或是验证;
步骤44,如果未通过所述投票,将所述交易的结果以及所有所述智能合约的身份证或是签名存储在区块链上,便于后续查询或是验证,并且通知相关单位.
作为优选的实施方式,所述步骤6包括:
由于所有智能合约的计算结果,和智能合约身份证或是签名都留在区块链上,以后如果有任何纠纷,可以高速查询到资料,例如使用BQL(Blockchain Query Language)语言(2020103765829,一种面向对象的区块链查询方法和装置,以授权)来高速查询区块链内信息。由于每一阶段,包括预备期,测试期,放进SaaS数据库期,执行前的预备,执行时,投票期,最后共识期,都存留相关的资料,可以查出在什么地方出现错误或是作弊的情况。
本实施例的方法和系统使用的协议、算法、数据结构,可以使单方或是多方单位提供他们的智能合约容器,维护他们的利益,这些协议保证存在容器的智能合约和提供方原来提供的智能合约是一致的,而且执行时是也使用同样的智能合约,后来的结果也可以检验和查询,智能合约容器就可以安全的使用在区块链和智能合约系统上。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
Claims (1)
1.一种基于容器的多方竞合智能合约执行方法,基于容器的多方竞合智能合约数字系统实现,其特征在于,基于容器的多方竞合智能合约数字系统实现包括:
软件实现的子系统以及硬件实现的子系统,其中所述软件实现的子系统包括SaaS数据库以及软件服务总线;所述硬件实现的子系统包括智能合约执行器以及智能合约验证器;所述软件服务总线用于输送数据以及将智能合约容器从SaaS数据库输送到所述智能合约执行器上执行;所述智能合约验证器用于将数据放入所述SaaS数据库前对所述智能合约进行测试;
所述SaaS数据库用于存储部分或全部智能合约容器,或部分或全部智能合约代码,所述智能合约容器包含智能合约软件以及容器,所述智能合约容器具有两个哈希,即智能合约软件哈希和包含智能合约软件的容器整体哈希,所述SaaS数据库中存储的智能合约动态切换到企业服务总线ESB,执行时,在容器内的智能合约在容器内执行,而智能合约代码在整体架构中执行;
所述软件服务总线为所述企业服务总线ESB;
所述智能合约执行器用于执行相关的所述智能合约容器内的所述智能合约,所述智能合约执行器并行执行所述智能合约容器内或当地的沙盒内的一个或多个智能合约软件,所述智能合约的执行结果采用所述软件服务总线输出,所述智能合约执行器中设置投票机制以执行智能合约投票,将投票结果以及参与投票的所述智能合约容器的ID均送到所述智能合约所在的区块链平台;所述智能合约执行器为一个智能合约执行容器或智能合约执行沙盒,在智能合约执行器内执行代码不会影响到容器或是沙盒外部;
智能合约执行器具有一个或者多个;
如果具有一个智能合约执行器且智能合约执行器是一个容器,内部包含多个执行其他智能合约的容器,那么就形成一组智能合约容器包含在一个智能合约执行器容器内的结构;
如果具有多个智能合约执行器,每个智能合约执行器并行处理,每个智能合约执行器负责一组从不同单位传送的智能合约容器,只要每个智能合约执行器内的智能合约容器没有重叠,并行处理交易就不会互相干扰;
一个或者多个所述智能合约执行器由一个是多个独立服务器支持,在执行器内部并行执行智能合约;
基于容器的多方竞合智能合约执行方法包括:
步骤1,所述智能合约的参与方提交所述智能合约到所述智能合约容器,基于智能合约检测机制对所述智能合约进行再度测试以保证智能合约的正确性;
步骤2,进行所述智能合约执行前的预备;
步骤3,执行所述智能合约;
步骤4,获得每个所述智能合约的执行后的结果,将所述执行后的结果经过智能合约投票机制以确认所有智能合约是否成功执行;
步骤5,区块链系统从事一次共识,确定所有区块链投票的节点都有一致数据,共识后,智能合约执行结果存储在区块链系统内;
步骤6,随时查验交易结果;
所述步骤1包括:
步骤11,智能合约容器通过编译器实施智能合约检验,以检测所述智能合约的语法规范以及格式问题,并且在仿真的环境下进行测试;所述智能合约检验使用方法包括模型查验、软件测试、仿真、形式化方法;
如果提供单位的信誉不是很好,在步骤11,数字系统选择大量测试,包括在仿真环境下测试;
如果智能合约由形式化语言编写,在步骤11的智能合约容器安装形式化验证工具进行形式化验证;
步骤12,如果在所述步骤11中检测出问题,所述智能合约容器通知提供所述智能合约的参与方重新修改智能合约;如果在所述步骤11中未检测出问题,继续执行步骤13;
步骤13,所述数字系统和提供方进行合作测试,使用测试代数方式来处理,包括:
(1)在仿真环境下,所述数字系统提供仿真数据并将所述仿真数据输入所述智能合约,然而在所述智能合约容器内运行所述智能合约;
(2)获得所述智能合约运行后的结果,所述结果包括智能合约身份证以及数字签名;
(3)将所述运行后的结果以及输入的所述仿真数据采用加密方法获得加密数据,将所述加密数据发送给所述提供方;
(4)收到所述加密数据后,所述提供方对其进行解密和查验;查验的内容包括:智能合约身份证和数字签名;使用输入的同样的所述仿真数据,使用同样的智能合约执行,是否得到相同的运行后的结果;如果提供方得到的运行后的结果和收到的所述运行后的结果一致,采用加密信息通知所述数字系统所述智能合约通过验证;
所述步骤13中,数字系统使用多个数据来保证测试完整性,提供方先提供一些测试数据以及预期结果,让系统先测试,得出来的结果必定需要和提供方的预期结果一致作为证实,数字系统得到这个证实后,再由数字系统提供数据来测试智能合约,其他步骤和步骤(1)-(4)相同;所述步骤13在实际运行时进行或者在线下完成;
步骤14,如果均通过步骤11和步骤13,证明所述智能合约通过所述数字系统和提供方进行合作测试,将所述智能合约部署在所述智能合约容器内;
步骤15,所述智能合约容器将所述智能合约的地址以及哈希存放在所述SaaS数据库中,方便核验;
所述步骤2包括:
当一个智能合约条件满足而需要执行时,系统查验买方单位、卖方单位、相关单位以及交易的种类,从SaaS数据库发送相关的智能合约容器并放在执行平台上预备执行,所述相关的智能合约容器包括买方的智能合约容器,卖方的智能合约容器,监管方的智能合约容器以及自己的智能合约容器;所述智能合约容器如果已经部署在智能合约执行器上,则直接执行内部的所述智能合约;所述智能合约容器如果已经部署在缓存上,则将所述智能合约容器高速部署在执行器上;所述智能合约容器的输入和输出进行标准化并使用硬件方式加速;
所述步骤3智能合约的执行过程和传统智能合约的执行不同,包括:
步骤31,区块链提供包括参数的数据和参数并输入到多个所述智能合约容器执行,每个智能合约都收到同样的所述数据;
步骤32,所述智能合约容器执行智能合约,由于有多方,因此需要同时执行:
卖方智能合约验证卖方身份以及账户资产的真实性以及其资产是否能够支持这次交易;
买方智能合约验证买方身份以及账户资产的真实性以及其资产是否能够支持这次交易;
平台方验证交易双方的身份以及资产的真实性,同时核实双方的资产是否确实能够支持这次交易,保证交易的公平性和透明性;
监管方通过KYC和AML验证交易双方的身份以及资产的真实性和合法性,同时防止平台方的作弊行为;
步骤33,每个所述智能合约得到执行后的结果后,写入每个所述智能合约的身份证以及执行后的结果,所述执行后的结果由所述智能合约返回,返回的所述结果包含所述智能合约的地址和哈希;
所执行的所述智能合约还包括第3方提供的智能合约或平台方提供的智能合约,所述第3方提供的智能合约或平台方提供的智能合约也一同被所述步骤3执行,第3方提供的智能合约或平台方提供的智能合约没有投票权,只能从事应用计算;
所述步骤4包括:
步骤41,所有参与的智能合约对所述执行后的结果进行投票,检查所述投票结果是否一致;是否都通过每个参与的所述智能合约的批准;
步骤42,所述投票结果为计算结果,如果所有所述计算结果一致,而且都全部通过,则通过所述投票,则执行步骤43,交易正常结算完成;只要有一方不一致,则拒绝该次计算,所述投票未通过,执行步骤44;
步骤43,如果通过所述投票,将交易的结果和所有参与所述智能合约的身份证或是签名存储在区块链上,便于后续查询或是验证;
步骤44,如果未通过所述投票,将所述交易的结果以及所有所述智能合约的身份证或是签名存储在区块链上,便于后续查询或是验证,并且通知相关单位;
所述步骤6包括:使用Blockchain Query Language语言来高速查询区块链内信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111048290.3A CN114462094B (zh) | 2021-09-08 | 2021-09-08 | 一种基于容器的多方竞合智能合约数字系统及其执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111048290.3A CN114462094B (zh) | 2021-09-08 | 2021-09-08 | 一种基于容器的多方竞合智能合约数字系统及其执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114462094A CN114462094A (zh) | 2022-05-10 |
CN114462094B true CN114462094B (zh) | 2023-07-14 |
Family
ID=81405158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111048290.3A Active CN114462094B (zh) | 2021-09-08 | 2021-09-08 | 一种基于容器的多方竞合智能合约数字系统及其执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114462094B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020014551A1 (en) * | 2018-07-11 | 2020-01-16 | Dan Kikinis | System and method for secure storage of digital assets to facilitate electronic transactions |
CN111311255A (zh) * | 2020-01-19 | 2020-06-19 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约形式化验证和纠错方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109587200B (zh) * | 2017-09-29 | 2021-07-16 | 中兴通讯股份有限公司 | 一种区块链即服务平台及系统 |
US20190158275A1 (en) * | 2017-11-22 | 2019-05-23 | Michael Beck | Digital containers for smart contracts |
US11544708B2 (en) * | 2017-12-29 | 2023-01-03 | Ebay Inc. | User controlled storage and sharing of personal user information on a blockchain |
US11528611B2 (en) * | 2018-03-14 | 2022-12-13 | Rose Margaret Smith | Method and system for IoT code and configuration using smart contracts |
CN108989389B (zh) * | 2018-06-11 | 2020-09-11 | 北京航空航天大学 | 一种建立智能合约微服务化的方法 |
CN108881440A (zh) * | 2018-06-19 | 2018-11-23 | 北京连琪科技有限公司 | 一种兼顾安全与性能的区块链合约建立方法及系统 |
CN108830601B (zh) * | 2018-06-25 | 2022-03-18 | 上海延华大数据科技有限公司 | 基于区块链的智慧城市信息安全使用方法及系统 |
CN109325764B (zh) * | 2018-09-12 | 2022-05-27 | 江苏南大数码科技有限公司 | 基于区块链的敏感数据交易系统及方法 |
CN110392052B (zh) * | 2019-07-22 | 2021-05-25 | 中国工商银行股份有限公司 | 一种区块链智能合约处理系统及方法 |
CN111782305B (zh) * | 2020-07-21 | 2021-01-19 | 江苏荣泽信息科技股份有限公司 | 一种高效安全智能合约运行环境的方法 |
CN112564917A (zh) * | 2020-12-01 | 2021-03-26 | 浙商银行股份有限公司 | 一种基于区块链的云服务平台及其部署方法 |
CN113222606B (zh) * | 2021-07-07 | 2021-09-17 | 中企链信(北京)科技有限公司 | 一种基于智能合约的安全交易执行方法 |
CN113360893B (zh) * | 2021-08-11 | 2021-11-30 | 北京微芯感知科技有限公司 | 基于容器的智能合约执行方法、装置及存储介质 |
-
2021
- 2021-09-08 CN CN202111048290.3A patent/CN114462094B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020014551A1 (en) * | 2018-07-11 | 2020-01-16 | Dan Kikinis | System and method for secure storage of digital assets to facilitate electronic transactions |
CN111311255A (zh) * | 2020-01-19 | 2020-06-19 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约形式化验证和纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114462094A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210049617A1 (en) | Blockchain-based data verification method, apparatus, and electronic device | |
US11880809B2 (en) | Blockchain cross-chain non-fungible token exchange | |
US11797982B2 (en) | Digital ledger authentication using address encoding | |
CN109981679B (zh) | 在区块链网络中执行事务的方法和装置 | |
CN109992285B (zh) | 区块链代码块独立升级方法、装置及电子设备 | |
EP3779760B1 (en) | Blockchain-based data processing method and apparatus, and electronic device | |
CN110896659B (zh) | 数据处理方法、节点、区块链网络及虚拟数据载体 | |
CN109377338A (zh) | 基于区块链的金融产品处理方法及装置 | |
CN111782551B (zh) | 针对区块链项目的测试方法、装置及计算机设备 | |
CN114154987B (zh) | 一种基于nfr和互链网的元宇宙安全系统及运行方法 | |
CN112907244B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN109729092A (zh) | 一种业务平台准入的方法和装置 | |
Tsai et al. | Beagle: A new framework for smart contracts taking account of law | |
CN114462094B (zh) | 一种基于容器的多方竞合智能合约数字系统及其执行方法 | |
CN113112358A (zh) | 基于区块链的决策方法及装置和电子设备 | |
CN113506112A (zh) | 应收账款确权方法及装置和电子设备 | |
CN110751486B (zh) | 智能合约的重放举证方法、系统、电子设备及存储介质 | |
CN111917729A (zh) | 动态注入测试方法及装置、相关设备 | |
CN107016613B (zh) | 数据修改的方法和装置 | |
WO2019126385A1 (en) | Method and system for a proof of stake oracle | |
CN116132186A (zh) | 一种安全算法模块的验证方法、验证装置以及电子设备 | |
CN115689751A (zh) | 跨链交易方法、装置、设备及存储介质 | |
CN115170312A (zh) | 区块链上资产状态信息变更方法及装置 | |
CN114491662A (zh) | 一种基于区块链的数据资产审计方法、系统及设备 | |
CN111738855A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |