《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > The DAO事件的形式化分析
The DAO事件的形式化分析
信息技术与网络安全
朱雪阳1,2
(1.中国科学院 软件研究所 计算机科学国家重点实验室,北京100190;2.中国科学院大学,北京100049)
摘要: 随着区块链应用的推广与深入,智能合约的作用越来越突出,智能合约的安全问题也更加突显。由于区块链不可篡改的特点,智能合约一旦部署不可更改。在开发阶段保证智能合约的可靠性显得尤为重要。在The DAO事件中,由于智能合约中存在一种被称为重入漏洞的错误,黑客得以窃取在当时价值巨大的以太币。通过形式化分析来更清晰地展示重入漏洞的特点及重入攻击行为,并以此为例介绍基于模型检测技术的智能合约形式化验证方法。
中图分类号: TP301
文献标识码: A
DOI: 10.19358/j.issn.2096-5133.2021.05.003
引用格式: 朱雪阳. The DAO事件的形式化分析[J].信息技术与网络安全,2021,40(5):13-19.
Formal analysis of the DAO exploit
Zhu Xueyang1,2
(1.State Key Laboratory of Computer Science,Institute of Software,Chinese Academy of Sciences,Beijing 100190,China; 2.University of the Chinese Academy of Sciences,Beijing 100049,China)
Abstract: Along with the spread and deepening of blockchain technology application, the role of smart contracts inevitably become more and more important, and the security of smart contracts must receive more attention. Due to the immutable nature of blockchain, once a smart contract is deployed,it cannot be changed. Therefore, it is particularly important to guarantee the reliability during the development stage of smart contracts. In the DAO exploit, hackers were able to steal lots of ether, which was of great value at the time, due to a vulnerability called Reentrancy. This paper illustrates the feature of the vulnerability and the attack behavior by formal analysis, and by which the model checking based formal verification of smart contracts is also introduced.
Key words : smart contract;formal verification;model checking;vulnerability

0 引言

化名为“中本聪”(Satoshi Nakamoto)的学者于2008年提出了比特币概念并于2009年初发行了最初的50个比特币[1]。随后,人们发现比特币底层所用的区块链技术并不仅仅限于加密数字货币的应用[2];特别是提供智能合约[3]编程的开放区块链平台以太坊(Ethereum)[4]的创立,使区块链技术的发展更加生机勃勃。

区块链是一种将数据区块按照时间顺序组织起来的加密链式结构,是一种不可篡改和不可伪造的去中心化共享账本。加入智能合约后,区块链技术可看作是一种新型的去中心化基础架构与分布式计算范式[5]。有了智能合约,开发人员能够在区块链上建立和发布各种分布式应用,为区块链技术的应用提供了无限的可能。

智能合约最初由SZABO N提出[6](1997年正式发表[7]),是以数字形式定义的一组承诺,以及合约参与方执行这些承诺所需的协议。智能合约的本质是运行于区块链这一去中心化基础架构上的分布式程序,是运行在共享区块链数据账本上的商业逻辑,在被触发时自动执行。

正如软件在网络安全的研究与实践中扮演着至关重要的角色,几乎所有的网络攻击都是利用系统软件或应用软件中存在的安全缺陷实施的[8]。在区块链系统安全中,智能合约也扮演着重要的角色。如著名的The DAO事件[9],由于智能合约中存在安全漏洞,黑客得以窃取在当时价值超过五千万美元的360万个以太币。智能合约的安全(security)问题得到广泛关注[10];许多用于合约漏洞检查的原型工具应运而生,如采用符号化执行[11]方法的工具Oyente[12]、Mythril[13]、Manticore[14]和Securify[15]等,以及在线检查合约漏洞的工具如文献[16]和文献[17]等。



本文详细内容请下载:http://www.chinaaet.com/resource/share/2000003545




作者信息:


朱雪阳1,2

(1.中国科学院 软件研究所 计算机科学国家重点实验室,北京100190;2.中国科学院大学,北京100049)


此内容为AET网站原创,未经授权禁止转载。