徐衛克
(中國社會科學院大學 北京市 102488)
在互聯網時代,區塊鏈成為了數字交易應用新模式,能夠按照時間順序將數據區塊連接起來,得到鏈式數據結構,并采用密碼學方法保證形成的賬本無法被篡改。但在實際應用的過程中,區塊鏈將出現分叉問題,給惡意攻擊行為的產生留下機會。因此,還應加強預防區塊鏈分叉的節點檢測算法研究,以便使區塊鏈技術得到較好應用。
作為自治節點的網絡,區塊鏈技術又被稱之為分布式事務存儲賬本。從結構上來看,由上至下可以劃分為數據層、網絡層、共識層、激勵層、合約層與應用層。其中,數據層用于對底層區塊進行分裝,需要采用數據加密等技術。網絡層提供節點數據驗證機制,采用P2P技術等實現節點交互。在各節點未能相互信任的情況下,由共識層提供工作量和權益等證明,促使節點達到共識。借助分配、發行等機制,激勵層能夠對區塊鏈進行維護。各類腳本和算法在合約層封裝,是區塊鏈系統運作的基礎。利用應用層,可以為用戶提供相應服務。從本質上來講,區塊鏈是為去中心化提供支持的技術,能夠利用分布在世界各地的節點完成數字貨幣交易賬本記錄,想要控制區塊鏈系統,還要掌握超過半數的工作節點群[1]。在區塊鏈中包含多個首位相連的區塊,能夠分別用于對一段時間的交易數據進行記錄。而各個節點將利用網絡在本地實現區塊鏈數據存儲,利用共識機制保證各節點數據能夠保持高度一致。因此在信息不對稱的環境下,區塊鏈能夠建立數字貨幣交易信任生態體系,促使任意節點在無法相互信任的情況下,能夠依靠共識基礎實現信息安全交互,而無需擔心數據被篡改,促使數字貨幣交易得以借助區塊鏈系統順利開展[2]。盡管區塊鏈技術擁有諸多優勢,但在數據安全方面依然存在一定缺陷。區塊鏈分叉問題的產生,就會導致系統安全受到威脅,從而影響數字貨幣交易的正常進行。因此想要進一步推動區塊鏈技術的發展,還要提出科學的安全機制,促使區塊鏈分叉等問題得到解決。
區塊鏈技術采用的是分布式計算技術,造成其容易產生分叉問題。具體來講,就是在兩個或兩個以上節點同時生成新區塊的情況下,無任何區塊能夠被全部節點接受,就會出現分叉現象。系統正常工作時出現節點分叉,屬于自然分叉現象。但是如果因為受認為干預出現分叉,將導致系統數據面臨安全威脅。實際伴隨著科學技術的發展,各種虛擬數字貨幣需要不斷升級。但不同與單純軟件升級,區塊鏈系統升級需要對各個參與者進行協調,在無法被全部參與者接受的情況下就會出現分叉。該種分叉又可以按照系統新規則兼容情況劃分為軟分叉和硬分叉兩類,前者指的是無論工作節點共識規則是否更新,新舊規則下的區塊都能被區塊鏈接受,后者指的是未更新共識規則的節點無法接受新規則區塊的情況。軟分叉能夠在95%區塊采用新規則時迫使舊規則節點升級,不會出現較大問題。但是硬分叉一旦產生,由于新規則不被多數節點認同,容易導致區塊鏈系統發生嚴重分裂,形成平行的兩條區塊鏈。而兩條區塊鏈擁有相同地址、交易格式和私鑰算法,可能造成數字貨幣交易在一條鏈上合法后再另一條鏈上重新廣播和得到認可,最終導致同筆貨幣發生重復交易[3]。因此在硬分叉期間,不法分子可以通過重放攻擊盜取資產。與此同時,惡意用戶也可以通過開展低價值粉塵交易導致工作節點被大量占用,造成區塊堵塞,正常交易無法及時處理。為完成數字貨幣交易,用戶可能選擇繳納高交易費獲得打包機會。
針對分叉問題,區塊鏈主要通過共識機制解決。但在區塊鏈挖礦速度不斷加快的過程中,末端區塊容易成為孤塊。一旦區塊產生速率超出共識信息速率,將導致分叉無法收斂,共識機制無法發揮作用。應用節點檢測算法對區塊鏈分叉進行預防,需要考慮到因升級產生的短時間分叉現象是合法的,但為保證交易的正常開展,還要預防長時間分叉的產生。以往在解決分叉問題時,多采用最長鏈策略,能夠在分叉區塊鏈產生6個區塊后判定為結構穩定,不符合系統共識,需要淘汰其他支鏈。但盡管分叉問題得到了解決,后續節點依然允許挖礦,會持續消耗系統資源,導致區塊鏈末端區塊長時間暴露,并因此導致區塊承擔被攻擊的風險。結合這些問題,需要在確保節點按照原本共識機制挖礦的同時,能夠在交易開展過程重對節點進行監測,一旦發現多個節點挖礦成功將對節點檢測算法進行調用,完成合法區塊節點篩選,最終得到能夠作為末端區塊的節點與主鏈連接。實際在區塊鏈重,各個工作節點需要發揮挖礦功能,就是對硬件性能好的設備提供共識算法,在完成競爭后獲得記賬權,使網絡一致性得到維護[4]。而各個節點都要參與網絡通信,但如果預先判定節點不具備路由功能,可以避免節點連接網絡,達到篩選節點的目標。采取該種算法,可以維持系統原本工作量,在分叉產生前完成節點篩選,從而有效避免分叉問題的發生,起到改進區塊鏈共識機制的作用。
在區塊鏈上不斷產生分叉的情況下,各個區塊鏈支鏈上將不斷有新的區塊出現。只有使各區塊保持一致,才不會出現短分支被舍棄的情況。而區塊鏈高度增加,將導致分支查找到新節點的概率急速降低,最終造成一個分支最高,繼而對其他分支進行取代。按照算法思路對區塊鏈分叉進行檢測,需要對節點進行監測,確定節點挖礦結果。在檢測發現區塊數目為1的情況下,可以判定區塊合法,在獲得記賬權的同時,能夠對挖礦酬金進行賺取。如果檢測發現節點接收到的區塊數超出1,需要調用檢測算法,對數組接收的區塊狀態信息進行定義。具體來講,可以利用節點挖礦產生區塊時間t進行定義。完成時間排序后,可以將最小t值對應的區塊當成是唯一區塊,判定其獲得記賬權,并且能夠完成酬金賺取。在算法結束后,需要將篩選得到的合法區塊連接到主鏈上,然后結束挖礦。實際在區塊鏈中,惡意節點行為和正常節點行為存在目的差異,惡意節點習慣于利用分叉實現資產轉移和帶來雙重花費,將導致數據無法保持一致。因此在惡意節點工作的過程中,將出現傳播虛假信息或篡改交易的行為。采用GHOST協議,能夠對節點挖礦行為進行抑制。采用節點檢測算法分析網絡傳輸異步性,能夠確定節點攻擊行為,根據分叉情況采取維護措施。完成成功節點檢測,并使每次挖礦僅產生一個合法區塊,能夠避免末端區塊分叉,從而使區塊數據的一致性得到保證。
在算法應用過程中,還應認識到節點挖礦為隨機過程,一旦同時查找多個區塊就容易產生分叉。為確定算法應用能否達到預期的目標,還要加強算法與PoW共識機制的應用比較。在實際分析過程中,還應假設區塊鏈系統處于理想狀態,在開展數字貨幣交易的過程中,挖掘成功的節點僅存在一個。而在新節點獲得記賬權的情況下,區塊鏈的高度將被加深。在實驗過程中,需要生成1200個符合區塊鏈格式的交易,其中合法交易600個,惡意占用資源的交易300個,惡意獲取高昂交易費的300個。在完成矩陣混淆后,對算法應用效果展開分析可以發現,惡意節點行為檢測成功率能夠達到90%以上,在成功檢測后分叉預防成功率能夠達到100%。但是采用傳統PoW共識機制,分叉預防成功率不足80%,使得區塊鏈系統仍然有較大的幾率遭受攻擊。分析原因可以發現,一旦挖礦結果不止一個,同時均為合法區塊,如果依然延續PoW共識機制,系統將出現缺少監管的問題,多個區塊將同時連接主鏈,造成分叉產生。在分支鏈加深的過程中,只有分支鏈深度不同,系統才能做出選擇策略,期間不僅系統資源遭到了消耗,也容易導致節點攻擊行為的發生。而采用節點檢測算法,可以在發現區塊不唯一時進行算法調用,實現節點篩選,確保只有唯一的區塊能夠連接到主鏈上。由此可見,相較于原本的共識機制,應用算法能夠使區塊鏈分叉的問題得到預防,保證系統始終維持正常運轉狀態。而算法應用之所以無法完成全部惡意節點檢測,與區塊鏈分叉本身存在的復雜性有一定關系。在系統工作量不斷增加的過程中,信息量也不斷加大,使得算法難以成功判斷所有節點目的。但從算法應用整體測試結果來看,相較于以往的共識機制,節點檢測能夠對末端區塊進行保護,無需在子孫區塊已經形成后才能完成交易信息確認,所以可以縮短區塊確認時間,使數據一致性得到保障,因此能夠成功實現區塊鏈分叉預防,使分叉發生幾率得到有效降低。
從加強區塊鏈安全管理角度來看,采用節點檢測算法能夠起到明顯作用。在區塊鏈系統中,末端區塊將長時間處于暴露狀態,通過節點檢測可以使經過篩選的唯一區塊與區塊鏈的末端連接,促使區塊鏈的安全性得到增強。做到預防分叉產生,意味著被判定為存在惡意行為的節點在分叉區塊上無法繼續挖礦,從而避免分叉延長分支,達到節約系統存儲空間的目標。實際在比特幣交易系統中,按照現行管理方法6個區塊的穩定結構形成后,交易會被看成是不會出現篡改問題。受這一因素的影響,每10min將有一個區塊產生,導致交易需要60min才能被確認。而每個分叉系統中將包好1-59個分區塊,確認后將看成是淘汰的孤塊。各區塊上限為2MB,用于存儲孤塊將占用2-118MB空間資源,導致系統資源被浪費。應用節點檢測算法后,可以直接對交易進行模擬,然后進行挖礦檢測,發現結果不一致將利用算法篩選節點,確保只有一個節點能夠對記賬權進行獲取,以免出現分叉問題。采取該種措施,系統不會對分支鏈進行淘汰,因此也無需為孤塊的存儲分配存儲資源,因此能夠在保證區塊鏈安全性能的同時,使資源浪費問題得到解決。伴隨著區塊鏈技術的發展,數字貨幣交易不斷擴大,越來越多的節點參與到了挖礦中,導致系統能源消耗日漸增多。而在區塊鏈交易開展的過程中,將產生大量的電能損耗,縮短交易確認時間能夠起到減少電能損耗的目標,促使數字貨幣碳交易排放量得到減少,從而為數字貨幣的發展提供支撐。因此從總體上來看,應用節點檢測算法實現區塊鏈分叉的預防,不僅可以保證數字貨幣交易的安全性,還應帶來一定的經濟效益和環境效益,符合當前社會的發展趨勢。
綜上所述,區塊鏈技術的發展盡管為數字貨幣交易的開展提供了技術支撐,但由于技術發展時間尚短,仍然存在明顯技術缺陷,容易因硬分叉產生導致數字貨幣正常交易受到不良影響。實際應用節點檢測算法,可以結合分叉產生原因完成惡意節點攻擊行為檢測和制約,從而使區塊鏈的安全性得到保證,繼而為數字貨幣的發展提供保障。