《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > 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年初發(fā)行了最初的50個比特幣[1]。隨后,人們發(fā)現(xiàn)比特幣底層所用的區(qū)塊鏈技術并不僅僅限于加密數(shù)字貨幣的應用[2];特別是提供智能合約[3]編程的開放區(qū)塊鏈平臺以太坊(Ethereum)[4]的創(chuàng)立,使區(qū)塊鏈技術的發(fā)展更加生機勃勃。

區(qū)塊鏈是一種將數(shù)據(jù)區(qū)塊按照時間順序組織起來的加密鏈式結構,是一種不可篡改和不可偽造的去中心化共享賬本。加入智能合約后,區(qū)塊鏈技術可看作是一種新型的去中心化基礎架構與分布式計算范式[5]。有了智能合約,開發(fā)人員能夠在區(qū)塊鏈上建立和發(fā)布各種分布式應用,為區(qū)塊鏈技術的應用提供了無限的可能。

智能合約最初由SZABO N提出[6](1997年正式發(fā)表[7]),是以數(shù)字形式定義的一組承諾,以及合約參與方執(zhí)行這些承諾所需的協(xié)議。智能合約的本質是運行于區(qū)塊鏈這一去中心化基礎架構上的分布式程序,是運行在共享區(qū)塊鏈數(shù)據(jù)賬本上的商業(yè)邏輯,在被觸發(fā)時自動執(zhí)行。

正如軟件在網絡安全的研究與實踐中扮演著至關重要的角色,幾乎所有的網絡攻擊都是利用系統(tǒng)軟件或應用軟件中存在的安全缺陷實施的[8]。在區(qū)塊鏈系統(tǒng)安全中,智能合約也扮演著重要的角色。如著名的The DAO事件[9],由于智能合約中存在安全漏洞,黑客得以竊取在當時價值超過五千萬美元的360萬個以太幣。智能合約的安全(security)問題得到廣泛關注[10];許多用于合約漏洞檢查的原型工具應運而生,如采用符號化執(zhí)行[11]方法的工具Oyente[12]、Mythril[13]、Manticore[14]和Securify[15]等,以及在線檢查合約漏洞的工具如文獻[16]和文獻[17]等。



本文詳細內容請下載:http://ihrv.cn/resource/share/2000003545




作者信息:


朱雪陽1,2

(1.中國科學院 軟件研究所 計算機科學國家重點實驗室,北京100190;2.中國科學院大學,北京100049)


此內容為AET網站原創(chuàng),未經授權禁止轉載。