[發明專利]一種以太坊智能合約問題檢測和預防方法與裝置在審
| 申請號: | 201911314940.7 | 申請日: | 2019-12-19 |
| 公開(公告)號: | CN111177730A | 公開(公告)日: | 2020-05-19 |
| 發明(設計)人: | 張鵬程;肖鋒;于佳男;張勐;吉順慧;戴啟印;曹文南 | 申請(專利權)人: | 河海大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 孟紅梅 |
| 地址: | 211100 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 以太 智能 合約 問題 檢測 預防 方法 裝置 | ||
本發明提出了一種以太坊智能合約問題檢測和預防方法與裝置,該方法的輸入是用戶給定的以太坊智能合約源代碼。首先格式化源代碼,整理代碼的格式。然后根據不同問題的特征確定對應的正則表達式及檢測規則,并確定預防重入漏洞和整數溢出漏洞的代碼語句構造方法,再使用定義的正則表達式對格式化后的代碼進行匹配,通過匹配定位可能存在問題的代碼語句。對于整數溢出漏洞和重入漏洞兩種智能合約中的嚴重安全問題,本方法通過正則表達式定位可能存在問題的語句,然后通過程序插樁技術達成預防這兩種問題產生的效果。在檢測智能合約問題時,本方法可以獲得優良的準確率、查全率和檢測效率,并且可以覆蓋當前絕大部分的智能合約問題種類。
技術領域
本發明涉及一種代碼問題檢測和預防方法,尤其涉及一種針對以太坊智能合約的基于正則表達式和程序插樁的問題檢測和預防方法,屬于區塊鏈安全領域。
背景技術
以太坊是最大的支持智能合約的區塊鏈,市值超過160億美元。智能合約是在區塊鏈平臺上運行的自主程序。它們通常用幾種高級語言開發,然后編譯成字節碼。一旦將智能合約的字節碼部署到區塊鏈,任何人可以調用它的函數,但是不能更改字節碼。不幸的是,不可避免的,許多智能合約包含錯誤,但這些錯誤不能被修補,因為區塊鏈上數據的不可更改性。因此,擁有能夠幫助開發人員在將他們的字節碼部署到區塊鏈之前徹底檢測智能合約存在的問題的自動化工具是特別重要的。
靜態代碼分析是當前檢測以太坊智能合約安全的主流方法,現在已經提出了一些工具來檢測智能合約中存在的問題。然而,它們中的大多數只能處理智能合約的字節碼。雖然直接分析智能合約字節碼能夠帶來比較優秀的準確率,但檢測效率低下,并且不能夠覆蓋當下絕大部分種類的以太坊智能合約問題。因此,需要一個自動化工具,能夠快速地檢測以太坊智能合約問題,并且能夠覆蓋當下絕大部分種類的以太坊智能合約問題,在此基礎下,還要擁有不錯的準確率。雖然最近Tikhomirov等人提出了一種基于詞法分析、語法分析和XPath、處理以太坊智能合約源代碼的以太坊智能合約問題檢測和預防方法,但他們的方法仍然存在著一些缺陷:他們不能夠準確地描述智能合約問題語句的特征;他們無法檢測一些對于以太坊智能合約安全有嚴重威脅的問題,諸如重入漏洞和整數溢出漏洞;他們的方法基于詞法分析、語法分析和Xpath,這使得他們方法的檢測效率仍然不夠出色。
發明內容
發明目的:考慮區塊鏈上的數據具有不可修改的特性,所以智能合約問題的嚴重性相較于其他領域嚴重得多。本發明提供了一種基于正則表達式和程序插樁的以太坊智能合約問題檢測和預防方法與裝置,針對使用Solidity語言開發的以太坊智能合約,使用定義的用于描述不同問題特征的正則表達式、檢測規則和預防代碼構造方法達到檢測和預防問題產生的目的。
技術方案:為實現上述發明目的,本發明采用如下技術方案:
一種以太坊智能合約問題檢測和預防方法,包括如下步驟:
步驟1:獲取待檢測的以太坊智能合約,并將源代碼進行格式化;
步驟2:根據不同問題的特征,確定對應的正則表達式及檢測規則,以及確定預防重入漏洞和整數溢出漏洞的代碼語句的構造方法;
步驟3:將格式化后的代碼發送到不同的問題檢測程序中,問題檢測程序根據步驟2定義的正則表達式和檢測規則,檢測不同種類的智能合約問題;
步驟4:對于重入漏洞,將格式化后的代碼發送到預防重入漏洞程序中,預防重入漏洞程序根據步驟2定義的正則表達式定位可能引入重入漏洞的代碼語句,然后根據合約內容構造欲插入的預防代碼,最后將預防代碼插入到智能合約中;
步驟5:對于整數溢出漏洞,將格式化后的代碼發送到預防整數溢出漏洞程序中,預防整數溢出漏洞程序根據步驟2定義的正則表達式定位可能引入整數溢出漏洞的代碼語句,然后根據合約內容構造欲插入的預防代碼,最后將預防代碼插入到智能合約中;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于河海大學,未經河海大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911314940.7/2.html,轉載請聲明來源鉆瓜專利網。





