



摘 要:智能合約控制著區塊鏈上巨額資產的流動,因此確保其安全性至關重要。基于此,提出一種基于數據流圖和混合深度學習模型的方法,即DFG-HDP,用于檢測智能合約的漏洞。該方法首先對智能合約源碼進行清洗和變量規范;其次從源碼中提取數據流特征,將其與源碼結合作為輸入;最后將不同的詞嵌入模型與不同的深度學習模型結合,對輸入進行學習檢測。實驗結果表明,該方法在智能合約漏洞檢測中的F1值高達89.90%,優于之前的漏洞檢測方法CBGRU。這一結果證明了該方法的有效性和優越性。
關鍵詞:智能合約;漏洞檢測;數據流圖;混合模型
中圖分類號:TP309 文獻標志碼:A
0 引言(Introduction)
智能合約是運行在區塊鏈上的計算機程序,通常由Solidity語言編寫[1],與傳統程序一樣,其中可能包含開發者有意或無意寫入的編程漏洞,這些漏洞一旦被利用,將可能引發比傳統程序更嚴重的后果。據統計,截至2023年7月,由智能合約引起的經濟損失已超200億美元。
為解決智能合約帶來的安全問題,QIAN等[2]專注于檢測智能合約可重入漏洞,構建了帶有注意力機制的BiLSTM 模型,實現了對可重入漏洞的自動檢測;WANG等[3]首先根據規則對智能合約操作碼進行統一化,其次從中提取雙元特征并進行檢測。然而,這些研究仍存在一定的局限性:一方面,多數研究只能針對少數幾種漏洞進行檢測,例如可重入漏洞和時間戳漏洞;另一方面,在檢測精度上仍有提升空間。基于此,本文提出一種基于數據流圖和混合深度學習模型的方法,用于檢測智能合約漏洞,能對5種漏洞進行檢測且可擴展到其他漏洞,同時在準確率和F1值上有較大的提升。