智能合约的组合验证
在智能合约的开发和应用中,验证其正确性和安全性至关重要。本文将介绍一种智能合约验证方法,以及相关的理论和实践贡献。
1. 方法概述
我们的方法与演绎式智能合约解决方案不同,它能自动找到归纳强化。与其他智能合约模型检查解决方案相比,它不限于前置和后置条件,并且可以扩展到 2160 个用户。其关键理论贡献在于证明了使用局部束抽象的验证是参数化组合模型检查(PCMC)的一个实例,并实现了其适用的边条件自动化。实践方面,我们在新的智能合约验证工具 SmartACE 中实现并评估了该方法,使用 SeaHorn 进行符号模型检查(SMC)。
SmartACE 的工作流程如下:
1. 输入一个合约和一个谓词。
2. 通过分析每个交易中的通信,自动从合约中推断出代表。
3. SeaHorn 相对于这些代表验证谓词。
4. 如果谓词正确,则返回一个局部束。
2. 背景知识
2.1 参数化组合模型检查(PCMC)
许多过渡系统是参数化的,例如客户端 - 服务器应用程序和数组操作程序。同步控制 - 用户网络(SCUNs)是一种常见的参数化系统,其中用户仅与控制进程同步,不自行执行代码。
一个 SCUN N 是一个元组 (SC, SU, PI, PS, TI, TS, c0, u0),其语义由参数化的标记过渡系统 M(N) 给出。参数化系统具有参数化属性,k - 通用安全属性是一个谓词 ϕ ⊆ SC × (SU)k。PCMC 的关键在于一致性和组合不变量。组合不变量由两个谓词 θC ⊆ SC 和 θU ⊆ SC × SU 满足以下条件:
-
超级会员免费看
订阅专栏 解锁全文
3571

被折叠的 条评论
为什么被折叠?



