首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于符号执行对智能合约功能属性进行形式化验证的方法及系统_北京大学_202210047615.4 

申请/专利权人:北京大学

申请日:2022-01-17

公开(公告)日:2024-05-17

公开(公告)号:CN114510414B

主分类号:G06F11/36

分类号:G06F11/36

优先权:

专利状态码:有效-授权

法律状态:2024.05.17#授权;2022.06.03#实质审查的生效;2022.05.17#公开

摘要:本发明公开了一种基于符号执行对智能合约功能属性进行形式化验证的方法及系统,通过合约属性解析将自定义功能属性的证明转化为可达性验证,提供一种利用符号执行自动化进行形式化验证的新途径,对属性断言进行等价转换尝试进行归纳证明能对可归纳性属性达到快速验证的效果,有效提高验证速度,对于不满足的功能属性能够构造对应的反例提高可用性,另外,将符号执行与抽象验证分离开,能够避免不必要的抽象降低符号执行的效率,保证了符号执行收敛的速度。本发明可以自动化对智能合约功能属性进行形式化验证并输出不符合的属性的反例,并通过对合约属性的预处理,可归纳性验证和迭代不动点法相结合有效提高符号执行可达性验证的效率。

主权项:1.一种基于符号执行对智能合约功能属性进行形式化验证的方法,首先将自定义功能属性形式化为属性断言,然后抽象该属性断言通过符号执行尝试可归纳性验证,若其具有可归纳性,则可直接证明;若其不具有可归纳性,则通过深度的符号执行不断扩充可达抽象状态集,迭代计算可达抽象状态的不动点,最终从不动点去尝试推导属性断言,若均能成功推导,则已证明了该属性断言,否则,尝试构造反例输出;具体包括如下步骤:1接收一个或多个合约C1,C2…Cm以及输入一系列自定义属性断言φ1,φ2…φn,将属性断言进行等价变换,变换为□φ1’,□φ2’…□φn’的形式,其中□φi’表示属性断言φi’恒成立,m、n、i代表自然数;2将输入的一系列合约合并为一个合约C0;3根据属性断言在合约相应的位置添加新属性变量,插入监测代码,得到插桩合约Cφ,其包含函数{f1,f2…fk},其中k代表自然数;4根据插桩合约Cφ及等价变换后的属性断言□φ1’,□φ2’…□φn’解析所需的抽象状态α;5对于一条需要验证的属性断言φ’,通过init来构建初始化的抽象状态αinit,检查在αinit下属性断言是否成立,若成立则进入步骤6,不成立则插桩合约Cφ不满足属性断言φ’,即证明了输入合约C1,C2…Cm不满足属性断言φ;6将初始化的抽象状态αinit转换为初始符号状态集S0{s10,s20…sm0};7以初始符号状态集中各状态为初始状态,执行函数fi,得到符号状态集Si{s1i,s2i…smi},并转化为抽象状态集Ai{α1i,α2i…αmi};8若对于某属性断言φ’生成的初始符号状态集S0分别执行{f1,f2…fk}得到的符号状态集Si及其对应的抽象状态集Ai,若φ’均仍然成立,则φ’是可归纳证明属性断言且φ’恒成立,即证明了输入合约C1,C2…Cm满足属性断言φ;若不成立,则进入步骤9;9根据步骤5中构建的初始化的抽象状态αinit,初始化可达抽象状态集合reachCφ0={αinit};10以符号方式执行一次while循环,调用fi,并在交易结束后计算精确的符号状态s,s实际上是不同路径约束p1∪p2∪…∪pk的所有可能,包括s1,s2…sk;11根据精确的符号状态s1,s2…sk计算出抽象状态α1,α2…αm,由于不同的符号状态可能得到相同的抽象状态,故有k≥m;12将抽象状态α1,α2…αm加入可达抽象状态集合reachCφ0得到可达抽象状态集合reachCφ1,重复步骤10和11;由于抽象状态域是有限的,故最终reachCφ一定会达到不动点reachCφi+1=reachCφi;13根据可达抽象状态集不定点reachCφfix验证是否满足属性断言φ’,若满足则证明此合约Cφ满足属性断言φ’,等价于证明了输入合约C1,C2…Cm满足属性断言φ,若不满足则进入步骤14;14尝试根据该抽象状态对应的符号状态回查已记录的符号执行的路径信息,尝试构建一个反例{user,func,args1,user,func,args2…user,func,argsn}并输出,证明了输入合约C1,C2…Cm不满足属性断言φ。

全文数据:

权利要求:

百度查询: 北京大学 一种基于符号执行对智能合约功能属性进行形式化验证的方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。