摘 要:針對國內(nèi)現(xiàn)有挖礦行為檢測識別技術(shù)的準(zhǔn)確性不高、缺少具體挖礦行為證據(jù)等問題,提出了一種基于網(wǎng)絡(luò)流量的挖礦行為檢測識別模型和多維度挖礦指紋特征提取方法,該模型通過對Stratum、Getwork等礦池協(xié)議的指令特征提取分析,能夠高效準(zhǔn)確地實現(xiàn)對挖礦行為的自動檢測識別,并提煉出多維度的挖礦指紋特征,包括挖礦指令、礦池幣種、軟件型號、挖礦賬號、算力、能耗等信息。實驗結(jié)果表明,該模型能夠準(zhǔn)確識別相關(guān)挖礦行為并分析得出其多維度挖礦指紋特征,算力特征識別的準(zhǔn)確性為95%左右,總體的挖礦行為檢測識別的準(zhǔn)確性為91.73%,為虛擬貨幣挖礦檢測提供了一種精準(zhǔn)有效的解決方案。
關(guān)鍵詞:虛擬貨幣; 挖礦行為; 礦池協(xié)議; 檢測識別
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2022)07-005-1956-05
doi:10.19734/j.issn.1001-3695.2022.02.0034
基金項目:國家重點研發(fā)計劃“區(qū)塊鏈”重點專項資助項目(2021YFB2701104);北京市自然科學(xué)基金資助項目(M21038)
作者簡介:史博軒(1995-),男,北京人,助理工程師,碩士,主要研究方向為區(qū)塊鏈安全;林紳文(1982-),男(通信作者),江西玉山人,高級工程師,碩士,主要研究方向為區(qū)塊鏈安全、網(wǎng)絡(luò)空間安全(lsw@cert.org.cn);毛洪亮(1990-),男,山東濟(jì)南人,高級工程師,博士,主要研究方向為區(qū)塊鏈技術(shù)應(yīng)用關(guān)鍵技術(shù).
Research on mining behavior detection and identification technology based on network traffic
Shi Boxuan, Lin Shenwen?, Mao Hongliang
(National Computer Network Emergency Technology Coordination Center, Beijing 100029, China)
Abstract:In view of the low accuracy of the existing domestic mining behavior detection and identification technology, lack of specific mining behavior evidence, and unfavorable supervision, this paper proposed a network traffic-based mining behavior detection and identification model and multi-dimensional mining behavior. Mining fingerprint feature extraction method, this model could efficiently and accurately realize automatic detection and identification of mining behavior by extracting and analyzing the command features of mining pool protocols such as Stratum and Getwork, and extracted multi-dimensional mining fingerprint features, including mining instructions, mining pool currency, software model, mining account, computing power, energy consumption and other information. The experimental results show that the model can accurately identify relevant mining behaviors and analyze its multi-dimensional mining fingerprint features. The accuracy of computing power feature recognition is about 95%, and the overall mining behavior detection and recognition accuracy is 91.73%, to provide an accurate and effective solution for regulating virtual currency mining.
Key words:virtual currency; mining behavior; mining pool protocol; detection and identification
0 引言
2021年,在碳中和的背景下,挖礦等高耗能行業(yè)背離低碳目標(biāo),另一方面,伴隨資金的跨境流出,虛擬貨幣被頻繁用于洗錢、詐騙、賭博等非法交易之中,其資金路徑隱秘性更強(qiáng)。國內(nèi)對虛擬貨幣挖礦和交易行為的管理再次升級,2021年9月24日,人民銀行、網(wǎng)信辦等十部委聯(lián)合發(fā)布《關(guān)于進(jìn)一步防范和處置虛擬貨幣交易炒作風(fēng)險的通知》,指出境外虛擬貨幣交易平臺通過互聯(lián)網(wǎng)向境內(nèi)居民提供服務(wù),同樣屬于非法金融活動,一律嚴(yán)格禁止,堅決依法取締,力度前所未有。同月國家發(fā)展改革委等11部委印發(fā)《關(guān)于整治虛擬貨幣“挖礦”活動的通知》,要求加強(qiáng)虛擬貨幣“挖礦”活動上下游全產(chǎn)業(yè)鏈管理,嚴(yán)禁新增虛擬貨幣“挖礦”項目。據(jù)不完全統(tǒng)計,截至2021年10月,國務(wù)院金融委、國家發(fā)改委和央行等十部委以及內(nèi)蒙古、云南、安徽等省份及相關(guān)機(jī)構(gòu),共發(fā)布了13條打擊虛擬貨幣挖礦和交易的政策,全面整治“挖礦”帶來的高能耗以及通過虛擬幣炒作交易擾亂金融秩序等問題[1]。
在以比特幣、以太坊為首,基于工作量證明(proof of work,PoW)的區(qū)塊鏈網(wǎng)絡(luò)中[2],用戶不斷嘗試計算獲得符合算法條件的數(shù)值,通常采用“礦工—礦池”的模式進(jìn)行“挖礦”,獲得持續(xù)且穩(wěn)定的收益,礦池負(fù)責(zé)監(jiān)聽網(wǎng)絡(luò)中的交易、打包區(qū)塊等工作,礦工則根據(jù)礦池下發(fā)的計算任務(wù),通過ASIC或家用礦機(jī)設(shè)備,消耗設(shè)備計算資源,計算出符合要求的shares返回給礦池,礦池根據(jù)礦工提交有效shares的權(quán)重進(jìn)行收益分配。
當(dāng)前國內(nèi)外圍繞虛擬貨幣挖礦的相關(guān)研究實踐主要集中在經(jīng)濟(jì)學(xué)和計算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域。在經(jīng)濟(jì)學(xué)領(lǐng)域,主要關(guān)注加密貨幣幣價的影響因子以及礦商挖礦行為和幣價間的內(nèi)在聯(lián)系,如樓堯[3]以比特幣為例開展了加密貨幣幣價決定與挖礦行為的探索性研究。在計算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,針對挖礦行為的檢測識別技術(shù)主要分為
a)基于用電異常與現(xiàn)場排查的挖礦活動發(fā)現(xiàn)監(jiān)測方法。該方法只適用于大規(guī)模集中式的專業(yè)礦機(jī)挖礦行為監(jiān)測。目前,挖礦行為主要以分散式小規(guī)模、現(xiàn)場難以發(fā)現(xiàn)的通用或部分專業(yè)設(shè)備挖礦為主,該方法難以發(fā)現(xiàn)該挖礦行為,且效率低。同時,由于挖礦用電成本約占挖礦收益的10%,挖礦獲利在社會上具有較大的吸引力,比特幣等虛擬貨幣的價格長居高位及交易頻繁,給我國挖礦整治工作帶來巨大挑戰(zhàn)[4]。
b)基于機(jī)器學(xué)習(xí)的網(wǎng)絡(luò)流量異常檢測方法[5]。該方法能夠?qū)崟r檢測并預(yù)測網(wǎng)絡(luò)流量中的異常,在識別檢測領(lǐng)域已經(jīng)得到了廣泛的研究和應(yīng)用。但挖礦行為識別覆蓋面不高,且針對大規(guī)模網(wǎng)絡(luò)流量處理難度大,不利于發(fā)現(xiàn)相關(guān)挖礦行為。
c)基于礦池IP流量的檢測識別方法。該方法能夠低成本輕量化地識別連接目標(biāo)礦池。例如Rauchberger等人[6]通過分析礦工與礦池通信的 WebSockets 流量檢測是否存在挖礦行為,但由于礦池IP可能存在動態(tài)變化、收集礦池IP工作復(fù)雜以及相關(guān)閾值設(shè)置等問題,導(dǎo)致檢測準(zhǔn)確性不高,且僅通過網(wǎng)絡(luò)連接信息無法掌握挖礦活動的核心指標(biāo),例如挖礦幣種、能耗等。
針對以上問題,本文提出了一種基于網(wǎng)絡(luò)流量交互協(xié)議特征的挖礦行為檢測識別模型和多維度挖礦指紋特征提取方法,根據(jù)礦池協(xié)議通信特征、區(qū)塊哈希值、礦池域名等信息,能夠高效準(zhǔn)確地對挖礦行為進(jìn)行自動檢測識別,并提煉出多維度的挖礦指紋和核心指標(biāo),包括挖礦幣種、算力、能耗等,該方法極大地降低了人工成本,且可以自動化、大范圍排查。同時在挖礦算力和能耗評估方面的工作具有首創(chuàng)性,所提出的方法借助資源較少,對比傳統(tǒng)需要依靠電力等數(shù)據(jù)評估的方式,解決方案具有新穎度和創(chuàng)新性,整體應(yīng)用效果和社會價值較高,為整治國內(nèi)挖礦提供精準(zhǔn)高效的方法。
1 礦池協(xié)議通信特征
當(dāng)前,比特幣、萊特幣等主流礦池通常采用Stratum協(xié)議,其能夠使礦工更加高效、可靠地從礦池端獲取計算任務(wù),該協(xié)議數(shù)據(jù)則以JSON的格式進(jìn)行封裝,其他幣種的礦池大部分也都采用該協(xié)議進(jìn)行通信,同時針對自身需求對該協(xié)議進(jìn)行部分修改和調(diào)整。以太坊礦池以Getwork協(xié)議為主,部分以太坊礦池,如NiceHash,根據(jù)Stratum協(xié)議規(guī)范進(jìn)行改進(jìn),也形成了以太坊版本的Stratum協(xié)議。
1.1 Stratum協(xié)議
Stratum協(xié)議的通信主要流程如圖1所示,具體相關(guān)指令標(biāo)識及通信流程為
a)任務(wù)訂閱。在礦工與礦池建立連接后,通過mining.subscribe指令可以向礦池端進(jìn)行挖礦任務(wù)的訂閱。礦工端任務(wù)訂閱的數(shù)據(jù)格式應(yīng)至少包含通信軟件的名稱、軟件版本信息。
b)礦工認(rèn)證。礦工在任務(wù)訂閱成功后,以mining.authorize指令向礦池發(fā)送其賬號名稱和密碼完成認(rèn)證。只有被礦池認(rèn)證授權(quán)的礦工才能收到礦池指派任務(wù)。礦工端認(rèn)證的數(shù)據(jù)格式應(yīng)至少包含用戶賬號名稱,若礦工存在多臺礦機(jī)設(shè)備,賬號名稱和設(shè)備號使用英文句號隔開。
c)發(fā)起任務(wù)。當(dāng)認(rèn)證通過后,礦池向礦工下發(fā)計算任務(wù),同時礦池會根據(jù)礦工的算力情況,以mining.set_difficulty指令使礦工動態(tài)調(diào)整自身難度以便更高效地進(jìn)行挖礦。礦池端發(fā)起的調(diào)整難度值的數(shù)據(jù)格式應(yīng)至少包含客戶端調(diào)整后的難度值。礦工端也可以通過mining.suggest_difficulty指令,向礦池端建議自身的難度值。
d)提交任務(wù)。當(dāng)?shù)V工計算出符合shares的任務(wù)時,通過mining.submit指令向礦池提交任務(wù)。礦工端提交任務(wù)的數(shù)據(jù)格式應(yīng)至少包含賬號名稱。礦池隨時都可以給礦工指派新的任務(wù),對于礦工來說,如果收到礦池指派的新任務(wù),應(yīng)立即無條件轉(zhuǎn)向新任務(wù)。
1.2 Getwork協(xié)議
Getwork協(xié)議是區(qū)塊鏈較早期的挖礦協(xié)議,基于json-rpc協(xié)議框架,多以靠GPU挖礦驅(qū)動的虛擬貨幣采用此協(xié)議為主,后續(xù)礦池協(xié)議仍采用或延續(xù)該協(xié)議,Getwork與Stratum協(xié)議通信流程類似,具體相關(guān)指令為
a)授權(quán)認(rèn)證。礦工端采用eth_submitLogin指令,發(fā)送其賬號名稱和密碼至礦池端完成認(rèn)證。礦工端認(rèn)證的數(shù)據(jù)格式應(yīng)至少包含賬號名稱,也可以為相關(guān)幣種的錢包地址等信息。
b)提交工作證明。當(dāng)?shù)V工計算出符合shares的任務(wù)時,礦工端通過eth_submitWork指令,發(fā)送相關(guān)計算出的數(shù)值向礦池端提交工作證明,礦工端提交工作證明的數(shù)據(jù)格式應(yīng)至少包含礦工計算出來的nonce值、前一個區(qū)塊頭的哈希值、當(dāng)前區(qū)塊的最大目標(biāo)值。
c)提交挖礦速率。礦工端通過eth_submitHashrate指令向礦池動態(tài)發(fā)送其挖礦設(shè)備計算出shares時的哈希速率。礦池端可以根據(jù)礦工發(fā)送的哈希速率,合理分配給礦工計算任務(wù)。提交挖礦速率的數(shù)據(jù)格式應(yīng)至少包含礦工計算時的哈希速率以及礦工設(shè)備編碼信息。一般當(dāng)?shù)V工設(shè)備連接礦池時,礦池端會為其標(biāo)記出一個設(shè)備編碼,當(dāng)?shù)V工設(shè)備出現(xiàn)宕機(jī)等情況與礦池失去連接時,礦池會重新分配給礦工設(shè)備新的設(shè)備編碼。
1.3 其他協(xié)議
XMR、CTXC、SERO等虛擬貨幣,自身采用基于json-rpc協(xié)議特定的相關(guān)指令標(biāo)識,簡化了部分操作流程,但礦工與礦池之間通信的邏輯和流程均與Getwork協(xié)議類似。以XMR為例,其具體登錄和提交相關(guān)指令標(biāo)識為
a)登錄連接。礦工端采用login指令進(jìn)行登錄并連接礦池端,礦工端發(fā)送登錄連接指令至礦池端的數(shù)據(jù)格式應(yīng)至少包含登錄名稱信息、設(shè)備版本、依賴類庫、加密算法等信息。其中登錄名稱可以為用戶昵稱或者95位的XMR錢包地址。
b)提交任務(wù)。當(dāng)?shù)V工計算出符合shares的任務(wù)時,礦工端通過submit指令,發(fā)送相關(guān)計算的結(jié)果數(shù)值向礦池端提交任務(wù),礦工端發(fā)送提交任務(wù)指令至礦池端的數(shù)據(jù)格式應(yīng)至少包含本次任務(wù)ID號、本次任務(wù)的nonce值、礦工計算出滿足要求的結(jié)果、加密算法。
2 挖礦行為檢測識別模型
如圖2所示,該挖礦行為檢測識別模型主要由挖礦行為檢測模塊、指紋特征提取模塊和閾值分析模塊三部分組成。其中網(wǎng)絡(luò)流量應(yīng)選取相同時間間隔內(nèi)的離散流量信息,包括源IP、源端口、目的IP、目的端口、時間戳以及有效載荷信息。針對實際應(yīng)用場景中網(wǎng)絡(luò)流量巨大的問題,可根據(jù)實際需要網(wǎng)絡(luò)流量情況,設(shè)置網(wǎng)絡(luò)流量抽樣的時間間隔、服務(wù)器集群性能等方法以滿足檢測挖礦行為的需要。
挖礦行為檢測模塊將抽樣網(wǎng)絡(luò)流量進(jìn)行規(guī)則匹配,自動檢測識別挖礦行為,將篩選檢測出的挖礦網(wǎng)絡(luò)流量通過指紋特征提取模塊提煉出多維度的挖礦指紋和核心指標(biāo),包括挖礦幣種、算力、能耗等,閾值分析模塊根據(jù)挖礦指標(biāo)進(jìn)行特征量化和閾值篩選,準(zhǔn)確檢測識別出挖礦行為。
2.1 挖礦行為檢測模塊
挖礦行為檢測模塊根據(jù)接入的網(wǎng)絡(luò)流量的有效載荷信息,與表1所定義的基于json-rpc的規(guī)則內(nèi)容進(jìn)行匹配,該規(guī)則內(nèi)容能夠涵蓋Stratum協(xié)議、Getwork協(xié)議和其他挖礦通信協(xié)議規(guī)則格式,并且根據(jù)匹配到的網(wǎng)絡(luò)流量有效載荷信息是否like′%subscribe%′ or ′%authorize%′ or ′%difficulty%′等相關(guān)內(nèi)容,將匹配到的網(wǎng)絡(luò)流量信息存入至行為數(shù)據(jù)庫,待指紋特征提取模塊提取相應(yīng)的挖礦特征。同時考慮到網(wǎng)絡(luò)流量的數(shù)據(jù)量大,本文部署了多個服務(wù)器組成的服務(wù)器集群并發(fā)處理網(wǎng)絡(luò)流量同步至行為數(shù)據(jù)庫中。
2.2 指紋特征提取模塊
指紋特征提取模塊根據(jù)行為數(shù)據(jù)庫中檢測到的挖礦流量數(shù)據(jù),通過相關(guān)礦池通信協(xié)議指令標(biāo)識及挖礦行為關(guān)鍵詞判斷礦工IP和端口信息、礦池IP和端口信息以及相關(guān)特征,以礦工IP、礦池IP及礦池端口為唯一值,與IP—域名—幣種數(shù)據(jù)庫相匹配,該數(shù)據(jù)庫中存儲的為已識別為挖礦行為的礦池IP、礦池端口和對應(yīng)幣種信息,提取出相應(yīng)的挖礦指令序列、挖礦軟件型號、幣種信息、賬號設(shè)備數(shù)量信息、算力信息、能耗信息等挖礦指紋核心特征。指紋特征提取部分的邏輯為將從挖礦行為檢測模塊中獲得的數(shù)據(jù)流量報文信息拆分為源IP、源端口、目的IP、目的端口、時間戳以及有效載荷。根據(jù)相關(guān)協(xié)議特征的正則表達(dá)式,篩選出報文攜帶挖礦行為的指令,若存在則采用switch-case模式,根據(jù)不同的挖礦指令分析其相關(guān)信息,如mining.authorize可通過報文提取礦工IP和端口、礦池IP和端口、時間戳、賬戶信息以及推測挖礦設(shè)備數(shù)量等特征。相關(guān)指紋特征提取部分的偽代碼如下所示。
begin
input message;
split (Source IP,Source Port,DeStination IP, DeStination Port,Time, payload);
if (payload.matcher = = true)
switch (payload.matcher) {
case \"mining.authorize\":
…
ouput authorize;
case \"mining.subscribe\":
…
default:
…
end
2.3 閾值分析模塊
由于部分礦池存在更換IP地址信息或者礦工未正常與礦池通信等無效挖礦的情況,為了更加準(zhǔn)確檢測識別礦工的挖礦行為,需要對各項挖礦指紋特征進(jìn)行分析量化。閾值分析模塊通過指紋特征提取模塊提取出相應(yīng)的挖礦指令序列、挖礦軟件型號、幣種信息、賬號設(shè)備數(shù)量信息、算力信息、能耗信息等挖礦指紋特征,構(gòu)建其特征序列(P1,P2,…,Pn),該特征序列包括任務(wù)提交、挖礦指令數(shù)、礦池IP是否標(biāo)記、時間差、登錄連接、算力或困難值、軟件型號、需對特征序列根據(jù)其挖礦行為重要程度設(shè)置不同的權(quán)重值(K1,K2,…,Kn)。根據(jù)式(1)對其指紋特征進(jìn)行加權(quán)平均計算特征值Y,再根據(jù)該模塊的閾值進(jìn)行篩選,將滿足閾值條件的礦工IP、礦池IP、礦池端口以及其對應(yīng)的指紋特征存儲至挖礦識別數(shù)據(jù)庫中,并將識別出來的礦池IP和礦池端口進(jìn)行統(tǒng)計匯總,持續(xù)更新至IP—域名—幣種數(shù)據(jù)庫。
3 多維度指紋特征
針對國內(nèi)挖礦行為檢測識別缺少具體實質(zhì)性挖礦行為證據(jù)等問題,由于大多數(shù)礦池通信協(xié)議的網(wǎng)絡(luò)流量以明文形式為主,并且均包含比較明顯的指令標(biāo)識。本章根據(jù)Stratum、Getwork和其他挖礦通信協(xié)議的原理流程歸納總結(jié),將不同礦池協(xié)議的指令標(biāo)識邏輯進(jìn)行合理的反向推測,整理出關(guān)鍵指標(biāo)特征的識別方法并提煉出挖礦行為多個維度的虛擬貨幣挖礦指紋特征,實現(xiàn)指紋特征提取模塊對挖礦行為特征的有效提取,依賴于幣種信息、賬號設(shè)備數(shù)量信息、算力信息以及能耗信息等挖礦特征,能夠有效掌握挖礦規(guī)模并提供具體依據(jù)。
3.1 幣種信息
幣種信息的識別能夠有效把握總體挖礦態(tài)勢情況,及時作出應(yīng)對和判斷,因此提出基于多維度信息的挖礦幣種識別方法:
a)礦池域名推測。礦工在連接礦池通信時,首先礦工會通過DNS服務(wù)器將礦池IP信息解析為相應(yīng)的礦池域名。根據(jù)Stratum、Getwork和其他挖礦通信協(xié)議的指令特征及通信流程,通過相關(guān)協(xié)議的挖礦指令,判斷其數(shù)據(jù)報文中源IP信息和源端口信息或者目的IP信息和目的端口信息,推斷出礦池的IP和端口信息及礦工的IP和端口信息,將礦池的IP信息進(jìn)行相關(guān)反域名解析可獲得其連接的礦池域名信息。一般地,礦池的子域名中可攜帶其相關(guān)的幣種信息,如btc.f2pool.com、eth-asia1.nanopool.org等。部分礦池的子域名中不包含幣種或幣種信息不明顯,也可根據(jù)該域名的端口號及該礦池主頁信息推斷其相應(yīng)的幣種信息。
b)挖礦軟件名稱推測。根據(jù)Stratum協(xié)議的mining.subscribe指令,可以獲得礦工相關(guān)挖礦軟件名稱信息,從而推測出其相應(yīng)的幣種信息,如ETH或ETC礦工的挖礦軟件名稱可能包含ethminer或EthereumMiner等信息,CFX礦工的挖礦軟件名稱可能包含cfx及其相關(guān)錢包地址等信息,BTC相關(guān)礦工以ASIC礦機(jī)設(shè)備挖礦為主,如神馬礦機(jī)、螞蟻礦機(jī)S19等,因此其挖礦軟件名稱可能以Antminer S19、whatsminer等為主。
c)前一個區(qū)塊頭哈希值推測。根據(jù)Stratum和Getwork協(xié)議相關(guān)指令,在礦池下發(fā)任務(wù)時,相關(guān)數(shù)據(jù)報文中會攜帶前一個區(qū)塊頭的哈希值信息,可以通過數(shù)據(jù)報文的時間信息及相關(guān)主流幣種的區(qū)塊鏈瀏覽器,推測出挖礦相應(yīng)的幣種信息。
d)挖礦賬號推測。匿名挖礦使用錢包地址作為挖礦賬號,根據(jù)錢包地址的類型可以推測出相應(yīng)的挖礦幣種信息。
e)礦池協(xié)議指令推測。由于部分虛擬貨幣采用特定指令,可以根據(jù)該挖礦操作指令判斷其幣種。例如SERO幣,其登錄認(rèn)證的操作指令為sero_submitLogin,提交任務(wù)的操作指令為sero_submitWork。
3.2 賬號設(shè)備數(shù)量信息
挖礦設(shè)備在通信協(xié)議中無唯一確定性標(biāo)識,難以通過單一指標(biāo)明確挖礦設(shè)備,因此綜合Stratum、Getwork和其他挖礦通信協(xié)議的賬號信息相關(guān)指令標(biāo)識邏輯,建立以下模型:
a)mining.authorize指令推測。根據(jù)Stratum協(xié)議的mi-ning.authorize指令,可通過數(shù)據(jù)報文獲得礦工IP所對應(yīng)的賬號信息,賬號信息中可能包含礦工的收益的錢包地址、IP等信息。由于單個礦工可能存在多臺礦機(jī)設(shè)備,賬號名稱和設(shè)備號使用英文句號進(jìn)行隔開,所以可推算出相關(guān)礦工賬號名稱以及其存在礦機(jī)設(shè)備的數(shù)量。
b)mining.submit指令推測。根據(jù)Stratum協(xié)議的mining.submit指令,可通過數(shù)據(jù)報文獲得礦工IP所對應(yīng)的賬號和挖礦設(shè)備數(shù)量信息。具體獲取賬號設(shè)備信息方法與a)一致。
c)eth_submitLogin指令推測??梢愿鶕?jù)Getwork協(xié)議的eth_submitLogin指令,通過數(shù)據(jù)報文獲得礦工IP所對應(yīng)的賬號和挖礦設(shè)備數(shù)量信息。具體獲取賬號設(shè)備信息方法與a)一致。
d)worker標(biāo)識推測。根據(jù)礦工與礦池通信時,數(shù)據(jù)報文中攜帶格式為包含worker字段內(nèi)容,其中包含礦工設(shè)備名稱,可根據(jù)不同礦工設(shè)備名稱的數(shù)量推算出相關(guān)礦工IP存在礦機(jī)設(shè)備的數(shù)量。
e)uid內(nèi)容推測。在提交任務(wù)時,可以根據(jù)Getwork協(xié)議中的eth_submitHashrate指令包含的uid的數(shù)值推測相關(guān)礦工IP存在礦機(jī)設(shè)備的數(shù)量,但由于設(shè)備重啟時導(dǎo)致uid數(shù)值變化,通過該方法推測設(shè)備數(shù)量會導(dǎo)致結(jié)果偏大。
基于相關(guān)礦工賬號名稱以及其存在礦機(jī)設(shè)備的數(shù)量準(zhǔn)確性的考慮,根據(jù)以上五種方法推測相關(guān)挖礦設(shè)備數(shù)量的特征識別,推測設(shè)備數(shù)量式(2)可以表示為
其中:P為推測設(shè)備數(shù)量;A為方法a)b)c)推測設(shè)備數(shù)量的總和;W為worker標(biāo)識推測設(shè)備數(shù)量;U為不同uid數(shù)值的總和。
3.3 算力信息
算力作為虛擬貨幣挖礦中一項核心指標(biāo),能夠衡量挖礦設(shè)備的性能以及帶來收益的多少,掌握各幣種挖礦算力情況以及全網(wǎng)算力情況對于挖礦規(guī)模指標(biāo)十分重要。
a)eth_submitHashrate指令推測。根據(jù)Getwork協(xié)議的eth_submitHashrate指令,可通過數(shù)據(jù)報文獲得礦工在計算任務(wù)時的算力信息,其中算力值采用十六進(jìn)制表示,一般情況以太坊的單個設(shè)備或者顯卡的算力約在MH/s單位范圍內(nèi),可忽略或舍棄偏差較大值。
b)mining.set_difficulty指令推測。根據(jù)Stratum協(xié)議的mining.set_difficulty或者mining.suggest_difficulty指令,可通過數(shù)據(jù)報文獲得礦工在計算任務(wù)時的困難值信息。部分礦池為了節(jié)省傳輸數(shù)據(jù)的空間,設(shè)定傳輸mining.set_difficulty或者mining.suggest_difficulty的困難值大小為2 Byte,即礦池下發(fā)給礦工最大的困難值為65 536。
在虛擬貨幣挖礦中,算力(Hashrate)是指每秒鐘礦工挖礦設(shè)備可以進(jìn)行哈希碰撞的次數(shù),單位為hash/s或H/s,算力和難度值呈正相關(guān)[5]。虛擬貨幣挖礦成功條件為當(dāng)前區(qū)塊頭BH的哈希值小于等于當(dāng)前區(qū)塊的目標(biāo)閾值T,可表示為
而目標(biāo)閾值T與困難值D呈反比,以比特幣為例,困難值D為創(chuàng)世區(qū)塊目標(biāo)閾值T1與當(dāng)前目標(biāo)閾值T的比值,創(chuàng)世區(qū)塊目標(biāo)閾值T1為整個區(qū)塊鏈網(wǎng)絡(luò)中第一個區(qū)塊的目標(biāo)閾值,由于該創(chuàng)世區(qū)塊的bit值為0x1d00ffff,T1近似為2(256-32),困難值D可表示為
由于比特幣采用SHA256哈希算法,只需要計算出滿足式(2)條件即可,所以哈希碰撞次數(shù)P可以表示為
當(dāng)前挖礦算力Hashrate為在計算出符合當(dāng)前目標(biāo)閾值T后,在單位時間t內(nèi)的所有哈希碰撞次數(shù)p,可根據(jù)式(4)和(5)表示為
可將式(6)化簡為式(7),其中factor為影響因子,根據(jù)不同的虛擬貨幣的挖礦算法,造成影響因子的不同,而式(5)中的影響因子為232 。不同虛擬貨幣挖礦算法及影響因子如表2所示。
若礦工IP的挖礦時間為連續(xù)發(fā)生,挖礦算力Hashrate的單位時間t可根據(jù)監(jiān)測的數(shù)據(jù)報文中目標(biāo)報文所攜帶mining.submit指令的最小時間Tsubmit_max、最大時間Tsubmit_min以及該指令次數(shù)submit來表示,其中時間單位為s,具體挖礦算力Hashrate可表示為
3.4 能耗信息
本文根據(jù)調(diào)研虛擬貨幣挖礦市場中常見的BTC和ETH礦機(jī)型號的算力情況和功耗情況,相關(guān)常見礦機(jī)的算力能耗情況如表3所示。
相關(guān)礦機(jī)的功耗與算力Hashrate的比值,一般稱為能效比,本文用K表示,舍棄K值偏大或偏小情況,推測常見BTC礦機(jī)的K值應(yīng)為0.01~0.03,單位為KWS/ TH,本文建議取值為0.02。推測常見ETH礦機(jī)的K值應(yīng)為0.2~0.9,單位為KWS/MH,本文建議取值為0.37。計算能耗的單位時間t,可根據(jù)監(jiān)測的數(shù)據(jù)報文中,目標(biāo)報文攜帶目標(biāo)挖礦指令的最小時間Tmin以及最大時間Tmax表示,具體挖礦能耗W可表示為
W=Hashrate×k×(Tmax-Tmin)(9)
4 相關(guān)實驗
本實驗一共使用六臺相同配置的服務(wù)器實現(xiàn)挖礦行為檢測識別模型,所使用的主機(jī)配置為Intel Core i7 CPU @ 3.60 GHz, 32 GB內(nèi)存,操作系統(tǒng)為CentOS 7,數(shù)據(jù)庫為MYSQL5.5.19,相關(guān)測試程序采用Java或Shell進(jìn)行編寫。
為驗證挖礦行為檢測模型,實驗測試集隨機(jī)選取了某時間段內(nèi)包含挖礦行為的50萬條網(wǎng)絡(luò)流量數(shù)據(jù),其中挖礦行為檢測模塊,根據(jù)規(guī)則內(nèi)容和關(guān)鍵詞匹配識別出挖礦行為數(shù)據(jù)約4.3萬條網(wǎng)絡(luò)流量數(shù)據(jù);指紋特征提取模塊,根據(jù)網(wǎng)絡(luò)流量的源IP、源端口、目的IP、目的端口、時間戳以及有效載荷,識別出以礦工IP、礦池IP及礦池端口為唯一值,挖礦指紋特征共約8 976條;閾值分析模塊,根據(jù)挖礦指紋特征的加權(quán)平均值進(jìn)行篩選,識別出疑似存在挖礦行為共2 752條,實際存在挖礦行為共3 000條,其檢測準(zhǔn)確性為91.73%。
為驗證相關(guān)挖礦指紋特征提取準(zhǔn)確性,實驗?zāi)M使用的相關(guān)測試挖礦軟件型號為bminer(v16.4.6-d77cc9b)。筆者根據(jù)模擬不同礦工IP,采用不同數(shù)量的挖礦設(shè)備進(jìn)行挖礦實驗,選取了eth.pool.zhizhu.top和us-eth.ss.btc.com兩個礦池。通過監(jiān)測其在一段時間內(nèi)的相關(guān)數(shù)據(jù)報文信息,利用相關(guān)程序統(tǒng)計分析出礦工IP的相關(guān)礦池域名信息、幣種信息、設(shè)備數(shù)量信息等多維度挖礦信息,其中統(tǒng)計分析的相關(guān)實驗結(jié)果與實際模擬情況完全吻合,結(jié)果如表4所示。
筆者采用三個不同挖礦設(shè)備(A、B、C)模擬ETH挖礦實驗,選取了us-eth.ss.btc.com礦池,記錄每10 min挖礦設(shè)備的算力情況連續(xù)10次操作并取平均值,根據(jù)每個挖礦設(shè)備的網(wǎng)絡(luò)流量數(shù)據(jù),利用相關(guān)程序統(tǒng)計分析每個挖礦設(shè)備的平均算力情況等信息,并統(tǒng)計每個挖礦設(shè)備客戶端顯示的平均算力情況,算力對比的實驗結(jié)果如圖3所示。A、B、C設(shè)備的算力情況準(zhǔn)確率為95.3%、94.5%和96.1%。
5 結(jié)束語
本文通過對Stratum、Getwork和其他挖礦通信協(xié)議特征進(jìn)行研究,提出了一種基于網(wǎng)絡(luò)流量的挖礦行為檢測識別模型,能夠高效準(zhǔn)確地實現(xiàn)對挖礦行為的自動檢測識別。同時,提出了多維度挖礦指紋特征提取方法,能夠提煉存儲多維度的挖礦指紋特征,包括挖礦指令、挖礦幣種、軟件型號、賬號名稱、算力、能耗等信息。本文方法對于區(qū)塊鏈虛擬貨幣挖礦檢測有一定的理論意義和應(yīng)用價值。另外,隨著新型挖礦模式的出現(xiàn),如加密挖礦、存儲型挖礦,它們的發(fā)展也同樣需引起重視。因此,新型挖礦模式的檢測識別技術(shù)將是研究的重點內(nèi)容。
參考文獻(xiàn):
[1]高彩霞.中國區(qū)塊鏈產(chǎn)業(yè)生態(tài)地圖報告[R].北京:清華大學(xué)社會治理與發(fā)展研究院,2021.(Gao Caixia. China’s blockchain industry ecological map report[R].Beijing:Institute of Social Governance and Development,Tsinghua University,2021.)
[2]章峰,史博軒,蔣文保.區(qū)塊鏈關(guān)鍵技術(shù)及應(yīng)用研究綜述[J].網(wǎng)絡(luò)與信息安全學(xué)報,2018,4(4):22-29.(Zhang Feng, Shi Boxuan, Jiang Wenbao. Overview of key technologies and applications of blockchain[J].Journal of Network and Information Security,2018,4(4):22-29.)
[3]樓堯.加密貨幣幣價決定與挖礦行為的探索性研究[D].南昌:江西財經(jīng)大學(xué),2019.(Lou Yao. An exploratory study on the determination of cryptocurrency price and mining behavior[D].Nanchang:Jiangxi University of Finance and Economics,2019.)
[4]張瓊斯.定性為非法金融活動“挖礦”成淘汰類產(chǎn)業(yè)[N].上海證券報,2021-09-25(2).(Zhang Qiongsi. Characterized as illegal financial activities. “Mining” is an obsolete industry[N].Shanghai Se-curities News,2021-09-25(2).)
[5]Sommer R, Paxson V. Outside the closed world: on using machine learning for network intrusion detection[C]//Proc of IEEE Symposium on Security and Privacy.Piscataway,NJ:IEEE Press,2010:305-316.
[6]Rauchberger J, Schrittwieser S, Dam T, et al. The other side of the coin: a framework for detecting and analyzing Web-based cryptocurrency mining campaigns[C]//Proc of the 13th International Confe-rence on Availability,Reliability and Security.New York:ACM Press,2018:1-10.
[7]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL].(2008)[2018-09-13].https://bitcoin.org/bitcoin.pdf.
[8]Koshy P, Koshy D, Mcdaniel P. An analysis of anonymity in bitcoin using P2P network traffic[C]//Proc of International Conference on Financial Cryptography and Data Security.2014:469-485.
[9]時希杰,張琪.規(guī)范比特幣挖礦行業(yè)發(fā)展之建議[J].中國能源,2021,43(6):27-30.(Shi Xijie, Zhang Qi. Suggestions on regulating the development of bitcoin mining industry[J].China Energy,2021,43(6):27-30.)
[10]Recabarren R, Carbunar B. Hardening stratum, the bitcoin pool mi-ning protocol[J].Proceedings on Privacy Enhancing Technologies,2017(3):57-74.
[11]夏佳志,張宇鴻,葉慧.SuPoolVisor:礦池監(jiān)管可視分析系統(tǒng)[J].Frontiers of Information Technology amp; Electronic Engineering,2020,21(4):507-524.(Xia Jiazhi, Zhang Yuhong, Ye Hui. SuPoolVisor: a visual analysis system for mining pool supervision[J].Frontiers of Information Technology amp; Electronic Engineering,2020,21(4):507-524.)
[12]邸劍,吝偉華.區(qū)塊鏈中礦池選擇策略的研究與分析[J].計算機(jī)應(yīng)用研究,2020,37(6):1804-1807.(Di Jian, Lin Weihua. Research and analysis of mining pool selection strategy in blockchain[J].Application Research of Computers,2020,37(6):1804-1807.)
[13]Jie Hao. Analysis of whether cryptocurrency like bitcoin is real money from the perspective of state theory of money[C]//Advances in Social Science,Education and Humanities Research.2018:1725-1729.
[14]Shi Boxuan, Zhang Feng, Chalermpol C, et al. A construction me-thod for alliance-based network trust anchor[C]//Proc of IEEE International Conference on Information Technology Networking Electronic and Automation Control.2019:1211-1214.
[15]Conti M, Sandeep K E, Lal C, et al. A survey on security and privacy issues of bitcoin[J].IEEE Communications Surveys amp; Tutorials,2018,20(4):3416-3452.
[16]Huang Wangheng. Review on virtual currency regulation of various countries and its enlightenment to China[C]//Proc of the 7th International Conference on Social Science, Education and Humanities Research.[S.l.]:Francis Academic Press,2018:348-354.