一种智能合约系统的构建方法和智能合约系统技术方案

技术编号:20845457 阅读:27 留言:0更新日期:2019-04-13 09:02
本发明专利技术涉及一种智能合约系统的构建方法和智能合约系统,该智能合约系统的构建方法包括:获取智能合约代码;根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元;将多个不同的功能单元分类存储。本发明专利技术的方案将智能合约分为多个不同的功能单元,使每个功能简单化、模块化,如此通过搭积木式能够搭建实现较大业务功能的智能合约,可实现智能合约的灵活调用与嵌套,能够解决智能合约语义复杂及安全漏洞问题,提高有效代码复用率。

【技术实现步骤摘要】
一种智能合约系统的构建方法和智能合约系统
本专利技术涉及区块链领域,尤其涉及一种智能合约系统的构建方法和智能合约系统。
技术介绍
智能合约为:“一个智能合约是一套以数字形式定义的承诺,包括合作方可以在上面执行这些承诺的协议”。智能合约的第一个应用是在以太坊区块链平台上实现的。智能合约是一种防篡改的数字协议,想要缔造一个更佳简单化的新世界。从本质上而言,智能合约是一种直接控制数字资产的电脑程序。通过在区块链上写入类似if-then语句的程序,使得当预先编好的条件被触发时,程序自动触发支付及执行合约中的其它条款,也就是说,它是储存在区块链上的一段代码,由区块链交易触发。加密数字货币是智能合约目前主要的用途。在未来智能合约将超越代币,将基于出发事件和输入执行逻辑,并在合同结束时候产生某种形式的自动执行,这类复杂智能合约将为数字协议带来新的标准,并最终用于处理全球行业数亿万计美元,这些行业为银行/保险/贸易容易助力很多。智能合约部署在区块链上,是Dapp(分布式应用)的基本单元,Dapp可以看成是一组互联的智能合约,它们可以共同促成高级功能的实现。就像一个大公司由很多不同的部门组成一样,各个模块共同产生“整体大于部分之和”的效益。Dapp是通过区块链层部署一组智能合约的,然后与这些智能合约进行交互实现。制约智能合约发展是是其依托的公链。目前使用智能合约最多的以太坊,TPS(TransactionPerSecond,每秒事务处理量)仅仅为7-15,即使智能合约速度再快,也不能让Dapp更加流畅,EOS(EnterpriseOperationSystem,商用分布式应用设计的一款区块链操作系统)的TPS可达到4000,基本上很多应用的交互可以上链与合约进行交互。然而,智能合约能解决的问题很多,但是本身也是问题缠身。目前的区块链生态以区块链3.0时代新技术身份不断甄别和清除智能合约所在的漏洞,保持智能合约的完美。“codeislaw”是智能合约的神圣准则,智能合约一经发布,区块链所有节点全部遵从合约进行协作,并且源码会被开源,智能合约不存在bug及安全问题是首要考虑的问题,尤其是涉及到金钱交易。然而研究表明,28%以上的以上的智能合约存在不同程度的安全漏洞,智能合约系统本身也存在着设计缺陷。由于代码不可更改,因此漏洞是永久性,极易引发不可挽回的灾难。智能合约常见的安全漏洞与安全问题大致可以总结为以下几个方面:1.智能合约语言语义复杂。2.智能合约在极端情况下的行为负载,例如虚拟机调用中栈,交易发送中的异常处理,相关交易执行顺序不可预测等等。3.智能合约缺少合理审计流程。4.代码复用率低。因此,提供一种智能合约系统的构建方法和智能合约系统。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种智能合约系统的构建方法和智能合约系统,能够解决智能合约语义复杂问题及缺少审计流程带来安全漏洞问题,并提高有效代码复用率。根据本专利技术的一个方面,提供一种智能合约系统的构建方法,包括:获取智能合约代码;根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元;将多个不同的功能单元分类存储。进一步地,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤包括:根据智能合约代码的功能,提取用于实现业务功能的代码,组成智能合约代码模块;根据智能合约代码的功能,提取用于实现代码漏洞验证功能的代码,组成智能合约验证模块。进一步地,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据智能合约代码模块中代码的功能,提取用于响应业务请求,根据业务请求处理业务数据,并为外部设备提供服务接口的代码,组成控制器子模块;根据智能合约代码模块中代码的功能,提取用于定义数据结构,并提供所存储业务数据的读写接口的代码,组成数据子模块。进一步地,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据控制器子模块中代码的功能,提取用于根据业务请求读取数据子模块所存储业务数据,并根据业务请求对业务数据进行逻辑处理的代码,组成业务控制器单元;根据控制器子模块中代码的功能,提取用于根据业务请求提供对应的数据子模块地址的代码,组成数据地址控制器单元。进一步地,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据数据地址控制器单元中代码的功能,提取根据业务请求确定数据子模块命名,并根据数据子模块命名与数据子模块地址之间的映射关系提供数据子模块地址的代码,组成命名空间控制器单元;和/或根据数据地址控制器单元中代码的功能,提取根据业务请求确定业务类别,并根据业务类别与数据子模块地址之间的映射关系提供数据子模块地址的代码,组成业务分类控制器单元;和/或根据数据地址控制器单元中代码的功能,提取根据业务请求从预先存储的子合约中查找对应的数据子模块地址的代码,组成工厂控制器单元。进一步地,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据所述智能合约验证模块中代码的功能,提取在智能合约开发阶段对智能合约代码进行形式化验证的代码,组成开发形式化验证子模块;和/或根据所述智能合约验证模块中代码的功能,提取对于区块链上存储的智能合约代码进行形式化验证的代码,组成链上形式化验证子模块;和/或根据所述智能合约验证模块中代码的功能,提取在智能合约开发阶段对智能合约系统各模块进行测试,验证智能合约系统各模块是否存在漏洞的代码,组成开发测试验证子模块。根据本专利技术的另一方面,提供一种智能合约系统,包括:智能合约代码模块,用于实现业务功能;智能合约验证模块,用于实现代码漏洞验证功能;其中,所述智能合约代码模块、所述智能合约验证模块分类存储在不同地址。进一步地,所述智能合约代码模块包括:控制器子模块,所述控制器子模块用于响应业务请求,根据业务请求处理业务数据,并为外部设备提供服务接口;数据子模块,所述数据子模块用于定义数据结构,并提供所存储业务数据的读写接口。进一步地,所述智能合约验证模块包括:开发形式化验证子模块,用于在智能合约开发阶段对智能合约代码进行形式化验证;和/或链上形式化验证子模块,用于对于区块链上存储的智能合约代码进行形式化验证;和/或开发测试验证子模块,用于在智能合约开发阶段对智能合约系统各模块进行测试,验证智能合约系统各模块是否存在漏洞。进一步地,所述智能合约代码模块还包括:缓存子模块,用于缓存业务请求数据。本专利技术与现有技术相比具有以下的优点:1.本专利技术的智能合约系统的构建方法,将智能合约分为多个不同的功能单元,使每个功能简单化、模块化,如此通过搭积木式能够搭建实现较大业务功能的智能合约,且多个不同的功能单元分类存储,互不干扰,可实现智能合约的灵活调用与嵌套,便于处理复杂业务逻辑场景,能够解决智能合约语义复杂及安全漏洞问题,提高有效代码复用率本文档来自技高网
...

【技术保护点】
1.一种智能合约系统的构建方法,其特征在于,包括:获取智能合约代码;根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元;将多个不同的功能单元分类存储。

【技术特征摘要】
1.一种智能合约系统的构建方法,其特征在于,包括:获取智能合约代码;根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元;将多个不同的功能单元分类存储。2.根据权利要求1所述的构建方法,其特征在于,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤包括:根据智能合约代码的功能,提取用于实现业务功能的代码,组成智能合约代码模块;根据智能合约代码的功能,提取用于实现代码漏洞验证功能的代码,组成智能合约验证模块。3.根据权利要求2所述的构建方法,其特征在于,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据智能合约代码模块中代码的功能,提取用于响应业务请求,根据业务请求处理业务数据,并为外部设备提供服务接口的代码,组成控制器子模块;根据智能合约代码模块中代码的功能,提取用于定义数据结构,并提供所存储业务数据的读写接口的代码,组成数据子模块。4.根据权利要求3所述的构建方法,其特征在于,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据控制器子模块中代码的功能,提取用于根据业务请求读取数据子模块所存储业务数据,并根据业务请求对业务数据进行逻辑处理的代码,组成业务控制器单元;根据控制器子模块中代码的功能,提取用于根据业务请求提供对应的数据子模块地址的代码,组成数据地址控制器单元。5.根据权利要求4所述的构建方法,其特征在于,根据智能合约代码的功能,将智能合约代码拆分为实现不同功能的代码,根据实现不同功能的代码构建多个不同的功能单元的步骤还包括:根据数据地址控制器单元中代码的功能,提取根据业务请求确定数据子模块命名,并根据数据子模块命名与数据子模块地址之间的映射关系提供数据子模块地址的代码,组成命名空间控制器单元;和/或根据数据地址控制器单元中代码的...

【专利技术属性】
技术研发人员:杨子一李斌张勇
申请(专利权)人:北京瑞卓喜投科技发展有限公司
类型:发明
国别省市:北京,11

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

1