《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > The DAO事件的形式化分析
The DAO事件的形式化分析
信息技術與網絡安全
朱雪陽1,2
(1.中國科學院 軟件研究所 計算機科學國家重點實驗室,北京100190;2.中國科學院大學,北京100049)
摘要: 隨著區(qū)塊鏈應用的推廣與深入,智能合約的作用越來越突出,智能合約的安全問題也更加突顯。由于區(qū)塊鏈不可篡改的特點,智能合約一旦部署不可更改。在開發(fā)階段保證智能合約的可靠性顯得尤為重要。在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),未經授權禁止轉載。