摘要:研究提出了一種基于混合風格遷移的智能合約漏洞檢測方法,旨在解決智能合約新漏洞出現時數據集不足和無法有效檢測未知漏洞問題。首先,從智能合約源代碼中提取抽象語法樹,使用圖注意力網絡捕獲節點間的依賴關系和信息流;然后,采用最大均值差異實現從舊漏洞到新漏洞的有效知識遷移,從而增加深度學習模型訓練的數據量;最后,在分類器中融入MixStyle技術增強模型的泛化能力并提高對新型漏洞類型的識別準確度。實驗結果表明,在4種漏洞類型的檢測上,該方法在F1、ACC、MCC指標上優于BLSTM-ATT、BiGAS、Peculiar方法。
關鍵詞:智能合約;漏洞檢測;遷移學習;MixStyle;最大均值差異
中圖分類號:TP391 文獻標志碼:A 文章編號:1000-582X(2024)12-070-13
基金項目:國家自然科學基金(61602345)。Supported by National Natural Science Foundation of China(61602345).
Smart contract vulnerability detection method based on MixStyle transfer
LI Min1, SHI Ruihao2, ZHANG Ying3, YUAN Haibing4, JIANG Libiao5,6,MIAO Danyun5
(1.GAC AION New Energy Automobile CO. LTD., Guangzhou 511400, P. R. China; 2. GAC RD Center, Guangzhou 511458, P. R. China; 3. Syncore Autotech Co., Ltd., Guangzhou 510335, P. R. China; 4. GAC Energy Technology Co., LTD., Guangzhou 511453, P. R. China; 5. School of Mechanical Engineering and School of Robotics Engineering, Guangzhou City University of Technology, Guangzhou 510800, P.R.China;6. School of Mechanical and Automotive Engineering , South China University of Technology, Guangzhou 510641, P.R.China)
Abstract: This study presents a smart contract vulnerability detection method using MixStyle transfer to address challenges related to limited datasets and the detection of unknown vulnerabilities when new ones arise in smart contracts. The method first extracts the abstract syntax tree from the smart contract source code and uses a graph attention network to capture dependencies and information flow between nodes. Then, maximum mean discrepancy(MMD) is used to facilitate effective knowledge transfer from known vulnerabilities to emerging ones, thus expanding the dataset available for deep learning model training. Finally, the MixStyle technique is incorporated into the classifier to enhance model generalization and improve the accuracy of identifying novel vulnerability types. Experimental results show that this method outperforms BLSTM-ATT, BiGAS, and Peculiar methods in F1, ACC, and MCC metrics for detecting four types of vulnerabilities.
Keywords: smart contracts; vulnerability detection; transfer learning; MixStyle; maximum mean discrepancy
隨著區塊鏈技術的迅速發展,智能合約作為最為革命性的應用之一,已經在金融、法律、物聯網等多個領域展現出巨大潛力。智能合約是自動執行、控制或文檔化法律事件和行動的計算機程序,其操作完全透明、無需信任的第三方介入,并且具有不可逆轉的特性。然而,正如所有新興技術一樣,智能合約帶來便利的同時也暴露出多種安全漏洞和風險。由于智能合約的自動執行特性,一旦部署,智能合約代碼即在沒有人工干預的情況下自動執行,此時區塊鏈無法輕易修復出現問題的智能合約,導致安全事故頻發,給用戶和機構造成巨大的經濟損失,引起社會各界的高度關注。因此,開發高效、準確的智能合約漏洞檢測工具和方法,對保障區塊鏈應用的安全性和穩定性具有至關重要的意義。
迄今為止,研究人員開發了許多有效的智能合約漏洞檢測工具[1-3],如基于程序分析技術、基于形式化驗證技術、基于模糊測試技術和基于符號執行技術等。雖然在檢測智能合約漏洞方面普遍有效,但都是基于專家知識,在應用這些方法之前,預先手動總結檢測缺陷的規則和模式。然而,由于智能合約的數量在快速增加,僅靠專家總結相應的規則變得耗時、耗力。
針對這一局限,研究者們提出了多種方法,利用深度學習自動學習智能合約缺陷的特征。例如,Smart Embe[1]使用深度學習模型,通過計算與bug中合同的相似度來判斷檢測到的合同是否脆弱。為了利用合約代碼中的語法和語義信息,Tann等[1]提出利用深度學習算法—長短期記憶網絡(long short-term memory,LSTM)對智能合約漏洞進行連續學習的方法,較快地發現新的攻擊趨勢,獲得更安全的智能合約。然而,隨著智能合約編程語言的發展和新應用場景的出現,新漏洞類型不斷涌現,現有方法面臨數據集不足和無法有效檢測未知漏洞問題。尤其是基于深度學習的智能合約漏洞檢測方法,嚴重依賴標簽化訓練數據,導致模型在面對少數據量的新漏洞時表現不佳。
為解決上述問題,本研究提出一種基于混合風格遷移的智能合約漏洞檢測方法GMCVD(Graph based mixstyle transfer for smart contract vulnerability detect),該方法從智能合約源代碼中提取抽象語法樹(abstract syntax tree,AST),使用圖注意力網絡(graph attention networks,GAT)捕獲節點間的依賴關系和信息流,并在分類器中融入MixStyle技術增強模型泛化能力。同時,為了解決新漏洞類型智能合約數據集少的問題,通過遷移學習中的最大均值差異(maximum mean discrepancy,MMD)實現從源合約漏洞(舊漏洞)到目標合約漏洞(新漏洞)的有效知識遷移,增加深度學習模型訓練的數據量,提高模型識別新漏洞類型的準確性。經過實驗證明,該方法相比現有技術顯著提升了模型在面對新漏洞智能合約數據稀缺情況下的檢測能力,有效緩解新漏洞類型缺乏足夠標注數據的問題。
1 相關工作
1.1 智能合約漏洞檢測
傳統智能合約漏洞檢測主要圍繞靜態分析和動態分析方法展開。靜態分析可進一步劃分為形式驗證、程序分析和符號執行。例如,Bhargavan等[7]提出了1個形式模型,使用 Isabelle/HOL工具驗證智能合約字節碼。Luu等[8]對智能合約進行符號執行,并根據專家定義的規則檢查錯誤。Tsankov等[9]進行高級程序分析,以推斷智能合約數據流中的語義事實。Gao等[10]開發了1個溢出檢測器,該檢測器采用基于污點分析的跟蹤技術檢測以太坊中潛在的溢出漏洞。
動態分析方法通過執行合約代碼發現智能合約中的潛在漏洞。Nguyen等[11]引入了Serum,利用動態污點跟蹤合約執行期間監控的數據流,自動檢測和防止高級攻擊。Choi等[12]展示了sFuzz,通過采用基于分支距離的模糊測試技術識別漏洞。Smartian[13]利用基于數據流的反饋找到有意義的交易序列順序,觸發更多合約狀態檢測漏洞。
最近的研究已經探索使用深度學習網絡進行漏洞檢測。Eshghie等[14]采用序列模型處理智能合約字節碼序列。Zhuang等[15]使用動態漏洞檢測框架,從交易數據中提取特征,使用機器學習模型對有害交易進行分類。Liu等[16]提議將合約源代碼轉換為圖結構,構建圖神經網絡作為檢測模型。Zhang等[17]探索將深度學習與專家模式結合,以可解釋的方式檢測漏洞。Dai等[18]展示了1個混合深度學習模型,結合不同模型特征檢測智能合約錯誤。
1.2 遷移學習
遷移學習近年來受到廣泛關注,它可以在目標域標記數據有限的情況下,通過源域的信息促進模型學習。遷移學習在文檔分類[19]、機器翻譯[20]、視覺腦機接口[21]、數據流分類[22]等領域取得良好成效。遷移學習通常適用于目標場景數據樣本量較小,相關領域數據樣本豐富的情況。遷移學習可實現低資源學習、領域適應和領域泛化[23]。一般來說,根據是否存在標記數據,遷移學習可分為傳導遷移學習、無監督遷移學習和衍生遷移學習[24]。根據特征空間的異同,遷移學習又分為同質遷移學習和異質遷移學習。同質遷移學習是指源域和目標域的分布不同,但數據維度相同。
以前的淺層域適應方法包括重新加權訓練數據,使其更接近測試分布[25],在低維流形中找到1個變換,使源和目標子空間更接近[26]。此外,通過在深度特征學習流程中嵌入域適應模塊提取域不變表示的研究,已取得最新進展[27]。第1種是基于統計矩匹配的方法,即最大均值差異(maximum mean discrepancy,MMD)[28],中心矩差異(central moment discrepancy,CMD)[29]和二階統計匹配[30]。第2種常用方法是基于對抗損失的方法,該方法鼓勵來自不同域的樣本對域標簽無歧視,即借鑒生成對抗網絡(generative adversarial network,GAN)的域對抗網絡基礎適應方法[31-32]。
2 本文模型
在本研究中,提出了一種基于遷移學習的智能合約漏洞檢測方法GMCVD,旨在有效識別和預測智能合約中的新漏洞類型。GMCVD方法主要包含3個步驟:
1)對智能合約的源碼提取代碼語義圖(semantic graph,SG),使用圖注意力網絡(graph attention networks,GAT)生成圖嵌入。
2)使用最大均值差異(MMD)進行領域適應。
3)使用插入了MixStyle的分類器對合約進行分類。

GMCVD方法的框架如圖1所示:首先,模型從智能合約的源代碼中提取抽象語法樹(abstract syntax tree,AST)。AST是代碼結構的樹狀表現形式,能準確反映程序的語法結構。在獲得AST的基礎上,進一步構建代碼語義圖,代碼語義圖(SG)中包含代碼的靜態結構信息及整合了變量和函數間的動態交互關系捕捉代碼的執行邏輯。獲得的代碼語義圖使用Word2Vec編碼,對代碼語義圖(SG)中的節點進行向量化表示,將代碼中的符號和結構轉化為連續的向量空間,采用圖注意力網絡提取節點間復雜的依賴關系。圖注意網絡通過對鄰居節點賦予不同的注意力權重,捕捉節點間的相互作用和信息流。源智能合約的中間特征和目標智能合約的中間特征通過計算MMD損失來實現領域適應,通過減小源合約漏洞和目標合約漏洞之間的分布差異,實現源漏洞到目標漏洞之間的有效知識遷移。同時,創新性地將MixStyle技術融合到圖卷積神經網絡分類器中,該技術通過模擬訓練過程中的多樣性,使模型學習到更泛化的特征表示,提高對新環境的適應能力。
2.1 構建代碼語義圖
抽象語法樹(AST)包含源代碼的語法信息,但缺乏數據流、語句執行順序等信息,此外,抽象語法樹(AST)包含一些不會導致漏洞但可能誤導神經網絡訓練的信息。因此,模型在AST的基礎上創建代碼語義圖(SG),刪除無用的節點簡化抽象語法樹(AST),添加邊來表示數據和控制流。代碼語義圖(SG)的生成包括2個步驟。第1步是構建每個智能合約功能的抽象語法樹(AST);第2步是根據抽象語法樹(AST)獲取代碼語義圖(SG)。智能合約的抽象語法樹(AST)表征了智能合約代碼的語法信息,包括:1)數據,如參數及其屬性;2)操作,如編程語言提供的語句、運算符、擴展庫等。
模型首先構建智能合約函數的抽象語法樹,通過算法1所示的算法SG-Generation處理抽象語法樹。刪除無用的節點簡化智能合約抽象語法樹,通過在節點之間添加邊構建基于簡化的抽象語法樹的SG,表示智能合約代碼中的數據流和控制流。算法SG-Generation的輸入是1個抽象語法樹,包括語句、運算符、擴展庫等。算法SG-Generation的輸出是構造的SG=(V,E’),包括節點集V和邊集E’。SG-Generation算法包括3個階段。
第1階段:通過刪除變量名稱和類型之外的參數列表和變量屬性等無用節點簡化抽象語法樹(算法1第1行,SG節點集V被初始化為抽象語法樹節點集,在節點集V中添加1個新節點Enter來表示SG的開始(算法1第4行),將E’設置為簡化抽象語法樹的邊集,并將有向邊< Enter, AST.root >添加到E’中(算法1第5行)。

第2階段:通過算法2中所示的ControlFlowEdgeGeneration算法構建控制流。ControlFlow EdgeGeneration算法的輸入是簡化的AST或其子樹和邊集E’,算法對其進行更新,在構建控制流期間,以深度優先搜索(depth-first search,DFS)順序遍歷樹,對于節點cn,檢查cn是否是1個語句(算法2第4行),如果是,則將1條從cn到下1個兄弟節點的邊添加到邊集E’中表示語句的執行順序(算法2第5行),以cn為根的子樹遞歸運行算法ControlFlowEdgeGeneration(算法2第6行),最后,SG就可以表征語句的執行順序。
第3階段:通過算法3中所示的算法DataFlowEdgeGeneration構造數據流。算法DataFlowEdge Generation的輸入是1棵樹和邊集E’,首先,按照深度優先搜索順序對樹節點進行排序,并將放入列表Ln中,然后遍歷Ln來找到相同的變量,在它們之間添加邊來表示智能合約代碼中的數據流,經過這3個階段后,算法SGGeneration得到SG=(V,E’),SG的節點又分為語句、運算符、擴展庫、變量和其他節點,而邊表示控制流和數據流,這樣構建的SG不僅包含智能合約代碼的語法信息,還可以表征豐富的語義信息,包括數據流、語句執行順序、指令數據關系等。


基于上述損失函數的計算方法,可以通過多輪學習提取可遷移特征,通過最小化源和目標數據在特征空間中的MMD值,有效調整源漏洞特征,使其與目標漏洞特征的分布更為一致。原本僅適用于源漏洞檢測的分類器通過這種調整后,其檢測知識和能力能更好地遷移到目標漏洞上,提高在目標場景中的漏洞檢測性能。
2.4 MixStyle


3 實驗
展示實驗相關設置,將GMCVD模型與3個基準方法在公開數據集上進行性能比較以及對GMCVD模型進行消融實驗和超參數選擇實驗。
3.1 實驗設置
實驗數據集:在評估所提出的方法時,使用了來自Liu等[34]的1個數據集,這個數據集包括了在Etherscan上驗證的智能合約。該數據集涉及4種漏洞類型:區塊號依賴(block number dependency,BN)、以太幣凍結(ether frozen,EF)、危險的以太幣嚴格等值(dangerous ether strict equality,SE)和時間戳依賴(timestamp dependency,TP)。詳細信息匯總在表1中。
數據集使用設置:采用對比實驗來衡量GMCVD方法的性能。在實驗中,GMCVD方法使用完整的源智能合約,并假設目標合約中有10%的合約被標記,剩余90%未標記,模擬新漏洞數據有限的場景。為了全面評估GMCVD方法和基線方法的有效性,在目標域合約的第2階段訓練中采用了十折交叉驗證。將目標域數據分為10個子集,交替使用1個子集(10%)作為訓練集,其余9個子集(90%)作為測試集。這種方法能夠獲得一種漏洞類型的10個測試結果,每種類型的最終結果是通過平均這些結果計算得出的。值得注意的是,與GMCVD方法不同,基線模型使用10%標記的智能合約數據進行訓練,并預測同一類型智能合約中的漏洞。

實驗環境:Intel Core i7 11700 CPU,16GB RAM和1個GPU(NVIDIA RTX 3070)8 GB內存的服務器,操作系統為Ubuntu 20.04 LTS。
基準方法:將GMCVD方法與3種創新的深度學習技術進行比較,用于識別智能合約中的漏洞。
BLSTM-ATT [35]:BLSTM-ATT是基于Word2Vec的一種先進方法,使用Word2Vec學習語義特征,并將其與雙向長短期記憶網絡(long short-term memory,LSTM)和注意力機制結合起來。
BiGAS[36]:BiGAS也是基于Word2Vec的一種先進方法,利用Word2Vec學習語義特征,并將其與雙向GRU(Bi-GRU)結合,使用支持向量機(support vector machine,SVM)作為分類器。
Peculiar[37]:Peculiar是近年來引入的一種創新方法,依賴于預訓練的語言模型。通過GraphCodeBERT適應關鍵數據流,學習語義和結構信息。
消融實驗:為了評估GMCVD方法中各個模塊的性能,設計并進行了消融實驗,涉及2種不同的場景。第1種場景是移除MixStyle模塊,為了評估MixStyle在學習不同合約代碼的“風格特征”方面的作用。第2種場景是移除遷移學習的MMD模塊,衡量MMD在擬合源域數據和目標數據之間的分布差異方面的效果。這些消融實驗的設置和參數與比較實驗保持一致,并且同樣采用了十折交叉驗證策略。
超參數選擇實驗:為了確定模型中最優的超參數設置,進行了一系列的超參數選擇實驗。第1種場景探索了不同β分布形狀參數α對模型性能的影響。通過調整α值,評估了其對模型性能的優化程度,找到能夠最大化模型性能的最佳α值。第2種場景則測試了不同的高斯核寬度σ,評估其對模型訓練效率和準確率的影響。選擇適當的σ值是關鍵,直接影響到模型在處理數據分布差異時的靈敏度和效果。
評價指標:為了評估各種方法的性能,采用了一系列在智能合約漏洞檢測研究中得到廣泛認可的指標來評估不同方法的性能。這些指標包括F1度量、準確度(accuracy,ACC)、馬修斯相關系數(matthews correlation coefficient,MCC)和接收者工作特征曲線(ROC)下面積(AUC)。這些指標的定義如下

3.2 實驗分析
將所提出的方法與3種現有基線方法在4種漏洞類別上進行比較分析,詳細信息列在表2~4中。實驗部分評估了每種漏洞類型的方法性能,并計算了每種方法的F1度量、準確率(ACC)和馬修斯相關系數(MCC)的平均值。隨后,為了進一步評估平均改進程度,并通過勝/平/負(W/T/L)統計顯示GMCVD方法的優越性。值得注意的是,GMCVD方法顯示出相當的效力,其平均F1度量,ACC和MCC值分別達到了69.2,93.5和66.2。

當GMCVD與基于語義的深度學習方法BLSTM-ATT和BiGAS直接比較時,在所有4種漏洞數據類型上均表現出色。具體來說,GMCVD至少在F1度量上實現了34.8%的顯著提升,在ACC上至少提高了5.2%,在MCC上至少增強了42.0%。與基于GraphCodeBERT的方法Peculiar相比,GMCVD在各種評估指標上顯示出顯著的性能提升。特別是在所有漏洞類型上的平均F1度量提高了109.1%,ACC提高了39.3%,MCC提高了108.7%。為了更加直觀地體現GMCVD優勢,圖2給出了對比不同算法的遷移效果。

基于上述分析,可以得出,在缺乏特定漏洞數據的情況下,GMCVD有效利用了來自其他漏洞的標記數據知識,并實現了與最先進方法相當的性能。在研究中,對比分析了所提出的GMCVD方法與2個消融方法在4種漏洞類別上的性能,詳細信息列在表5~7中。在與移除MixStyle模塊(Non-MixStyle)的直接比較中,GMCVD在所有4種漏洞類型上均展現了卓越的性能。具體來說,GMCVD在F1度量上至少實現了13.6%的顯著提升,在ACC上至少提高了1.5%,在MCC上至少增強了15.2%。結果明顯表明,MixStyle模塊在提升模型適應不同代碼風格的能力上發揮了至關重要作用。通過學習和應用不同合約代碼的風格特征,MixStyle顯著增強了模型在處理多樣化數據時的魯棒性和效率。


與移除MMD模塊(Non-MMD)相比,GMCVD在各項評估指標上也顯示出顯著的性能提升。在所有漏洞類型上,GMCVD的平均F1度量提高了11.6%,ACC提高了1.6%,MCC提高了7.2%。結果強調MMD模塊在較少源域和目標域之間的分布差異,提升模型性能。MMD模塊通過調整和適應不同域間的數據分布,有效提高了模型對目標域數據的預測準確性,證明其在實現跨漏洞的智能合約漏洞檢測的關鍵作用。圖3直觀給出了不同組件消融的效果。

從上述分析可以看出,每個模塊在GMCVD方法中都扮演了不可或缺的角色。MixStyle模塊通過增強模型對不同編程風格的適應能力,提高了模型的泛化性。同時,MMD模塊的引入則確保了模型能有效處理來自不同源域的數據,優化模型在新環境中的應用效果。這些模塊的協同工作顯著提升了整體模型性能,使GMCVD在跨漏洞的智能合約漏洞檢測中展現出高效與精準的雙重優勢。
在超參數選擇實驗中,觀察到β分布形狀參數α的選擇對ACC有顯著影響,如圖4所示,α值在0.1時準確率最高,隨著α的增加,ACC,F1度量和MCC呈現下降趨勢,表明較低的α值有助于模型性能優化。在高斯核寬度σ的選擇方面,如圖5所示,σ值為5時,F1度量、ACC和MCC均達到近似最優。結果表明,適中的σ值能夠平衡模型的細節捕捉能力與泛化能力。過大或過小的σ值均對模型的性能表現不佳,因為高σ值導致模型丟失細節,而低σ值則過度強調這些細節,均會損害模型的泛化能力。

4 結束語
在這項工作中,提出了名為GMCVD的創新方法,用于跨域智能合約漏洞檢測。通過從智能合約源代碼中提取AST,構建了代碼語義圖,這2者為智能合約的結構和語義提供了深入的表示。利用圖注意力機制來分析代碼語義圖,捕捉代碼中的關鍵特征和節點間的復雜依賴關系。采用MMD來調整和優化源域和目標域之間的分布差異,確保模型能在不同的域中有效識別漏洞。最后,引入了MixStyle技術,通過在模型訓練中模擬特征分布的多樣性,增強了模型對新環境的適應能力和泛化性。實驗表明,所提出的GMCVD方法在4種漏洞類型的3種評價指標上優于現有的主流方法。
在未來的工作中,計劃評估所提出的GMCVD方法在不同場景下的性能,并探索其他域適應方法的整合,以進一步提高其性能。這些措施預計將使GMCVD方法在智能合約安全領域更加高效和實用。
參考文獻
[1] Tikhomirov S, Voskresenskaya E, Ivanitskiy I, et al. Smartcheck: static analysis of ethereum smart contracts[C]//1st International Workshop on Emerging Trends in Software Engineering for Blockchain. New York:ACM, 2018: 9-16.
[2] Tsankov P, Dan A, Drachsler-Cohen D, et al. Securify: practical security analysis of smart contracts[C]//2018 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2018: 67-82.
[3] Jiang B, Liu Y, Chan W K. Contractfuzzer: fuzzing smart contracts for vulnerability detection[C]//33rd ACM/IEEE International Conference on Automated Software Engineering. Piscataway:IEEE, 2018: 259-269.
[4] Torres C F, Schütte J, State R. Osiris: hunting for integer bugs in ethereum smart contracts[C]//34th Annual Computer Security Applications Conference. New York: ACM, 2018: 664-676.
[5] Gao Z, Jayasundara V, Jiang L, et al. Smartembed: A tool for clone and bug detection in smart contracts through structural code embedding[C]//2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). Piscataway,: IEEE,2019: 394-397.
[6] Tann W J W, Han X J, Gupta S S, et al. Towards safer smart contracts: a sequence learning approach to detecting security threats[EB/OL]. (2019-06-07)[2024-05-12].https://arxiv.org/abs/1811.06632.
[7] Bhargavan K, Delignat-Lavaud A, Fournet C, et al. Formal verification of smart contracts: Short paper[C]//2016 ACM Workshop on Programming Languages and Analysis for Security, 2016: 91-96.
[8] Luu L, Chu D H, Olickel H, et al. Making smart contracts smarter[C]//2016 ACM SIGSAC Conference on Computer and Communications Security. New York:ACM, 2016: 254-269.
[9] Tsankov P, Dan A, Drachsler-Cohen D, et al. Securify: practical security analysis of smart contracts[C]//2018 SIGSAC Conference on Computer and Communications security. NewYork:ACM, 2018: 67-82.
[10] Gao J, Liu H, Liu C, et al. Easyflow: keep ethereum away from overflow[C]//2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). Piscataway: IEEE, 2019: 23-26.
[11] Nguyen T D, Pham L H, Sun J, et al. sfuzz: an efficient adaptive fuzzer for solidity smart contracts[C]//ACM/IEEE 42nd International Conference on Software Engineering. Piscataway:IEEE, 2020: 778-788.
[12] Choi J, Kim D, Kim S, et al. Smartian: enhancing smart contract fuzzing with static and dynamic data-flow analyses[C]//2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE). Piscataway: IEEE, 2021: 227-239.
[13] Liu Z, Qian P, Yang J, et al. Rethinking smart contract fuzzing: Fuzzing with invocation ordering and important branch revisiting[J]. IEEE Transactions on Information Forensics and Security, 2023, 18: 1237-1251.
[14] Eshghie M, Artho C, Gurov D. Dynamic vulnerability detection on smart contracts using machine learning[C]//25th International Conference on Evaluation and Assessment in Software Engineering. New York: ACM, 2021: 305-312.
[15] Zhuang Y, Liu Z, Qian P, et al. Smart contract vulnerability detection using graph neural networks[C]//International Conference on International Joint Conferences on Artificial Intelligence. San Francisco, CA:Margan Kaufmann, 2021: 3283-3290.
[16] Liu Z, Qian P, Wang X, et al. Smart contract vulnerability detection: from pure neural network to interpretable graph feature and expert pattern fusion[EB/OL].(2021-06-17)[2024-05-12].https://arxiv.org/abs/2106.09282.
[17] Zhang L, Chen W, Wang W, et al. Cbgru: a detection method of smart contract vulnerability based on a hybrid model[J]. Sensors, 2022, 22(9): 3577.
[18] Dai W, Xue G R, Yang Q, et al. Co-clustering based classification for out-of-domain documents[C]//13th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. NewYork: ACM, 2007: 210-219.
[19] Maimaiti M, Liu Y, Luan H, et al. Enriching the transfer learning with pre-trained lexicon embedding for low-resource neural machine translation[J]. Tsinghua Science and Technology, 2021, 27(1): 150-163.
[20] Lin J, Liang L, Han X, et al. Cross-target transfer algorithm based on the volterra model of SSVEP-BCI[J]. Tsinghua Science and Technology, 2021, 26(4): 505-522.
[21] Wu Q, Wu H, Zhou X, et al. Online transfer learning with multiple homogeneous or heterogeneous sources[J]. IEEE Transactions on Knowledge and Data Engineering, 2017, 29(7): 1494-1507.
[22] Zhuang F, Qi Z, Duan K, et al. A comprehensive survey on transfer learning[J]. IEEE Access, 2020, 109(1): 43-76.
[23] Pan S J, Tsang I W, Kwok J T, et al. Domain adaptation via transfer component analysis[J]. IEEE Transactions on Neural Networks, 2010, 22(2): 199-210.
[24] Jiang J, Zhai C X. Instance weighting for domain adaptation in NLP[C]//45th Annual Meeting of the Association Computational Linguistics. Prague:ACL, 2007:264-271.
[25] Wang J, Chen Y, Feng W, et al. Transfer learning with dynamic distribution adaptation[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2020, 11(1): 1-25.
[26] Zhu Y, Zhuang F, Wang J, et al. Multi-representation adaptation network for cross-domain image classification[J]. Neural Networks, 2019, 119: 214-221.
[27] Long M, Cao Y, Wang J, et al. Learning transferable features with deep adaptation networks[C]//International conference on Machine Learning. Cambridge MA: JMLR, 2015: 97-105.
[28] Zellinger W, Grubinger T, Lughofer E, et al. Central moment discrepancy (cmd) for domain-invariant representation learning[EB/OL].(2019-05-02)[2024-05-12].https://arxiv.org/abs/1702.08811.
[29] Sun B, Saenko K. Deep coral: Correlation alignment for deep domain adaptation[C]//Computer Vision-ECCV 2016 Workshops. Amsterdam, Netherlands: Springer, 2016: 443-450.
[30] Ganin Y, Ustinova E, Ajakan H, et al. Domain-adversarial training of neural networks[J]. Journal of Machine Learning Research, 2016, 17(59): 1-35.
[31] Hoffman J, Tzeng E, Park T, et al. Cycada: cycle-consistent adversarial domain adaptation[C]//International Conference on Machine Learning. Cambridge MA: JMLR, 2018: 1989-1998.
[32] Tzeng E, Hoffman J, Saenko K, et al. Adversarial discriminative domain adaptation[C]//IEEE conference on computer vision and pattern recognition. Piscataway:IEEE, 2017: 7167-7176.
[33] Zhou K, Yang Y, Qiao Y, et al. Mixstyle neural networks for domain generalization and adaptation[J]. International Journal of Computer Vision, 2024, 132(3): 822-836.
[34] Liu Z, Qian P, Yang J, et al. Rethinking smart contract fuzzing: fuzzing with invocation ordering and important branch revisiting[J]. IEEE Transactions on Information Forensics and Security, 2023, 18: 1237-1251.
[35] Qian P, Liu Z, He Q, et al. Towards automated reentrancy detection for smart contracts based on sequential models[J]. IEEE Access, 2020, 8: 19685-19695.
[36] Zhang L, Li Y, Guo R, et al. A novel smart contract reentrancy vulnerability detection model based on BiGAS[J]. Journal of Signal Processing Systems, 2023: 1-23.
[37] Wu H, Zhang Z, Wang S, et al. Peculiar: Smart contract vulnerability detection based on crucial data flow graph and pretraining techniques[C]//2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE). Piscataway: IEEE, 2021: 378-389.
(編輯 侯湘)