南京工业大学王兴亚获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉南京工业大学申请的专利一种面向交易顺序依赖Root Cause的智能合约Flaky修复及验证方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN119201702B 。
龙图腾网通过国家知识产权局官网在2026-01-27发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202411243514.X,技术领域涉及:G06F11/3668;该发明授权一种面向交易顺序依赖Root Cause的智能合约Flaky修复及验证方法是由王兴亚;陈倩;张威威;丁玲艳设计研发完成,并于2024-09-05向国家知识产权局提交的专利申请。
本一种面向交易顺序依赖Root Cause的智能合约Flaky修复及验证方法在说明书摘要公布了:本发明提出一种面向交易顺序依赖RootCause的智能合约Flaky修复及验证方法。首先通过静态数据依赖分析,精准识别出与共享合约状态变量setter函数紧密相关的RootCause。接着,以setter函数作为目标,在setter函数中嵌入保护语句,即锁,以确保合约在修改状态变量之前进行状态检查。最后,将修改后的合约作为测试对象,将对状态变量具有写操作的语句作为关键节点,并将包含这些节点的执行路径定义为关键路径。以这些关键路径为测试目标,我们进行反复测试,观察合约在不同状态下的表现,从而验证修复补丁的有效性。本发明的目的在于提升智能合约的可靠性,增强测试结果的稳定性,优化开发流程,并促进区块链技术的健康发展,确保智能合约安全。
本发明授权一种面向交易顺序依赖Root Cause的智能合约Flaky修复及验证方法在权利要求书中公布了:1.一种面向交易顺序依赖RootCause的智能合约Flaky修复及验证方法,其特征在于,针对待测合约,首先通过静态数据依赖分析识别出由交易顺序依赖导致的FlakyTestRootCause,这些原因通常与共享合约状态变量的setter函数紧密相关,这些setter函数是修改状态变量的关键入口;接着,以setter函数作为目标,在setter函数中嵌入保护语句,即锁,以确保合约在修改状态变量之前进行状态检查;最后,将修改后的合约作为测试对象,将受状态变量影响的语句标记为关键节点,并将包含这些节点的执行路径定义为关键路径;通过将关键路径作为测试生成目标,并反复执行测试,能够观察合约在不同状态变量下的输出变化,从而验证修复后合约的有效性;最后输出已修复的合约repairedScut;该方法包括下列步骤: 1交易顺序依赖RootCause识别;给定待测合约scut,分析得到待测合约中公共函数Setter对状态变量具有写操作的语句集合stmts的字典map_settecr_stmts;首先初始化map_settecr_stmts为空,生成待测合约scut的抽象语法树ASTscut,然后从ASTscut中提取公共函数集合ListShare_Setters;然后构建待测合约scut的待测合约状态变量的数据依赖图dfgscut,dfgscut表示了合约中语句对状态变量的定义和使用情况;接下来遍历ListShare_Setters中每一个公共函数Setter,基于数据流分析识别对状态变量具有写操作的语句集合stmts,判断stms是否为空,如果stmts不为空,则将setter,stmts添加到map_state_setters中,否则继续遍历集合ListShare_Setters,直至为空;最后输出map_setter_stmts; 2智能合约修复;给定目标合约targetScut,以及目标合约的字典map_settecr_stmts,在不改变目标合约targetScut语义的前提下修复合约,得到已修复的合约repairedScut;首先根据遍历map_settecr_stmts中的key找到公共函数Setter的具体位置locationSetter,然后找到Setter函数对应的stmts,分析stmts得到受Setter影响的状态变量集合states;接着,在setter参数中为每一个state添加一个附件参数lockstate,该保护锁lockstate和状态变量state类型相同;遍历stmts中的每一条语句stmt,找到stmt的具体位置locationstmt,针对stmt增加一个保护语句guardStmt,以确保状态变量的当前值与调用者传递的预期值相对应,最后输出修复后后的合约repairedScut; 3面向关键路径的智能合约测试生成;给定修复后的合约repairedScut,以及该合约的字典map_settecr_stmts,得到测试用例集tests;通过生成包含不同交易顺序的测试用例,以覆盖修改后的相关语句;首先构建repairedScut的控制流图cfgrepairedScut,cfgrepairedScut表示了合约内各条语句之间的控制流转移关系;接着在cfgrepairedScut中找到包含stmts的节点nodes,将包含这些nodes且带有分支的路径定义为关键路径criticalPaths;然后将关键路径criticalPaths作为测试生成目标,采用模糊测试生成测试用例集tests; 4智能合约FlakyTestRootCause修复结果验证;给定已修复合约repairedScut,测试用例集tests,测试验证已修复的合约repairedScut;重复执行测试用例集tests直到达到预设次数L;对于每个测试用例,观察合约repairedScut在不同状态变量下的输出变化,并记录当前执行的输出结果resulti和下一次执行的输出结果resultj,比较resulti和resultj是否一致;如果测试用例在多次运行中结果始终一致,则可以认为该FlakyTest已经被成功修复;最后输出已修复的合约repairedScut。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人南京工业大学,其通讯地址为:211816 江苏省南京市江北新区浦珠南路30号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
以上内容由龙图腾AI智能生成。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

皖公网安备 34010402703815号
请提出您的宝贵建议,有机会获取IP积分或其他奖励