当前位置: X-MOL 学术Program. Comput. Softw. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Debugging Smart Contract’s Business Logic Using Symbolic Model Checking
Programming and Computer Software ( IF 0.7 ) Pub Date : 2020-01-14 , DOI: 10.1134/s0361768819080164
E. Shishkin

Abstract

Smart contracts are a special type of programs running inside a blockchain. Immutable and transparent, they provide means to implement fault-tolerant and censorship-resistant services. Unfortunately, its immutability causes a serious challenge of ensuring that a business logic and implementation is correct upfront, before publishing in a blockchain. Several big accidents have indeed shown that users of this technology need special tools to verify smart contract correctness. Existing automated checkers are able to detect only well known implementation bugs, leaving the question of business logic correctness far aside. In this work, we present a symbolic model-checking technique along with a formal specification method for a subset of Solidity programming language that is able to express both state properties and trace properties; the latter constitutes a weak analogy of temporal properties. We evaluate the proposed technique on the MiniDAO smart contract, a young brother of notorious TheDAO. Our Proof-of-Concept was able to detect a non-trivial error in the business logic of this smart contract in a few seconds.


中文翻译:

使用符号模型检查调试智能合约的业务逻辑

摘要

智能合约是在区块链内部运行的一种特殊类型的程序。它们是不变且透明的,它们提供了实现容错和抗审查性服务的方法。不幸的是,它的不变性给在区块链中发布之前确保业务逻辑和实现正确正确的提出了严峻的挑战。确实发生了几起重大事故,表明该技术的用户需要特殊的工具来验证智能合约的正确性。现有的自动检查器仅能够检测到众所周知的实现错误,而将业务逻辑正确性的问题放在了一边。在这项工作中,我们提出了一种符号模型检查技术,以及针对Solidity编程语言子集的正式规范方法,该子集能够表达状态属性和跟踪属性。后者构成了时间特性的弱类比。我们以臭名昭著的TheDAO的弟弟MiniDAO智能合约评估了拟议的技术。我们的概念证明能够在几秒钟内检测到此智能合约的业务逻辑中的一个重要错误。
更新日期:2020-01-14
down
wechat
bug