俞莎莎,牛保寧
(太原理工大學信息與計算機學院,山西晉中 030600)
比特幣是一種去中心化、匿名且不可篡改的加密貨幣[1]。與依賴中心化監(jiān)管體系的銀行金融系統(tǒng)不同,加密貨幣基于去中心化的共識機制[2],缺乏集中控制。由于比特幣錢包地址是一個包含27~34 個字母數(shù)字的標識符,不包含關(guān)于所有者的任何信息,因此很多非法活動選擇以比特幣作為支付手段。
近些年,比特幣非法交易的檢測問題備受關(guān)注[3]。非法交易是指參與詐騙、惡意軟件、恐怖組織、勒索軟件、龐氏騙局、洗錢[4-6]、毒品交易[7]等活動的交易[8]。非法交易檢測方法分為實體檢測和交易檢測。實體檢測根據(jù)交易之間的引用關(guān)系,采用聚類算法將交易歸屬于不同實體(實體是具有單個或多個地址的個人或組織),再提取實體特征,并對實體進行分類,通過識別異常實體來分析鑒別非法交易[9]。交易檢測是利用機器學習分類模型和圖卷積網(wǎng)絡(Graph Convolutional Network,GCN)分類模型直接檢測非法交易。機器學習分類模型,如邏輯回歸(Logistic Regression,LR)[10]、隨機森林(Random Forest,RF)[11]、多層感知機(MultiLayer Perceptron,MLP)[12]等,通常根據(jù)交易本身特征(如交易輸入或輸出的數(shù)量、交易費用、交易輸入或輸出的平均交易額)反映交易的非法程度。該分類方法的分類效果有限。圖卷積網(wǎng)絡分類模型及其變體[13-14]不僅根據(jù)交易本身特征,而且基于交易網(wǎng)絡拓撲結(jié)構(gòu)構(gòu)建交易間的關(guān)聯(lián)關(guān)系,用于訓練識別非法交易。因此,與傳統(tǒng)機器學習分類模型相比,卷積網(wǎng)絡分類模型具有更優(yōu)的檢測效果。
在實體檢測中,聚類方法本質(zhì)上是把交易包含的非法信息傳遞到實體上,將非法實體作為非法交易的代表。然而,比特幣所有者為規(guī)避非法交易檢測,通常會將非法交易和合法交易混合在一起。因此,一個包含成千上萬筆交易的非法實體可能只含少量非法交易。為減少合法交易對非法實體特征的影響,通過實體特征鑒別非法實體的方法并不準確。在交易檢測中,不論是機器學習分類器,還是GCN都假設交易的屬性包含交易是否非法的信息,并嘗試從各種可能的交易屬性中挖掘能夠代表交易非法性的特征。
比特幣交易的非法性取決于交易是否用于違法犯罪活動。兩個具有相似或相同屬性的交易用于違法犯罪活動屬于非法交易,沒有用于違法犯罪活動屬于正常交易。因此,現(xiàn)有的比特幣非法交易檢測方法根據(jù)交易屬性難以準確地判斷非法交易,但是非法交易之間有關(guān)聯(lián),即具有可傳遞性。本文設計基于交易不可信度的比特幣非法交易檢測方法。結(jié)合非法交易之間的傳遞性,提出交易不可信度,度量交易的不可信程度,同時將度量結(jié)果融合到已有的判別模型中。在此基礎上,通過迭代訓練集的方式擴增非法交易樣本,從而提高模型的判別精確度和召回率。
比特幣非法交易檢測本質(zhì)上是交易不可信度的度量和排序問題。因此,分析其度量原理、設計相對準確的交易不可信度度量算法是提高檢測精確率和召回率的有效方法。
在實體檢測中,現(xiàn)有方法通常根據(jù)比特幣中所有者和錢包地址與交易之間的關(guān)聯(lián)關(guān)系,將交易歸屬于不同的地址或所有者[15]。文獻[16-17]提出啟發(fā)式聚類方法將地址鏈接到實體。文獻[9,18]從海量交易記錄中提取出多個實體,將其分為賭博、勒索交易等類別,使用有監(jiān)督的機器學習方法對實體進行分類。文獻[19-20]對地址和交易流進行統(tǒng)計分析,根據(jù)交易基本信息構(gòu)建地址特征,識別非法比特幣地址。文獻[21]使用貝葉斯方法對用戶的行為特征建模,將交易與錢包地址和IP 對應。文獻[22]提出基于特征的網(wǎng)絡分析架構(gòu),尋找比特幣中提供混合服務的地址,從而為比特幣反洗錢提供線索。這些方法將交易非法性轉(zhuǎn)移到地址或所有者,通過識別非法實體來鑒別非法交易。
在交易檢測中,GCN 基于非歐氏空間特征的預測性能比機器學習分類器[23]更好。2019 年,Elliptic加密貨幣情報公司公開發(fā)布Elliptic 數(shù)據(jù)集,構(gòu)造的交易特征包括本身特征和聚合特征[4]。聚合特征描述了鄰居交易的信息,相比只用本地特征,其具有更優(yōu)的檢測效果,但是在交易網(wǎng)絡中,聚合特征無法構(gòu)建更廣泛的交易鏈接關(guān)系。同時,文獻[4]利用加權(quán)交叉熵損失函數(shù)訓練GCN 模型,相比LR、RF、MLP等傳統(tǒng)機器學習模型,具有更高的精確率和召回率。在實際情況中,根據(jù)比特幣構(gòu)造的交易網(wǎng)絡會隨著新頂點增加而不斷擴展的特點,文獻[4]和文獻[14]提出EvolveGCN,該模型通過循環(huán)神經(jīng)網(wǎng)絡演化GCN 參數(shù)來捕獲圖序列的動態(tài)性?,F(xiàn)有的交易檢測方法存在以下2 個共同問題:1)相較于機器學習算法,神經(jīng)網(wǎng)絡訓練模型結(jié)合交易網(wǎng)絡特征,進一步加強交易特征之間的關(guān)聯(lián),但是從特征角度尋找非法交易,而沒有根據(jù)交易的鏈接關(guān)系對其本身的非法性程度進行量化分析;2)在Elliptic 數(shù)據(jù)集上標注的非法交易僅占2%,影響模型的檢測性能,通過擴增非法交易樣本提高訓練集中非法交易占比。因此,本文提出度量交易不可信度,設計算法在最大程度上正確反映交易的非法性程度。由于不可信度特征值是對交易不可信度的直接體現(xiàn),因此選擇不可信度高的交易作為樣本來擴增非法樣本。本文將不可信度作為新的特征,融合到已有判別模型,進一步提高分類模型的檢測性能。
交易的非法性源于其參與非法活動,非法活動一般涉及多個相關(guān)交易。比特幣交易具有多個輸入交易和輸出交易的性質(zhì),表明交易的非法性是可傳遞的。
2.1.1 交易不可信度傳遞
比特幣交易結(jié)構(gòu)如圖1 所示。每個交易由多項交易輸入(in-link)和交易輸出(out-link)組成,表示一次交易將多個來源的比特幣合并后轉(zhuǎn)給多個賬戶。比特幣交易構(gòu)成的網(wǎng)絡可以抽象成一個有向圖,圖中節(jié)點表示交易,邊表示從一個交易到另一個交易的比特幣流動。因此,交易不可信度是單向傳遞的。若非法交易A 指向交易B,即交易A 是交易B的輸入,則認為交易A 把自身非法性傳遞給B。
圖1 比特幣交易結(jié)構(gòu)Fig.1 Structure of Bitcoin transaction
在交易網(wǎng)絡中通常存在2 種不可信度傳遞模式,即不可信度分割和聚集。
1)不可信度分割
交易不可信度傳遞模式如圖2 所示。從圖2 可以看出,某組織參與非法活動,執(zhí)行過大宗交易A,與其有關(guān)的贓款必然會以交易的形式輸出,根據(jù)該非法交易及其流向B、C,尋找傳遞后的非法交易是檢測不可信度的有效方法。
圖2 交易不可信度傳遞模式Fig.2 Delivery mode of transaction unreliability
2)不可信度聚集
對于具有多個in-link的交易,其非法性是in-link非法性的聚合。圖2中某用戶接收贓款,發(fā)生交易D、E、F,銷贓時發(fā)生交易G,D、E、F 把不可信度傳遞到G。
在實際情況中,交易網(wǎng)絡往往錯綜復雜,發(fā)生的非法交易通常是上述兩種方式的結(jié)合與變體。另外,在多個不同的非法活動之間也可能產(chǎn)生交易上的關(guān)聯(lián)。以圖2 為例,A 的不可信度會傳遞到C,再經(jīng)由E 傳遞到G,G 會得到來自A、D、E、F 的不可信度。隨著產(chǎn)生的交易越來越多,交易網(wǎng)絡會越來越龐大。
2.1.2 交易不可信度計算
交易不可信度的計算主要是計算每個交易的不可信度分割和聚集。對于不可信度分割,即非法交易具有多個out-link 的情況,本文認為這些out-link具有相同的非法性概率,因此交易的不可信度在out-link 之間平均分配。交易A 的不可信度為rA。若交易A 有n個out-link,則每個link 的權(quán)重為rA/n。圖2 中A 是非法交易,箭頭代表交易之間的比特幣流動在不可信度聚集的情況下,交易自身的不可信度是它所有in-link 的權(quán)重之和。圖2 中D、E、F 代表非法交易,rG=rD+rE+rF。
在比特幣交易網(wǎng)絡中的交易數(shù)量龐大,計算所有交易的不可信度需要遍歷網(wǎng)絡,計算量大。為此,本文構(gòu)建計算交易不可信度模型。
G(N,E)是一個比特幣交易網(wǎng)絡,其中N是節(jié)點集合,代表交易,E是邊集合,代表從一個交易到另一個交易的比特幣流動。本文定義鄰接矩陣Mn×n,行和列都表示按時間順序排列的全部交易,數(shù)量為n。設交易i的out-link 數(shù)量為di,若i→j,那 么mji=1/di,否則mji=0。γ=[r1,r2,…,rn]T代表交易不可信度向量,其中每個交易的不可信度對應一個分量。不可信度流動計算如式(1)所示:
其中:γ(t)和γ(t+1)分別為更新前后的交易不可信度向量;鄰接矩陣Mn×n為交易之間的鏈接關(guān)系;n為總交易數(shù)量。鄰接矩陣Mn×n中每個元素mji的定義如式(2)所示:其中:di為交易i的out-link 數(shù)量。γ(t)向量的初始值來自交易的標簽,若交易i非法,則ri=1,若交易j合法,則rj=0。
交易不可信度的計算如圖3 所示。
圖3 交易不可信度的計算Fig.3 Calculation of transaction unreliability
圖3 中存在交易不可信度傳遞過程A →(B,C)→D →E,A 是非法交易,不可信度初始化為1,其他交易初始化為0。每迭代1 次,表示將每個交易的不可信度傳遞給自己的交易輸出。從A 的角度分析,經(jīng)過1、2、3 次迭代后,A 的不可信度分別傳遞給B、C、D 和E。從E 的角度分析,經(jīng)過1、2、3 次迭代后,E 分別得到來自D、B、C 和A 的不可信度,結(jié)果如圖3(c)所示。將迭代結(jié)果累加后得到A、B、C、D、E 的不可信度分別為1、0.5、0.5、1 和1。
比特幣交易網(wǎng)絡存在很多分散的交易,它們無法得到來自之前交易的不可信度,也不能將自己的不可信度傳遞給之后的交易。這些交易阻斷了不可信度的傳播,導致最終計算得到的很多非法交易不可信度為0,這將影響分類模型對非法交易的判定。本文設置每個交易把自身不可信度的大部分權(quán)重(占比β)傳遞給自己指向的交易,將少部分權(quán)重(占比1-β)傳遞給所有交易。改進的不可信度流動結(jié)果如式(3)所示:
其中:[(1-β)/n]n是所有n項都為(1-β)/n的向量;β為每個交易把自身不可信度傳遞給自己指向交易的比例。不可信度流動公式經(jīng)過改進后,交易不可信度結(jié)果如圖3(d)所示。式(3)迭代m次后,不可信度趨于穩(wěn)定,即‖ ‖γ(t+1)-γ(t) ≤ε,實際是一筆交易的不可信度在經(jīng)過m次傳輸后,可傳遞到它的大部分后代交易。網(wǎng)絡中每個非法交易把不可信度傳遞到末端交易的次數(shù)不同,本文需要確定合適的次數(shù),使得大部分非法交易能把不可信度傳遞到末端交易,m是該次數(shù)的近似值。本文對經(jīng)過迭代的交易,通過對上級或上上級交易獲得的不可信度進行累加,將其作為最終的不可信度,如式(4)所示:
改進的不可信度計算對γ進行標準化處理[24],如式(5)所示:
其中:ri為每個交易的不可信度為n個交易的不可信度均值;s為n個交易不可信度的標準差。適當調(diào)整不可信度流動公式中的參數(shù)β,使算法在測試階段的非法交易檢測能力達到最優(yōu)。
本文對度量算法進行以下直觀描述:若交易的不可信度高,則交易的非法性程度較大,交易不可信度是其in-link 不可信度的總和。較高的不可信度既包含交易中許多非法in-link 的情況,也包含交易的in-link 不可信度值很高的情況。令X為所有交易不可信度的初始向量。度量算法主要有4 個步驟:1)令γ(0)=X;2)執(zhí)行直 到||γ(t+1)-γ(t)||≤ε;3)計 算4)標準化處理γ,ri←
步驟2 中||γ(t+1)-γ(t)||是迭代前后兩個不可信度向量的歐氏距離,用于衡量相似度。若歐氏距離小于等于ε,則認為兩個向量相似,停止迭代。ri的初始值為1 或0,即非法或合法。若交易i具有多個非法的上一級交易或上上級交易,則在迭代過程中,交易i將從中獲得非法性,因此ri大于1。ri越大,表示從上幾級交易中獲得非法性的概率越大。
由于實驗數(shù)據(jù)收集不完整,因此交易網(wǎng)絡存在交易缺失和一些交易沒有標簽的情況,阻礙交易不可信度的傳播。另外,在交易網(wǎng)絡中存在一些相對獨立的非法交易,其交易不可信度的獲取和傳遞受到限制,不能反映交易的非法性。這種情況需要根據(jù)交易本身的特征來判斷非法交易。因此,本文提出將不可信度融合到現(xiàn)有的分類模型中,提高模型的準確度,即把不可信度作為一種新的特征和交易本身特征合并,共同判斷非法交易。
交易不可信度本質(zhì)是對交易是否非法的量化表征,是一個包含信息量的特征。
不可信度是交易不可信的本質(zhì)體現(xiàn),本文將不可信度高的交易作為樣本來擴增非法樣本。實驗發(fā)現(xiàn),將不可信度作為交易唯一特征,通過LR 檢測未知交易類型,精確率可達91%以上。本文提出將LR 檢測到的非法交易放入訓練集中,重新計算交易不可信度,以新的不可信度作為唯一特征,再次把檢測到的非法交易放回訓練集,如此循環(huán),直到無法檢測出新的非法交易。非法交易樣本擴增過程如圖4 所示。
圖4 非法交易樣本擴增流程Fig.4 Expanding procedure of illicit transaction samples
本文通過實驗驗證交易不可信度特征與交易原有特征合并后,以及擴增非法交易樣本在提高精確率和召回率方面的有效性。
本文將精確率、召回率、F1 值作為客觀評價指標,以評價檢測能力。精確率、召回率分別如式(6)和式(7)所示:
其中:TTP表示把非法交易判定為非法交易的數(shù)量;FFP表示把合法交易判定為非法交易的數(shù)量;FFN表示把非法交易判定為合法交易的數(shù)。P值越高,表示檢測精確率越高。R值越高,表示樣本中非法交易被正確預測的比例越高。精確率和召回率會相互影響,精確率提高,召回率則會降低。為綜合衡量兩者的關(guān)系,F(xiàn)1 值定義如下:
F1 對P和R進行加權(quán),F(xiàn)1 值越高,方法的檢測性能越好。
本文使用邏輯回歸(LR)[10]、隨機森林(RF)[11]、多層感知機(MLP)[12]這3 種基準機器學習方法[4]和圖卷積網(wǎng)絡(GCN)[13]檢測非法交易。融入交易不可信度和擴增訓練集對提高現(xiàn)有模型的檢測性能具有重要意義。LR 根據(jù)現(xiàn)有數(shù)據(jù)確定分類邊界線,再擬定回歸函數(shù)式并進行分類。RF 是一種集成學習算法,由多棵決策樹組成。MLP 中的每個輸入神經(jīng)元接收一個數(shù)據(jù)特征,每個隱藏層的輸出通過softmax進行變換,最后得到每個類別的概率向量。GCN 則充分利用了圖的結(jié)構(gòu)信息。
實驗環(huán)境:Java,MapReduce,Python3.8,PyTorch,處理器為Inter?CoreTMi7-8750H CPU@2.20 GHz,內(nèi)存為16 GB。
Elliptic 數(shù)據(jù)集(www.elliptic.co)是當前世界上最大(665 MB)、含標簽、公開可用的比特幣交易數(shù)據(jù)集[4]。由于該數(shù)據(jù)集所含交易數(shù)據(jù)量大且特征完善,因此本文在Elliptic 數(shù)據(jù)集上進行分析和實驗。在數(shù)據(jù)集中非法交易、合法交易、未標記交易占比分別為2%(4 545 個)、21%(42 019 個)和77%。每個交易有94 個本地特征(記為LF),表示交易本身的特征;有72 個聚合特征(記為AF),表示鄰居交易特征。交易數(shù)據(jù)時間跨度約為2 周,分為49 個時間段,記為T1~T49,在同一個時間段內(nèi)交易互相關(guān)聯(lián)且具有時序性,在不同時間段之間的交易無關(guān)聯(lián)。不同時間段所含交易總量和非法交易數(shù)量均不同。
本文選擇非法交易數(shù)量達到200 以上的T20,T29 和T32,將交易不可信度作為唯一特征,利用LR模型檢測非法交易。訓練集與測試集的比例為8∶2。
本文選取非法交易數(shù)量達到300 以上的T29,將不可信度融入到LR、RF、MLP 和GCN 分類模型檢測非法交易。訓練集與測試集的比例為8∶2,即在一定時間序列上,前80%交易作為訓練集,后20%交易作為測試集。在訓練集中非法交易初始化為1,訓練集中其他交易和測試集中所有交易初始化為0。本文通過計算交易不可信度并擴增非法交易樣本,將最新的不可信度(記為R)和Elliptic 數(shù)據(jù)集中原有特征合并,驗證本文方法的有效性。實驗采用兩種合并方式,先把R 和LF 合并,再把R和LF、AF合并,最后分別使用LR、RF、MLP、GCN分類模型檢測非法交易。
當不可信度流動式(3)中的β取值0.60~0.85 時,實驗分類結(jié)果較優(yōu)且基本穩(wěn)定。本文實驗的β設為均值0.7。LR 使用sklearn Python 包默認參數(shù)。RF 使用sklearn Python包,設置n_estimators=50,max_features=50。MLP 使用PyTorch 框架,neurons=50,epoch 為10,采用Adam 優(yōu)化,學習率為0.001。GCN 使用torch_geometric 框架,epoch 為1 000。
4.4.1 非法交易預測
本文將交易不可信度作為唯一特征,在數(shù)據(jù)集T20、T29 和T32 上,利用LR 分類模型檢測非法交易類型的精確率、召回率,如表1 所示。
表1 在不同數(shù)據(jù)集上LR 模型的非法交易檢測結(jié)果Table 1 Illicit transaction detection results of LR model on different datasets %
LR 分類模型的精確率可達91%~100%,但召回率較低。在交易網(wǎng)絡中因交易缺失阻斷不可信度的傳遞,導致很多非法交易無法找到他們引用的交易,難以得到準確的不可信度,因此召回率較低。此外,交易網(wǎng)絡存在一些散發(fā)的非法交易,僅利用不可信度檢測很難發(fā)現(xiàn)該交易。對于這些交易只能利用交易特征判別其交易類型。為利用LR 檢測精確率高的優(yōu)點,避免召回率低的缺點,本文提出融合不可信度R 和交易特征來檢測非法交易。
4.4.2 交易不可信度與擴增訓練集融合結(jié)果
本文在數(shù)據(jù)集上加入不可信度R 和擴增訓練集,與僅用本地特征LF 和聚合特征AF 檢測進行對比。
在Elliptic 數(shù)據(jù)集中未知交易占比達77%,實驗中測試集的未知類型交易會被預測為合法交易或非法交易。本文將未知類型的交易剔除后進行結(jié)果評估。LR、RF、MLP 和GCN 分類模型加入不可信度R 后和擴增訓練集的非法交易檢測結(jié)果分別如表2~表5 所示。
表2 LR 模型非法交易檢測結(jié)果Table 2 Illicit transaction detection results of LR model %
表3 RF 模型的非法交易檢測結(jié)果Table 3 Illicit transaction detection results of RF model %
表4 MLP 模型的非法交易檢測結(jié)果Table 4 Illicit transaction detection results of MLP model %
表5 GCN 模型的非法交易檢測結(jié)果Table 5 Illicit transaction detection results of GCN model %
從表中可以看出,加入不可信度R 后,LR、RF、MLP 和GCN 分類模型的F1 值均有所提高,說明不可信度R 能夠有效提高模型的檢測能力,其原因為在非法交易之間有關(guān)聯(lián)關(guān)系,非法性具有可傳遞性,交易不可信度能直接反映交易的非法性,相比僅用交易一般特征判斷更準確。交易不可信度和交易一般特征共同作用得到更好的分類效果。在本地特征LF 和聚合特征AF 中加入不可信度R 后,LR、RF、MLP、GCN 這4 種模型的精確率分別平均提高11.19%、0.64%、12.45%、0.29%,召回率分別平均提高4.54%、0.65%、24.03%、4.55%。GCN 的精確率雖然僅略微提高,但F1 值提高3.75%。GCN 基于鄰居交易特征利用交易網(wǎng)絡拓撲結(jié)構(gòu)對鄰居交易信息進行刻畫,而本文提出的不可信度是根據(jù)交易網(wǎng)絡對不可信度直接刻畫。因此,融合不可信度后,模型召回率明顯提高。從表3 可以看出,RF 模型使用本地特征LF 和聚合特征AF 檢測時,精確率、召回率已達到93%~97%,加入不可信度R 后,精確率、召回率只有略微提高。因此,R 對檢測非法交易的有效性與選擇模型有關(guān)。
模型對交易進行分類后,得到交易的合法和非法概率,記為P(交易y合法)和P(交易y非法),兩者和為1。加入交易不可信度后,以邏輯回歸為例,67.5%的非法交易獲得更高的P(交易y非法),58.4%的合法交易獲得更高的P(交易y 合法)。預測概率的變化直接導致上述分類精確率和召回率的提高,驗證了不可信度對非法交易檢測的有效性。
從表2、表4、表5 可以看出,本文通過LR 檢測得到的非法交易對訓練集進行迭代。在擴增訓練集后,LR、MLP 和GCN 模型的F1 值均提高。LR、GCN的精確率平均提高0.6%、0.985%,召回率平均提高1.95%、2.6%。MLP 的精確率略微降低,召回率提高1.95%。由于擴增數(shù)據(jù)集時會加入一些有假陽性的交易,因此分類結(jié)果精確率略微降低,對RF 模型的影響較為明顯,精確率平均降低了3.1%。召回率和F1 值提高,說明擴增訓練集能夠有效提高LR、MLP和GCN 模型的檢測能力。
本文設計基于交易不可信度的比特幣非法交易檢測方法。定義交易不可信度,通過量化交易不可信度并構(gòu)建不可信度計算模型,同時把交易不可信度融合到已有的判別模型中,提高模型的檢測能力。針對非法交易樣本不足的問題,本文在量化交易不可信度的基礎上,通過迭代訓練集的方式擴增非法交易樣本。實驗結(jié)果表明,該方法能夠有效提高非法交易的精確率和召回率。后續(xù)將針對實時交易的非法檢測問題進行研究,進一步優(yōu)化本文方法的實時性。