As smart contracts gain adoption in financial transactions, it becomes increasingly important to ensure that they are free of bugs and security vulnerabilities. Of particular relevance in this context are arithmetic overflow bugs, as integers are often used to represent financial assets like account balances. Motivated by this observation, this paper presents SolType, a refinement type system for Solidity that can be used to prevent arithmetic over- and under-flows in smart contracts. SolType allows developers to add refinement type annotations and uses them to prove that arithmetic operations do not lead to over- and under-flows. SolType incorporates a rich vocabulary of refinement terms that allow expressing relationships between integer values and aggregate properties of complex data structures. Furthermore, our implementation, called Solid, incorporates a type inference engine and can automatically infer useful type annotations, including non-trivial contract invariants. To evaluate the usefulness of our type system, we use Solid to prove arithmetic safety of a total of 120 smart contracts. When used in its fully automated mode (i.e., using Solid's type inference capabilities), Solid is able to eliminate 86.3% of redundant runtime checks used to guard against overflows. We also compare Solid against a state-of-the-art arithmetic safety verifier called VeriSmart and show that Solid has a significantly lower false positive rate, while being significantly faster in terms of verification time.


翻译:随着智能合同在金融交易中被采纳,确保智能合同不受错误和安全弱点的影响变得日益重要。在这方面,特别相关的是算术溢出错误,因为整数常常用于代表金融资产,如账户余额。受此观察的驱动,本文件展示了SolType,这是一个完善的团结型系统,可以用来防止智能合同中计算过量和流量不足。SolType允许开发商添加精细型说明,并用来证明算术操作不会导致溢出和溢出。SolType含有丰富的精细化术语词汇,可以表达整数值和复杂数据结构的综合属性之间的关系。此外,我们的执行,称为Sustrial,包含一种类型的推算引擎,可以自动推断有用的类型说明,包括非边际合同。为了评估我们类型系统的有用性,我们使用固化软件来证明总共120个智能合同的算术安全性。当使用其完全自动化模式(即使用Sild'类推算能力)时,Slistable能够大量消除86.3%的超值检查,而我们用正值的准确性核查率要大大低于正值,我们用来对正值的保证。

0
下载
关闭预览

相关内容

【UAI2021教程】贝叶斯最优学习,65页ppt
专知会员服务
64+阅读 · 2021年8月7日
【干货书】机器学习速查手册,135页pdf
专知会员服务
125+阅读 · 2020年11月20日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
40+阅读 · 2019年10月9日
已删除
将门创投
4+阅读 · 2019年11月8日
逆强化学习-学习人先验的动机
CreateAMind
16+阅读 · 2019年1月18日
人工智能 | 国际会议信息6条
Call4Papers
5+阅读 · 2019年1月4日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
Arxiv
0+阅读 · 2021年11月26日
Arxiv
0+阅读 · 2021年11月24日
VIP会员
相关VIP内容
【UAI2021教程】贝叶斯最优学习,65页ppt
专知会员服务
64+阅读 · 2021年8月7日
【干货书】机器学习速查手册,135页pdf
专知会员服务
125+阅读 · 2020年11月20日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
40+阅读 · 2019年10月9日
相关资讯
已删除
将门创投
4+阅读 · 2019年11月8日
逆强化学习-学习人先验的动机
CreateAMind
16+阅读 · 2019年1月18日
人工智能 | 国际会议信息6条
Call4Papers
5+阅读 · 2019年1月4日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
Top
微信扫码咨询专知VIP会员