Formal Verification of Smart Contracts Short Paper
Formal Verification of Smart Contracts: Short Paper
ABSTRACT
提出将使用F*框架用于编写代码
1. INTRODUCTION
本文目的:通过静态分析方式查找漏洞
字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件,是一种中间码。
将智能合约的验证分为双端方式:(基于语言的方式来证明)
1.直接对Solidity编程语言转换成F*语言 *
Solidity*
Runtime error就是在运行期间出现的错误,运行时错误不同于炸弹或系统垮掉,运行时错误一般不影响操作系统运行*.)时的安全性
2.将EVM字节码部分转换成F*语言
EVM* 将EVM字节码反编译为F*语言。
允许我们分析低级别的属性,例如完成呼叫或交易所需的气体量上限
文章目的:
未来验证可靠性编译器的正确性
2. FROM SOLIDITY TO F*
提供的方式:
提出工具将Solidity转换为F* 语言,并提供了嵌入式F*的自动分析样本
研究中不包含循环语句
2.1具体的转换
合约转换为F模块——类型声明转换——合同属性打包成状态记录——合同方法转换成F?* 的功能——判断分支是返回还是抛出——赋值的转换——内置的方法调用被库调用替换
2.2检验易受攻击的模式
Solidity程序的缺陷:
其他运行时错误(如气体耗尽或调用堆栈溢出)都会触发异常。但在使用send函数时send and its variants are not guaranteed to succeed (send returns a bool).
3.字节码反编译码为F*
EVM*?作为EVM字节码的反编译器,用于分析Solidity源代码不可用的合约,并用于检验合约的低级属性
反编译器基于符号执行进行堆栈分析,以识别程序中的跳转目的地,并检测堆栈不足和溢出
4.结论
利用F* 来验证智能合约:
1.可以灵活捕捉并验证合同的程序的相关属性
2.便于利用其他静态工具进行验证
3.利用符号执行来进行验证
未来方向:
Formal Verification of Smart Contracts Short Paper相关推荐
- 阅读论文Formal verification of smart contracts based on users and blockchain behaviors models
1 题目(Formal verification of smart contracts based on users and blockchain behaviors models) 1.1 作者.出 ...
- Reversing Ethereum Smart Contracts: Part 2
In my previous tutorial, we began reversing engineering the Greeter.sol contract. Specifically, we l ...
- Understanding Ethereum Smart Contracts
You might have heard the term "smart contract," and you might even know that they are &quo ...
- How to Secure Your Smart Contracts: 6 Solidity Vulnerabilities and how to avoid them (Part 2)
While Part 1 discussed some more high profile or obvious vulnerabilities, this post will be about vu ...
- Formal Verification (五) coverage、sign-off flow
coverage type formal和simulation一样,也是基于coverage-driven的验证方式:针对formal的coverage metrics,可以分为以下几种(不同工具定义 ...
- full paper(long paper),short paper,oral,poster,workshop,findings
注:本文参考以下资源整理而来: 参考1:https://blog.csdn.net/keneyr/article/details/103210960 参考2:https://www.zhihu.com ...
- Part 2 — Making Sense of Smart Contracts
The term "smart contract" has no clear and settled definition. The idea has long been hype ...
- How to Secure Your Smart Contracts: 6 Solidity Vulnerabilities and how to avoid them (Part 1)
In a previous post we discussed the future of Ethereum's scalability by analyzing the concepts prese ...
- Formal Verification (一) 形式验证的分类、发展、适用场景
资料分享:百度网盘 提取码:csdn Definition Formal Verification:利用数学分析的方法,通过算法引擎建立模型,对待测设计的状态空间进行穷尽分析的验证. Kinds of ...
最新文章
- 英语模板末尾【希望可以记着】
- sqllite配置(参考别人)
- 写一个会导致死锁的线程
- 简述计算机配件选购原则,计算机专业理论期末考试试题
- 写底部样式一定要加的属性
- 【机器学习入门笔记6:OpenCV像素的读取与写入】20190204
- 前华远房地产任大炮任志强:我一定不要清华的毕业生
- 如何分析线程转储– IBM VM
- [html] 你认为写出什么样的html代码才是好代码呢?
- Spring Data REST 远程代码执行漏洞(CVE-2017-8046)分析与复现
- 生成word_Word如何生成目录?3个步骤轻松掌握!
- 小孔成像实验探究的软件_小孔成像法观察日食
- matlab如何把实验结果记录在文件中,实验一Matlab基本操作
- Hololens2 与Unity 远程连接调试程序和调试部署
- nbu备份脚本 linux,netbackup备份教程详解
- 为什么10M、20M的宽带只有大约1、2M的下载速度——网速KB/s与Kbps(Kb/s)的区别
- 【python小技巧】 批量将.png格式图片转换为.jpg格式图片
- 罗技G304接收器无反应问题,现象及解决方法
- Android新闻客户端实训-Day1类Day2接口基操
- 不应将商业行为政治化!