[發明專利]一種以太坊虛擬機缺陷檢測方法及系統在審
| 申請號: | 201910532435.3 | 申請日: | 2019-06-19 |
| 公開(公告)號: | CN110287002A | 公開(公告)日: | 2019-09-27 |
| 發明(設計)人: | 傅瀅;姜宇;任萌;馬福辰;楊鑫;顧明;孫家廣 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06Q40/04 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 馬英迪 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 智能 虛擬機 抽象語法樹 關鍵位置 缺陷檢測 構建 測試數據集 虛擬機平臺 優先級條件 測試數據 關鍵屬性 模擬交易 生態環境 預設規則 排序 檢索 漏洞 挖掘 安全 | ||
1.一種以太坊虛擬機缺陷檢測方法,其特征在于,包括:
獲取包含有若干個以太坊的真實智能合約構建的測試數據集,根據優先級條件對所述測試數據集中每一個智能合約進行排序,選取其中優先級最高的智能合約作為目標合約;
基于所述目標合約,構建所述目標合約對應的標識關鍵位置的抽象語法樹,根據預設規則,對所述標識關鍵位置的抽象語法樹中的關鍵屬性進行修改,獲得變異后的智能合約;
將所述變異后的智能合約作為輸入數據,對若干個以太坊虛擬機平臺進行模擬交易,獲取執行結果。
2.根據權利要求1所述的方法,其特征在于,所述根據優先級條件對所述測試數據集中每一個智能合約進行排序,選取其中優先級最高的智能合約作為目標合約的步驟,具體包括:
計算所述測試數據集中的每一個智能合約的差異度優先級和時間優先級;
根據所述每一個智能合約的差異度優先級和時間優先級,對所述智能合約進行排序;
選取排在首位的智能合約作為目標合約。
3.根據權利要求2所述的方法,其特征在于,所述選取排在首位的智能合約作為目標合約的步驟之后,還包括:
更新所述測試數據集中每一個智能合約的時間優先級。
4.根據權利要求1所述的方法,其特征在于,所述基于所述目標合約,構建所述目標合約對應的標識關鍵位置的抽象語法樹的步驟,具體包括:
根據所述目標合約,獲取所述目標合約的抽象語法樹,對所述目標合約的抽象語法樹中的預設位置進行標識,獲得標識關鍵位置的抽象語法樹。
5.根據權利要求1所述的方法,其特征在于,所述根據預設規則,對所述標識關鍵位置的抽象語法樹中的關鍵屬性進行修改,獲得變異后的智能合約的步驟,具體包括:
根據預設的變異操作符,結合預設的變異策略,對所述標識關鍵位置的抽象語法樹中的關鍵屬性進行修改,獲得變異后的標識關鍵位置的抽象語法樹;
對所述變異后的標識關鍵位置的抽象語法樹進行重構,獲得變異后的智能合約;
其中,所述變異策略包括但不限于奇數組合策略、偶數組合策略、極值組合策略、隨機組合策略和全局組合策略中的任一種。
6.根據權利要求1所述的方法,其特征在于,所述將所述變異后的智能合約作為輸入數據,對若干個以太坊虛擬機平臺進行模擬交易,獲取執行結果之后的步驟還包括:
獲取所述變異后的智能合約在第一以太坊虛擬機平臺的第一執行結果,以及所述變異后的智能合約在第二以太坊虛擬機平臺的第二執行結果;
根據所述第一執行結果和所述第二執行結果,計算獲得所述變異后的智能合約在第一以太坊虛擬機平臺和第二以太坊虛擬機平臺執行的差異指標。
7.根據權利要求6所述的方法,其特征在于,所述方法還包括:
根據所述差異指標,對所述變異后的智能合約進行評估,獲得所述變異后的智能合約的合約質量;
若所述合約質量滿足預設要求,則將所述變異后的智能合約保存至所述測試數據集。
8.一種以太坊虛擬機缺陷檢測系統,其特征在于,包括:
合約提取模塊,用于獲取包含有若干個以太坊的真實智能合約構建的測試數據集,根據優先級條件對所述測試數據集中每一個智能合約進行排序,選取其中優先級最高的智能合約作為目標合約;
變異模塊,用于基于所述目標合約,構建所述目標合約對應的標識關鍵位置的抽象語法樹,根據預設規則,對所述標識關鍵位置的抽象語法樹中的關鍵屬性進行修改,獲得變異后的智能合約;
執行模塊,用于將所述變異后的智能合約作為輸入數據,對若干個以太坊虛擬機平臺進行模擬交易,獲取執行結果。
9.一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1至7任一項所述以太坊虛擬機缺陷檢測方法的步驟。
10.一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該計算機程序被處理器執行時實現如權利要求1至7任一項所述以太坊虛擬機缺陷檢測方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910532435.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:程序合成虛擬機
- 下一篇:資源的管理方法和管理系統





