[发明专利]一种适用于组合交易的智能合约形式化验证方法及系统有效
申请号: | 202210029440.4 | 申请日: | 2022-01-12 |
公开(公告)号: | CN114047928B | 公开(公告)日: | 2022-03-15 |
发明(设计)人: | 陈钟;关志;李青山;董宇;李悦;崔冬琪;陈子明 | 申请(专利权)人: | 北京大学;博雅正链(北京)科技有限公司 |
主分类号: | G06F8/51 | 分类号: | G06F8/51;G06Q20/38;G06Q40/04 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 黄凤茹 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 组合 交易 智能 合约 形式化 验证 方法 系统 | ||
本发明公布了一种适用于组合交易的智能合约形式化验证方法,组合交易是指场景中包含多笔交易或者一笔交易涉及多个合约的情形;其特征是,基于区块链以太坊智能合约源代码添加合约约束,包括组合交易场景中的跨函数和跨合约约束,再将添加合约约束后的源代码转换为中间验证语言中相对应的类型、语句、表达式和约束,之后通过验证器自动地对中间验证语言文件进行形式化验证,保障智能合约安全性。采用本发明技术方案,能够支持跨函数和跨合约约束功能的验证,能够在多交易场景下验证合约功能,满足实际应用需要,有效保证智能合约安全。
技术领域
本发明属于区块链技术、智能合约技术领域,涉及智能合约形式化验证技术,尤其涉及一种适用于组合交易的Solidity智能合约形式化验证方法,用于形式化验证Solidity智能合约。
背景技术
区块链是综合运用分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型技术,具有去中心化、不可篡改、公开透明等特点。区块链本质是一个分布式数据库,使用去中心化共识机制,让区块链中的参与者不依赖第三方管理机构的情况下维护一个统一的分布式账本。
智能合约是指运行在区块链上的一段代码,当双方在区块链资产上进行交易满足触发条件时,程序就会自动执行合约内容,由区块链的特性保障存储、读取、执行整个过程透明可追踪、不可篡改。以太坊智能合约用Solidity语言编写,编译为字节码后在以太坊虚拟机(EVM)中运行。合约的部署方通过发送交易的形式将合约代码发送并保存到区块链上,其他用户或者合约可以通过调用API的形式与合约代码进行交互。
因为区块链的不可篡改性,智能合约代码一旦上链便无法更改或升级,因此如果代码存在根本问题,可能导致不可逆转的重大损失。比如2016年发生的较为严重的The DAO事件,攻击者利用智能合约存在的漏洞盗取了价值6000万美元的以太币,造成了重大损失。频频爆出的智能合约安全事件,使得越来越多来自学术界和工业界的研究人员开始关注智能合约的安全问题,在合约代码部署前利用各种算法和工具对合约进行安全审计,排查可能存在的威胁和漏洞。而现在合约代码的复杂性在不断提高,许多应用场景都需要一个合约内不同函数的交互或者多个合约的相互交互才能够实现,即组合交易场景。因为现在大多数交易都面向组合交易场景,越来越多的安全攻击也在组合交易的场景下发生,因此保障组合交易场景下的智能合约安全性与功能性至关重要。
现有的智能合约功能性验证的主要方法为形式化验证,即使用数学的公式、定理和系统来验证一个系统的正确性。形式化验证通常将程序翻译为可验证的形式化语言,然后通过严谨的数学推理和证明进行验证。相比于其他软件测试方法,形式化验证可以证明一个系统不存在某个缺陷或符合某些属性,对智能合约的概念和属性也会进行全面检查。目前的功能性验证支持的场景分为两类:针对某类场景,例如针对ERC20或者ERC721;针对某个合约或者某个函数。如果用现有的形式化验证方法对组合交易场景下的合约验证,因为无法对合约或函数间的关系进行验证,很容易出现假阳性的情况。除此之外,现有的功能性验证工具都没有提供对第三方合约验证的功能,也没有提供对第三方合约属性约束的规范。
发明内容
为了克服上述现有技术的不足,本发明提供一种适用于组合交易场景的Solidity智能合约形式化验证的方法,用户将需要验证的功能语义插入到智能合约中,最终检验合约是否满足这些功能语义。
本发明中,组合交易场景指场景中包含多笔交易或者一笔交易涉及多个合约,具体如下:
(1)场景包含多笔交易:由合约调用者操纵的交易序列,对一个合约的不同函数按次序发起调用。(2)场景涉及多个合约:由合约编写者编写的交易序列,一个合约对另一个合约中的函数发起调用。
本发明的技术方案是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学;博雅正链(北京)科技有限公司,未经北京大学;博雅正链(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210029440.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电能计量方法、装置及电能表
- 下一篇:掩模层的重工方法及氮化硅蚀刻方法