首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMTChecker和Manticore的区别?

SMTChecker和Manticore的区别?
EN

Ethereum用户
提问于 2020-07-18 11:34:38
回答 1查看 187关注 0票数 4

我为什么要在SMTChecker上使用Bits的Trail‘蝎尾兽,它是在Solity编译器中烘焙的?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2021-01-26 09:18:05

tl;dr:您应该同时使用(以及更多) :)

不同的FV/静态分析工具通常有不同的特性和优缺点,这可能是相辅相成的,并为您提供了更好的覆盖率。

例如,在这种情况下,Manticore以EVM字节码为目标,而SMTChecker则以Solidity代码为目标。

  • 对于高层次属性、契约不变量和状态变量的推理,目标稳健性更好。SMTChecker擅长契约不变量,能够处理循环,并在可读的可靠级别(全部自动化)上给出属性( but )的反例,但在验证低级别属性、按位操作、内联程序集和低级别数据操作时常常失败。
  • 针对EVM字节码的工具通常是相反的。我不能确切地代表Manticore,但是hevm就是这种模式的一个例子。EVM字节码工具的一个主要特性是,它们准确地分析将部署什么,因此不需要信任编译器(就像SMTChecker那样),而是验证编译器的工作。这方面的一个例子是EVM字节码包含ABI编码/解码代码,这些工具通常会为特定的契约进行验证。分析稳健性的工具没有这种特性,需要假设在输入函数时编码是正确的。从这个意义上讲,EVM字节码工具提供的证明更强大。

除了基本的符号编码/验证技术之外,每个工具都有自己的一组特性,这些特性可能对您的情况有用,也可能不有用。下面是我尝试更新的更多工具的列表:https://github.com/leonardoalt/ethereum_正式_验证_概述

票数 5
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/85097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档