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