[发明专利]区块链智能合约形式化验证代码转换器及转换方法有效
申请号: | 201810266318.2 | 申请日: | 2018-03-28 |
公开(公告)号: | CN108459860B | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 杨霞 | 申请(专利权)人: | 成都链安科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 成都四合天行知识产权代理有限公司 51274 | 代理人: | 王记明 |
地址: | 610000 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 智能 合约 形式化 验证 代码转换器 转换 方法 | ||
本发明公开了区块链智能合约形式化验证代码转换器及方法,将多种语言开发的智能合约程序代码自动化转换为形式化验证辅助证明器可识别运行的中间层语言M+代码,然后通过形式化验证辅助证明器对工具生成的中间语言M+语言代码进行自动化安全验证,高自动化的将智能合约源代码一键转换为形式化验证中间语言M+代码,自动提取形式化代码中的数据类型、运算符、特殊结构、条件和循环语句、函数继承关系、函数限定符等内容,并映射到执行空间执行,从而极大程度的提高区块链智能合约形式化安全验证效率,减少了人工参与度,提高了自动化程度,同时也确保了代码形式化过程的准确性。
技术领域
本发明涉及区块链智能合约安全技术领域,具体涉及区块链智能合约形式化验证代码转换器及转换方法。
背景技术
智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。在区块链技术背景下,智能合约是指运行在区块链上,能够执行某些功能的程序代码。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可追踪、不可篡改。正因为此特性,一旦因为智能合约程序自身设计问题,导致智能合约的安全漏洞,或将产生不可逆转的重大损失。形式化验证方法是使用数学的公式、定理和系统来验证一个系统的正确性,可以使用该方法验证智能合约代码的安全性,检查代码是否有漏洞。但是传统的形式化验证方法对源码形式化描述阶段代码量大,对安全验证的程序员要求高,并且效率低下,同时也保证了代码形式化过程的准确性。
发明内容
本发明的目的在于提供一种区块链智能合约形式化验证代码转换器及转换方法,解决区块链智能合约形式化验证过程对源码形式化描述阶段代码量大、操作复杂、人工参与量大并且效率低下的问题。
本发明通过下述技术方案实现:
区块链智能合约形式化验证代码转换器,包括:
智能合约语言文法规则库:用于存储不同编程语言的文法规则;
词法分析器:用于读入智能合约程序源程序,结合智能合约语言文法规则库中存储的不同编程语言的文法规则,对输入的字符串进行扫描与分解,识别合法的词素,产生并输出特定规则的词法单元序列;
语法分析器:用于存储简单优先表,接收词法分析器输出的词法单元序列,并将词法单元序列与简单优先表进行比较判断,得出词法单元序列所属的编程语言种类,结合智能合约语言文法规则库中对应的文法规则,对词法单元序列中的词素按照自定义规则生成抽象语法树;
形式化验证语言文法规则库:用于存储形式化验证语言文法规则、以及智能合约编程语言词素与形式化中间语言M+语言词素对接字典表;
语法树对接器:利用对接字典表将语法分析器输出的抽象语法树中的内容一一对应替换,从而生成新的形势化验证中间语言M+语法树;
形式化验证语言推导器:利用中间语言M+的文法规则将语法树对接器输出的中间语言M+语法树生成M+语言代码;
形式化验证代码解析器:解析出形式化验证语言推导器所生成的M+语言代码,得到智能合约代码中的内容,并为其分配内存地址,映射到虚拟执行空间中。
本发明的区块链智能合约形式化验证代码转换器,其主要功能是将多种语言开发的智能合约程序代码自动化转换为形式化验证辅助证明器可识别运行的中间层语言M+代码,然后通过形式化验证辅助证明器对工具生成的中间语言M+语言代码进行自动化安全验证,从而极大程度的提高区块链智能合约形式化安全验证效率,减少了人工参与度,提高了自动化程度,保证了代码形式化过程的准确性。
区块链智能合约形式化验证代码转换方法,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都链安科技有限公司,未经成都链安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810266318.2/2.html,转载请声明来源钻瓜专利网。