一种基于区块链的智能合约系统技术方案

技术编号:34456331 阅读:18 留言:0更新日期:2022-08-06 17:03
本发明专利技术涉及区块链技术领域,特别涉及一种基于区块链的智能合约系统。包括合约生成模块、合约签订模块和合约执行模块,所述合约签订模块和合约生成模块之间连接,所述合约签订模块和合约执行模块之间连接,所述合约生成模块包括部署单元、获取单元和生成单元,所述获取单元和部署单元之间连接。本发明专利技术通过面向区块链智能合约的高度自动化形式化验证系统,能够以较高程度的自动化,实现对区块链智能合约的形式化验证,其中使用自动代码转换器能够自动化生成形式化的待验证程序,自动化验算策略提高了验证效率,这些措施则可以极大的提高智能合约形式化验证的效率,减少人工参与度。减少人工参与度。减少人工参与度。

【技术实现步骤摘要】
一种基于区块链的智能合约系统


[0001]本专利技术属于区块链
,特别涉及一种基于区块链的智能合约系统。

技术介绍

[0002]区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。在科技迅猛发展的今天,区块链得到了广泛地应用于数据智能合约领域。
[0003]智能合约的理念可以追溯到1994年,几乎与互联网(world wide web) 同时出现。密码学家尼克萨博(NickSzabo)首次提出了“智能合约”这一术语。从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if

then语句。智能合约只是以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。
[0004]智能合约运行在一个由众人共同维护的区块链链上自动执行的程序代码,一旦因为程序自身设计的问题,导致智能合约的安全漏洞,或将产生不可逆转的重大损失。形式化验证方法可以很好的检验和验证智能合约代码的漏洞,但传统的形式化验证方法人工参与量大,效率较低。

技术实现思路

[0005]针对上述问题,本专利技术提供了一种基于区块链的智能合约系统,包括合约生成模块、合约签订模块和合约执行模块,所述合约签订模块和合约生成模块之间连接,所述合约签订模块和合约执行模块之间连接,所述合约生成模块包括部署单元、获取单元和生成单元,所述获取单元和部署单元之间连接,所述获取单元和生成单元之间连接,所述合约签订模块包括合约验证单元和合约签名单元,所述合约验证单元和合约签名单元之间连接,所述合约执行模块包括OP代码执行单元、合约执行虚拟机、智能合约单元和外部数据单元,所述智能合约单元和OP代码执行单元之间连接,所述智能合约单元和合约执行虚拟机之间连接,所述外部数据单元和合约执行虚拟机之间连接。
[0006]进一步的,所述部署单元用于根据业务需求创建所述数据智能合约得到合约名称;所述获取单元用于当数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;所述生成单元用于根据合约名称、数据地址和关联合约地址生成数据智能合约。
[0007]进一步的,所述部署单元包括代理模组和创建模组,所述代理模组用于根据业务需求生成代理合约,并将需要创建数据智能合约的数据发送给代理合约;所述创建模组用于利用代理合约根据数据的业务需求创建数据智能合约,得到合约名称。
[0008]进一步的,所述获取单元包括判断模组、名称查询模组、数据查询模组和关联查询模组,所述判断模组用于判断创建数据智能合约过程中使用的智能合约语言是否支持遍历数据列表中所有的与映射相关的值;所述名称查询模组,用于当智能合约语言不支持遍历
所述数据列表中所有的与映射相关的值时,利用名称获取接口查询数据智能合约的内容,得到数据名称和关联合约名称;所述数据查询模组用于通过数据地址获取接口根据数据名称查询数据列表,得到数据地址;所述关联查询模组,用于通过合约地址获取接口根据关联合约名称查询数据列表,得到关联合约地址。
[0009]进一步的,所述生成单元包括合约名称、数据地址、关联合约地址、数据名称和关联合约名称生成嵌套结构的数据智能合约。
[0010]进一步的,所述合约验证单元用于对合约名称、数据地址和关联合约地址进行验证;所述合约签名单元用于合约参与方达成协定,使得合约产生效力。
[0011]进一步的,所述合约验证单元包括自动代码转换器、形式化的中间层代码、虚拟执行与验证器模组和自动化验证模组,所述自动代码转换器用于接收智能合约源代码,并将智能合约源代码转换为形式化的中间语言代码;所述形式化的中间层代码用于对自动代码转换器产生的中间语言代码进行形式化的描述,生成待验证的形式化程序文件,并输入到虚拟执行与验证器模块;虚拟执行与验证器模组用于将接收到的形式化程序文件和形式化验证库同时导入定理辅助证明器,并进行虚拟化地址配置,从而建立虚拟执行环境;然后由定理辅助证明器调用自动化验证模块中的自动化验算策略对该形式化程序文件进行高度自动化的形式化验证,并得出验证结果;自动化验证模组用于提供形式化的验证库和自动化验算策略库,供定理辅助证明器调用,以提高形式化验证效率。
[0012]进一步的,所述OP代码执行单元用于将基于堆栈的脚本内容通过OP 代码解析,形成相应的运算代码,从而获取所述运算代码执行的汇编语言;所述智能合约单元用于将智能合约的代码登记到区块链上,以形成合约链;所述合约执行虚拟机用于接收到执行区块链上的智能合约指令后,判断即将执行的智能合约是何种代码编写,如果就是OP代码编写,则直接执行,如果是高级语言编写的智能合约代码,则将高级语言编写的智能合约代码解析,通过调用OP代码执行模块获取的汇编语言,执行智能合约;所述外部数据单元用于给合约执行虚拟机执行智能合约时,提供外部数据资源。
[0013]进一步的,所述智能合约模块还包括将智能合约代码进行哈希运算,哈希运算后将哈希值登记到区块链上。
[0014]进一步的,所述合约执行虚拟机还包括将智能合约代码哈希值与智能合约存储服务器中的智能合约代码相匹配,获取与哈希值相对应的智能合约代码。
[0015]本专利技术的有益效果是:
[0016]本专利技术通过面向区块链智能合约的高度自动化形式化验证系统,能够以较高程度的自动化,实现对区块链智能合约的形式化验证,其中使用自动代码转换器能够自动化生成形式化的待验证程序,自动化验算策略提高了验证效率,这些措施则可以极大的提高智能合约形式化验证的效率,减少人工参与度。
[0017]本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书以及附图中所指出的结构来实现和获得。
附图说明
[0018]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1示出了本专利技术的系统框图。
具体实施方式
[0020]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0021]请参阅图1,本专利技术提供一种技术方案:
[0022]一种基于区块链的智能合约系统,包括合约生成模块、合约签订模块和合约执行模块,合约签订模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的智能合约系统,其特征在于:包括合约生成模块、合约签订模块和合约执行模块,所述合约签订模块和合约生成模块之间连接,所述合约签订模块和合约执行模块之间连接,所述合约生成模块包括部署单元、获取单元和生成单元,所述获取单元和部署单元之间连接,所述获取单元和生成单元之间连接,所述合约签订模块包括合约验证单元和合约签名单元,所述合约验证单元和合约签名单元之间连接,所述合约执行模块包括OP代码执行单元、合约执行虚拟机、智能合约单元和外部数据单元,所述智能合约单元和OP代码执行单元之间连接,所述智能合约单元和合约执行虚拟机之间连接,所述外部数据单元和合约执行虚拟机之间连接。2.根据权利要求1所述的一种基于区块链的智能合约系统,其特征在于:所述部署单元用于根据业务需求创建所述数据智能合约得到合约名称;所述获取单元用于当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;所述生成单元用于根据合约名称、数据地址和关联合约地址生成数据智能合约。3.根据权利要求1所述的一种基于区块链的智能合约系统,其特征在于:所述部署单元包括代理模组和创建模组,所述代理模组用于根据业务需求生成代理合约,并将需要创建数据智能合约的数据发送给代理合约;所述创建模组用于利用代理合约根据所述数据的所述业务需求创建数据智能合约,得到合约名称。4.根据权利要求1所述的一种基于区块链的智能合约系统,其特征在于:所述获取单元包括判断模组、名称查询模组、数据查询模组和关联查询模组,所述判断模组用于判断创建所述数据智能合约过程中使用的智能合约语言是否支持遍历数据列表中所有的与映射相关的值;所述名称查询模组,用于当智能合约语言不支持遍历数据列表中所有的与映射相关的值时,利用名称获取接口查询数据智能合约的内容,得到数据名称和关联合约名称;所述数据查询模组用于通过数据地址获取接口根据数据名称查询数据列表,得到数据地址;所述关联查询模组,用于通过合约地址获取接口根据关联合约名称查询数据列表,得到关联合约地址。5.根据权利要求1所述的一种基于区块链的智能合约系统,其特征在于:所述生成单元包括合约名称、数据地址、关联合约地址、数据名称和关联合约名...

【专利技术属性】
技术研发人员:阮安邦魏明陈凯
申请(专利权)人:北京八分量信息科技有限公司
类型:发明
国别省市:

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

1