?

區塊鏈與挖礦技術研究

2023-06-20 05:23邢志鵬黃晶晶
關鍵詞:挖礦礦工合約

邢志鵬,李 昕,黃晶晶

區塊鏈與挖礦技術研究

邢志鵬1,李 昕1,黃晶晶2

(1.遼寧工業大學 電子與信息工程學院,遼寧 錦州 121001;2.遼寧工業大學 實業總公司,遼寧 錦州 121001)

總結了當前區塊鏈技術的研究方向與研究成果,之后從區塊鏈出發,給出了當前區塊鏈系統的結構、使用的常見共識算法、區塊鏈的未來發展前景,并介紹了區塊鏈、虛擬幣、挖礦之間的關系,闡述了虛擬幣市場的現狀和未來發展趨勢,通用的挖礦協議以及當前挖礦泛濫所產生的危害。

區塊鏈;挖礦;虛擬幣;共識算法;挖礦木馬

區塊鏈技術是一種去中心化的、數據難以被篡改的技術,與這項技術一起誕生的虛擬幣市場的主要貨幣之一—比特幣,如今的市值已經達到了驚人的上萬億美元,每日的交易量更是接近300億美元,1枚比特幣的價格從10年前不到10美元,到如今已經價值為5~6萬美元。

一方面,由于虛擬幣在短時間內呈現出的暴利,導致近些年來掀起了多次“挖礦”的熱潮,使用不法手段的個體黑客、APT組織尤其熱衷于此,因而也導致各種挖礦木馬的誕生,與通過“正當”途徑挖礦的人群混雜在一起,共同組成了龐大的挖礦集體。另一方面,區塊鏈技術又在其他多個領域相繼發揮了多方面的正面作用。

1 研究現狀

當前對于區塊鏈的研究正處于發展階段,區塊鏈的共識機制已經基本完善,目前國內外主要集中在區塊鏈的擴容、智能合約的設計、區塊鏈的安全問題、區塊鏈與其他領域的結合這幾點。文獻[1-5]中對于區塊鏈共識機制與架構做出了完整的總結,對當前區塊鏈區塊的結構、區塊鏈的架構以及區塊鏈的共識機制做出梳理;文獻[6-9]中,對當前區塊鏈的擴容做出了研究,將社區發現等算法融入到區塊鏈中;文獻[10-12]對區塊鏈安全隱私問題做出了總結,并提出了針對區塊鏈的安全監測模型;文獻[13-14]中探討了區塊鏈的可修改性,并在當前區塊鏈結構與機制下加入了單陷門函數,成功實現了對區塊鏈內容的修改,但并未在較大的規模與吞吐量中做出驗證,仍有較大的改進空間;文獻[15]探討了當前區塊鏈的焦點問題——智能合約的設計,并提出了自己的設計方案;文獻[16-17]主要集中在語義區塊鏈方面;文獻[18-22]中,對區塊鏈與其他領域,如工業互聯網、慈善捐贈、醫療等結合,設計出一套相關領域的系統,但仍然缺乏實際的完整應用過程驗證,且并未提出對于挖掘區塊成本問題的解決方案;文獻[23]中對于當前惡意挖礦中的網頁挖礦行為進行了研究,并設計了惡意挖礦的檢測模型,將機器學習融入到區塊鏈安全當中。

2 區塊鏈

區塊鏈使用一種經過特定的加密方式(主要是SHA256)的鏈式結構來驗證和存儲信息,并在分布式網絡中通過共識機制來生成和更新其中的數據。本質上是一個去中心化的共享數據庫,在區塊鏈組成網絡中,每個節點都參與區塊的產生,每一個區塊的產生都需要經過嚴格的驗證,每個區塊的內容都難以篡改,因此,區塊鏈所存儲的信息是可信的,這也為未來社會發展中會出現的信任危機提供了一個良好的解決方案。

2.1 區塊鏈結構

當前所有的區塊鏈系統一般都可以劃分為以下幾個部分:數據層、網絡層、共識層、合約層以及應用層,如圖1所示。

(1)數據層:主要包含數據區塊結構,所使用的加密技術、時間戳等。

(2)網絡層:這一層規定了區塊鏈的分布式組網的具體機制,數據傳輸通信的機制和驗證機制。

(3)共識層:區塊鏈系統的核心層,封裝有區塊鏈網絡節點的共識算法。

(4)激勵層:主要包含發行貨幣機制和區塊鏈的獎勵機制、分配機制等。

(5)合約層:主要有各類腳本和智能合約,為區塊鏈的可編程性質提供了技術支撐。

(6)應用層:這一層是區塊鏈在各類場景中的應用。

2.2 區塊鏈共識協議

區塊鏈共識協議制定了一個區塊鏈系統的區塊生成與更新的規則,每一個在區塊鏈網絡中的節點都必須遵守這個規則,嚴格保證區塊的產生是合法的,內容是經過驗證的,是能夠被每個節點所接受的,目前在虛擬幣領域常用的共識機制是工作量證明機制(POW),也有部分虛擬幣系統使用權益證明(POS),其余共識機制雖然也存在虛擬幣系統使用,但并不是當前區塊鏈系統的主流共識機制。

(1)工作量證明

工作量證明機制,也即POW機制,這是在目前的區塊鏈算法中最為常見、應用最廣泛的共識機制。工作量證明中最常用的技術是SHA函數。也即輸入任意一個值,會產生一個對應的哈希函數結果(),當變動一個bit,其結果()都將產生巨大變化,幾乎無法從()回推。在POW中,每一個參與區塊鏈網絡的“礦工”,都會收到系統指定的一個計算難度,所有“礦工”的任務就是計算出一個以0為開頭的符合條件的哈希值,同時為了保證每個“礦工”都能夠有產生區塊的可能性,系統會動態的調整這個難度值,以保證區塊的產生速度,以及相關礦工的算力的巨大差異而導致的收益極度不均衡問題。

為了保證區塊鏈數據的安全性,這種算法也產生了很多問題,一方面,對算力的巨大需求會浪費電力和硬件資源;另一方面,這種共識算法的平均區塊輸出時間長達10 min,系統的吞吐量極低,因此無法應用于低延遲和高效率的領域。

(2)權益證明

權益證機制,即POS(Proof-of-stake)機制,這是在區塊鏈發展過程中,由于POW造成的算力和電力資源浪費問題而提出,在POW的基礎上引入“幣齡”的機制,每一個想要參與使用POS機制的區塊鏈網絡的“礦工”,都必須交付一定量級的押金,才能夠有資格參與這個區塊鏈網絡的區塊產生與驗證。

同時,驗證區塊的工作由原來的每一個參與者調整為隨機節點,被選擇的節點會暫時獲得產生區塊的權利,其余的節點則會驗證產生區塊內容的合法性,一旦某些參與者不能夠再承擔產生區塊的權利,那么就會被調整為驗證人員,在原有的驗證人員中再隨機選出一個新的人員晉升為區塊的產生人員。

以太坊(一個開源的且有智能合約的公有區塊鏈平臺)在2022年的10月份開始,會逐步調整共識機制,由原來的POW調整至POS,以解決未來以太坊在發展過程中的區塊產生速率問題、電力和算力浪費問題、智能合約的發展問題。

(3)實用拜占庭容錯

實用拜占庭容錯算法,簡稱PBFT(practical byzantine fault tolerance)算法。PBFT算法的提出要遠早于區塊鏈的產生,主要是為了解決在分布式的系統中的一致性問題,提高整個系統的容錯性。在該算法中,有3個節點,最多允許其中的個節點不誠實。同時,對每一個節點,輸入一個相同的信息,都會得到同樣的結果。

PBFT算法主要有3個階段:前期準備、準備、提交確認。第一階段,客戶端發送請求給主節點。第二階段,主節點廣播客戶端發送的請求給其他節點,每一個收到信息的節點都會給予相同的回應。第三階段,客戶端收到+1個節點的相同的消息后,通過驗證。

在使用PBFT算法的系統中,優點很明顯,少量節點可以快速達成共識,不需要耗費大量的算力和電力資源。但是缺點也很明顯,頻繁的網絡通信使得整個網絡的規模受到限制,沒加入一個節點,整個網絡的節點通信產生的開銷也會呈指數級增長,相對的一次驗證的響應時間也會變長,所以這種共識機制并不適合規模較大的公有區塊鏈網絡,只適合小規模的區塊鏈網絡。

2.3 智能合約

智能合約是典型的數字協議,使用算法和程序來編譯合同條款,并部署在區塊鏈上,能夠根據某些規則和模式自動執行。區塊鏈實現了去中心化的存儲,智能合約依靠它實現了去中心化的計算。

起草和經過驗證的智能合約由多方簽署,然后通過P2P網絡部署在區塊鏈上,P2P網絡實時監控區塊鏈的狀態,當檢測到智能合約中預先封裝的一些狀態和觸發規則時,便激活合約。智能合約的工作原理如圖2所示。當達到智能合約的觸發條件,智能合約便會做出響應,一般來講,合約的執行結果往往會導致區塊鏈中的某些賬戶和區塊的狀態發生改變,比如,賬戶資金的增長和減少,區塊上新增某筆交易。

目前智能合約的發展并不完善,還存在很多問題和漏洞,主要體現在以下幾個方面:函數重入、整數溢出、時間戳依賴和調用棧深度溢出。因此,有必要對代碼進行測試和審計。

圖2 智能合約運行原理

在以太坊白皮書中,智能合約應用分為3類:金融場景、半金融場景和非金融場景,如圖3所示,其中列出了幾個主要應用場景。包含場景非常廣泛,涵蓋醫療、能源、教育、物聯網等多個領域。

3 挖礦

在計算哈希難題的過程中,所有節點都在比拼自己掌握的算力,只有第一個解決難題的節點才能打包一個新的區塊并將其添加到區塊鏈上,并獲得系統給與的一定量的獎勵(包括區塊的產生獎勵和后續其他節點使用這個區塊轉賬的“手續費”)。但是某些礦工本身的算力是有限的,單憑自己并沒有辦法和一些手握大算力的礦工競爭,礦池便應運而生,礦池的主要作用便是將多個礦工的算力集合到一起,作為一個大的整體去參與挖礦,一旦獲得挖礦的獎勵,便根據每一個礦工的算力和電力貢獻來分配拿到的獎勵。因此,很多個體挖礦用戶往往會選擇礦池加入,來穩定獲取收益,當然礦池服務也不會是免費的,第三方礦池服務商會在分配的獎勵中抽成作為服務費用。

3.1 挖礦協議

礦機和礦池之間常見的通信協議包括stratum tcp、getwork。礦機向礦池發起任務訂閱、身份認證、提交結果等請求,礦池向礦機下發難度調整、反饋提交結果、反饋任務分配結果等。每個礦池都會有自定義部分,但總體上還是采用了這2種協議。

Stratum的工作流程大致如圖4所示,可以簡單描述為5步。

圖4 stratum tcp工作流程

(1)任務訂閱。礦工首先用mining.subscribe方法連接到指定礦池,用于在礦池登記并訂閱挖礦任務。礦池用mining.notify返回訂閱號、難度值、難度值補充字段。

(2)礦工登錄。礦工使用mining.authorize方法,通過賬戶和密碼作為驗證,登錄礦池(密碼可以為空)。

(3)任務分配。由礦池使用mining.notify方法發送給礦工有關本次任務的相關信息。當礦工訂閱并登錄后,礦池不斷使用mining.notify方法返回任務狀態。在mining.notify方法中包含任務狀態的標志位:如果為true,礦工放棄正在執行的任務,立即開始在新的區塊上開啟新的任務;如果為false,則等待當前任務完成后再開始新任務。

(4)提交結果。當礦工找到滿足難度的哈希計算結果時,使用mining.submit方法將計算結果提交給礦池。如果礦池返回true,說明結果符合預期,提交成功,如果失敗,則會有具體的錯誤原因返回。

(5)難度調整。礦池用mining.set_difficulty方法,將難度調整的指令下發到本礦池中的所有礦工,告知當前應該使用的難度值(nonce字段),礦工使用新的難度作為計算的依據之一,開始新一輪的計算。

GetWork是早期挖礦協議,那時ASIC礦機尚未大規模部署,當ASIC時代來臨后由于其效率低下早已淘汰。但是,目前礦機內部的通信方式與GetWork依然類似。

(1)發起RPC請求

{"method":"getwork","params":[],"id":1}

(2)RPC響應

{"id":"1","result":{"hash1":"","midstate":"","target":""}, "error": null}

其中,target為目標難度,hash1為固定值,可以忽略掉。data段大小為128字節,塊頭大小為80字節,因為采用了SHA256算法,該算法會將輸入數據分割為512 bits來處理,若輸入長度不是512的整數倍,則會補零,512 bits是64字節,那么塊頭為80字節,需要補齊為1 024 bits(512的倍數)。SHA256補零規則:首先填1 bit的1,再填入個零,最后8字節為數據總長度。

3.2 挖礦的危害

一方面,“挖礦”活動耗費大量電力,能耗和碳排放強度高,對我國碳中和、碳峰值目標的實現產生較大影響,加大了部分地區能源保障的供應壓力,加劇了相關電子信息產品的供需矛盾;另一方面,虛擬幣投機交易擾亂了中國正常的金融秩序,催生了違法犯罪活動,大量的挖礦木馬、蠕蟲在網絡上傳播,造成的影響異常惡劣。

虛擬幣的價格是極不穩定的,以比特幣為例,比特幣的供應每4年就會減半,每4年供求關系的平衡就會被打破,供應變得緊缺,而需求仍然持續增加,因而比特幣的價格會迎來一次次的暴漲。過去的2次減半,都導致了比特幣暴漲。每4年就相當于1個周期,如果5個周期以后,也即20年以后,比特幣就可以漲到1.6億元人民幣。如果是線性增長,從4年前,也即2018年開始算起,比特幣的價格約為4萬元人民幣,假設每個周期僅僅需要漲到5.25倍。4年后,比特幣價格會達到21萬元;8年后,比特幣價格110萬元;12年后比特幣價格579萬元;16年后,比特幣價格3 039萬元;20年后,比特幣價格1.6億元。實際上在2022年初期時,比特幣的價格是遠超過這個計算的,一度達到了45 000美元(約合人民幣250 000元),但在2021年年底時,便已經達到了63 000美元(約合人民幣420 000元)。

虛擬幣價格雖然極其不穩定,但是長期來看已經是屬于體量逐年暴漲的行業,大量黑客也在2017年前后開始投放挖礦木馬、蠕蟲,利用各種漏洞將挖礦軟件植入受害者終端。經過多年的更新換代,當前網絡上常見的挖礦木馬如下。

(1)DTSleater(永恒之藍下載器):利用“驅動人生”軟件的更新鏈接和永恒之藍漏洞進行大范圍傳播,后續又產生了多個變種,新增了竊密、內網掃描、僵尸網絡等各種惡意功能。

(2)WannaMine病毒:主要針對政府、企業、學校、醫院等單位,掃描445端口的“永恒之藍”漏洞,進入主機后會在內網做橫向傳播。

(3)Sysrv-hello病毒:該病毒與以上2個病毒只針對Windows平臺不同,也涵蓋Linux平臺,自帶漏洞利用與掃描功能,針對政府、企業、學校等單位,一旦進入受害者主機,便會建立守護進程,不間斷地使用挖礦程序。

(4)H2Miner病毒:起初是針對Linux平臺的挖礦病毒,后續又涵蓋了Windows平臺,主要手段是通過僵尸網絡與遠程代碼執行進入目標主機。

4 結束語

對現有的主流虛擬幣的核心技術—區塊鏈技術的運行原理進行了總結,并說明了當前虛擬幣的過度發展對于國家和社會穩定的危害,對未來區塊鏈技術的發展做出了說明,區塊鏈技術是一項具有革新意義的技術,在未來一定會被更廣泛地應用到各領域之中,但是對區塊鏈技術的錯誤使用,會嚴重危害經濟發展與社會穩定。

[1]Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash SystemBitcoin: A Peer-to-Peer Electronic Cash System [EB/OL]. [2008-10-31]. https://bitcoin.org/bitcoin.pdf.

[2] 夏清, 竇文生, 郭凱文, 等. 區塊鏈共識協議綜述[J]. 軟件學報, 2021, 32(2): 277-299.

[3] 邵奇峰, 金澈清, 張召, 等. 區塊鏈技術: 架構及進展[J]. 計算機學報, 2018, 41(5): 969-988.

[4] 張亮, 劉百祥, 張如意, 等. 區塊鏈技術綜述[J]. 計算機工程, 2019, 45(5): 1-12.

[5] 曹儐, 林亮, 李云, 等. 區塊鏈研究綜述[J]. 重慶郵電大學學報: 自然科學版, 2020, 32(1): 1-14.

[6] Zhang Can, Xu Chang, Kashif Sharif, et al. Privacy-preserving contact tracing in 5G-integrated and blockchain-based medical applications[J]. Computer Standards & Interfaces, 2021, 77.

[7] 姜承揚, 龐俊, 賈大宇, 等. 結合社區發現和局部恢復碼的區塊鏈擴容研究[J]. 計算機工程與應用, 2023, 59(5): 297-304

[8] 王慧, 王勵成, 柏雪, 等. 區塊鏈隱私保護和擴容關鍵技術研究[J]. 西安電子科技大學學報, 2020, 47(5): 28-39.

[9] 劉晶, 朱炳旭, 梁佳杭, 等. 基于主側鏈合作的區塊鏈訪問控制模型策略[J/OL]. 計算機工程: 1-9. [2021-12-06].

[10] 葉聰聰, 李國強, 蔡鴻明, 等. 區塊鏈的安全檢測模型[J]. 軟件學報, 2018, 29(5): 1348-1359.

[11] 孫國梓, 李芝, 肖榮宇, 等. 區塊鏈交易安全問題研究[J]. 南京郵電大學學報: 自然科學版, 2021(2): 41-53.

[12] 孫國梓, 王紀濤, 谷宇. 區塊鏈技術安全威脅分析[J]. 南京郵電大學學報: 自然科學版, 2019, 39(5): 48-62.

[13] 任艷麗, 徐丹婷, 張新鵬, 等. 可修改的區塊鏈方案[J]. 軟件學報, 2020, 31(12): 3909-3922.

[14] 任艷麗, 徐丹婷, 張新鵬, 等. 基于門限環簽名的可刪除區塊鏈[J]. 通信學報, 2019, 40(4): 71-82.

[15] 張富利, 侯培宇, 李杉杉, 等. 一種智能合約微服務化框架[J]. 軟件學報, 2021, 32(11): 3423-3439.

[16] 沈海波, 陳強, 黃海. 語義區塊鏈研究綜述[J]. 計算機應用研究, 2021, 38(7): 1937-1942.

[17] 韓寧, 李希萌, 張倩穎, 等. 以太坊中間語言的可執行語義[J]. 軟件學報, 2021, 32(6): 1717-1732.

[18] 于金剛, 趙培培, 仲啟強, 等. 基于區塊鏈的工業互聯網安全平臺[J]. 計算機系統應用, 2021, 30(11): 91-98.

[19] 于金剛, 王海汀, 趙培培, 等. 基于區塊鏈的新型存儲模型慈善系統[J]. 計算機系統應用, 2021, 30(11): 112-117.

[20] 陳先來, 趙曉宇, 曾工棉, 等. 基于區塊鏈的患者在線交流模型[J]. 計算機科學, 2021, 48(11): 28-35.

[21] 張辰, 馬素剛, 李宥謀, 等. 基于區塊鏈的醫療系統[J]. 現代電子技術, 2021, 44(4): 133-137.

[22] Rosa Bruno M G, Anastasova Salzitsa, Yang Guang Z. NFC-Powered Implantable Device for On-Body Parameters Monitoring With Secure Data Exchange Link to a Medical Blockchain Type of Network[J]. IEEE transactions on cybernetics, 2021, (99): 1-13.

[23] 黃子依, 秦玉海. 基于多特征識別的惡意挖礦網頁檢測及其取證研究[J]. 信息網絡安全, 2021, 21(7): 87-94.

Research on Blockchain and Mining Technology

XING Zhi-peng1, LI Xin1, HUANG Jing-jing2

(1. Electronics and Information Engineering College, Liaoning University of Technology, Jinzhou 121001, China; 2. Liaoning University of Technology Industrial Corporation, Jinzhou 121001, China)

The article summarizes the current research direction and research results of blockchain technology, after that starting from blockchain, it explains the structure of current blockchain system, common consensus algorithms used, the future development prospect of blockchain, and introduces the relationship between blockchain, virtual coin and mining, elaborates the current situation and future development trend of virtual coin market, common mining protocol and the harm caused by the current mining proliferation.

blockchain; mining; virtual coins; consensus algorithms; mining trojans

10.15916/j.issn1674-3261.2023.03.006

TP311

A

1674-3261(2023)03-0169-05

2022-10-24

邢志鵬(1998-),男,山東泰安人,碩士生。

李昕(1966-),男(滿族),遼寧錦州人,教授,博士。

責任編輯:孫 林

猜你喜歡
挖礦礦工合約
合力攻堅 全面治理高?!巴诘V”
多措并舉 全流程整治“挖礦”
金牌挖礦工
挖礦木馬的攻擊手段及防御策略研究
老礦工的家國情懷
礦工老李
誓詞
合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合