[發明專利]一種以太坊虛擬機缺陷檢測方法及系統在審
| 申請號: | 201910532435.3 | 申請日: | 2019-06-19 |
| 公開(公告)號: | CN110287002A | 公開(公告)日: | 2019-09-27 |
| 發明(設計)人: | 傅瀅;姜宇;任萌;馬福辰;楊鑫;顧明;孫家廣 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06Q40/04 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 馬英迪 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 智能 虛擬機 抽象語法樹 關鍵位置 缺陷檢測 構建 測試數據集 虛擬機平臺 優先級條件 測試數據 關鍵屬性 模擬交易 生態環境 預設規則 排序 檢索 漏洞 挖掘 安全 | ||
本發明實施例提供一種以太坊虛擬機缺陷檢測方法及系統,所提供的方法包括:獲取包含有若干個以太坊的真實智能合約構建的測試數據集,根據優先級條件對所述測試數據集中每一個智能合約進行排序,選取其中優先級最高的智能合約作為目標合約;基于所述目標合約,構建所述目標合約對應的標識關鍵位置的抽象語法樹,根據預設規則,對所述標識關鍵位置的抽象語法樹中的關鍵屬性進行修改,獲得變異后的智能合約;將所述變異后的智能合約作為輸入數據,對若干個以太坊虛擬機平臺進行模擬交易,獲取執行結果。本發明實施例提供的方法及系統,能夠迅速、準確地檢索并挖掘出以太坊虛擬機的漏洞,從而保障以太坊生態環境的安全。
技術領域
本發明涉及計算機技術領域,尤其涉及一種以太坊虛擬機缺陷檢測方法及系統。
背景技術
區塊鏈技術起源于比特幣,最初設計目的是解決電子支付中過度依賴可信第三方的問題,綜合運用密碼學技術、分布式記賬技術、共識機制等技術創新,將交易數據封裝成特定格式的數據單元,以時間順序組合成線性鏈表,并采用加密算法實現交易數據的透明性、可溯性、安全性、可信性和唯一性。區塊鏈技術的交易參與方各自獨立保存一份完整的數據拷貝,確保交易數據的可靠存儲。各方建立協調、溝通和激勵機制,在分布式網絡中集體參與記賬以及賬本數據的驗證,共同構建和維護共享的分布式數據庫。
以太坊(Ethereum)是一個開源的有智能合約功能的公共區塊鏈平臺。以太坊首次實現了區塊鏈系統的圖靈完備,通過其專用加密貨幣以太幣(Ether)提供去中心化的以太虛擬機(Ethereum Virtual Machine,EVM)來處理點對點智能合約,可以在區塊鏈上傳和執行應用程序,并且程序的有效執行能得到保證。可以把以太坊看作一個基于交易的狀態機,其基礎機制是事務執行,當用戶發起智能合約調用時,以太坊會根據合約地址獲取到合約代碼,生成運行環境后載入到虛擬機中運行。
而以太坊作為一個透明的區塊鏈平臺,鏈上的所有用戶都可以看到基于區塊鏈的合約及交易信息,包括導致巨大損失或威脅平臺安全的各種安全漏洞。在過去的幾年中,以太坊平臺的區塊鏈交易安全問題層出不窮,對近幾年發生的一系列安全事件進行總結可以發現,以太坊平臺的安全漏洞絕大部分都是在進行智能合約的交易時被惡意利用的。目前已經開發出許多工具在以太坊智能合約層面保障以太坊交易安全。例如,Oyente和Maian使用符號執行技術來查找基于Solidity編寫的智能合約中潛在的安全問題,Zeus則運用抽象解釋來分析智能合約。這些工具都能有效地找到目前公認的智能合約缺陷,如可重入缺陷、時間戳依賴等。
但以太坊交易的執行,智能合約是其中的高層邏輯,具體的代碼執行都是經由以太坊虛擬機(EVM)實現的。以太坊虛擬機是以太坊平臺的核心,它通常被稱為以太坊技術的操作系統,負責執行和維護智能合約,它是建立智能合約的基礎。以太坊虛擬機的形式化定義在以太坊黃皮中有明確規定,其內部數據結構為堆棧,且每個存儲項的大小不超過32字節,根據預先定義好的運行環境和執行步驟,比如異常處理或跳轉地址,EVM可以完成每個部署于以太坊上的區塊的狀態轉換。EVM主要負責合約字節碼的執行和gas消耗的計算。總的來說,以太坊虛擬機是一個強大的堆棧式狀態機,嵌入在每個以太坊全節點中,負責以太坊所有智能合約的執行。
作為以太坊執行智能合約的唯一平臺和標準,如果以太坊虛擬機在代碼實現方面存在安全隱患,一旦被惡意黑客利用,其后果不堪設想,可能會影響到整個以太坊生態圈的用戶,比智能合約邏輯層的漏洞造成的后果更加嚴重。
目前全球有至少10種不同語言實現的以太坊虛擬機在以太坊交易中被廣泛使用,但目前對于以太坊平臺的安全保障還普遍致力于智能合約層面的安全防護,對于以太坊虛擬機安全關注甚少。
發明內容
為解決上述現有技術中存在的問題,本發明實施例提供一種以太坊虛擬機缺陷檢測方法及系統。
第一方面,本發明實施例提供一種以太坊虛擬機缺陷檢測方法,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910532435.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:程序合成虛擬機
- 下一篇:資源的管理方法和管理系統





