999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

區塊鏈關鍵技術及存在問題研究綜述

2022-02-24 12:32:10劉雙印雷墨鹥兮孫傳恒徐龍琴馮大春鄭建華李景彬
計算機工程與應用 2022年3期
關鍵詞:系統

劉雙印,雷墨鹥兮,王 璐,孫傳恒,徐龍琴,曹 亮,馮大春,鄭建華,李景彬

1.廣州市農產品質量安全溯源信息技術重點實驗室,廣州 510225

2.石河子大學 機械電氣工程學院,新疆 石河子 832000

3.仲愷農業工程學院 智慧農業創新研究院,廣州 510225

4.廣東省高校智慧農業工程技術研究中心,廣州 510225

5.國家農業信息化工程技術研究中心,北京 100097

6.廣東省農產品安全大數據工程技術研究中心,廣州 510225

在當今信息大爆炸的時代,時刻產生海量數據難以安全可靠傳輸,數據安全已嚴重影響人們的生活,如何有效保證系統數據安全成了如今迫在眉睫的問題之一[1]。每個人都是數據的生產者和使用者,但企業往往為保護隱私導致數據共享性差,甚至出現數據孤島等問題。雖然數據共享技術不僅可解決信息的封閉性和單一性問題,也有效實現數據增值,但同時存在上述數據安全和隱私泄漏的缺陷。2018年Facebook遭黑客攻擊,8 000余萬條用戶信息被泄漏;2019年多個公司大量用戶數據被盜,黑客私下交易8.7億條個人數據;2020年萬豪國際集團520萬客人信息被泄漏等,這些被泄漏的身份信息常被不法分子用于非法活動。因此,研究新一代技術防止黑客攻擊,確保數據安全具有重要的現實意義。

區塊鏈是一種在密碼學、統計學、經濟學和計算機科學等多學科交叉基礎上發展起來的新技術,以其去中分布式存儲、匿名性高、數據一致性等優點被廣泛應用于信息安全、金融、證券、數字確權、溯源等領域,實現數據的分布式存儲和有效利用。區塊鏈與隱私保護的結合可以降低第三方監管不嚴的風險,在一定程度上保證數據安全有效,具有更廣闊的應用價值。區塊鏈系統的安全性對系統本身意義重大,為了避免惡意節點的攻擊,使交易有序進行,區塊鏈工作者改進共識機制、優化智能合約,對網絡監管進行加強,讓區塊鏈能應用到各個領域。但由于區塊鏈技術還處在發展階段,其在核心技術領域并不完善,導致區塊鏈系統本身存在一些缺陷,甚至在改善的過程中產生了一些新的技術漏洞,因此本文在分析區塊鏈關鍵技術的基礎上,主要針對區塊鏈現存的一些問題進行分析總結,概括了目前區塊鏈的幾項關鍵技術,旨在總結出區塊鏈系統現階段存在的問題,并給出了基于這些關鍵技術存在的安全問題。通過詳細闡述區塊鏈系統現存問題:(1)可以作為區塊鏈系統開發者的參考,了解和避免常見的陷阱;(2)可以作為研究人員的指導,以促進區塊鏈技術的分析和驗證技術的發展。以期為未來的區塊鏈發展提供更強有力的理論和現實支撐,為能更快地發現問題解決問題。因此,本文對區塊鏈系統現存問題和安全漏洞的分析對區塊鏈技術的發展具有極為重要的意義。

1 研究背景

1.1 區塊鏈研究背景

“區塊鏈”概念于2008年在《比特幣:一種點對點電子現金系統》中被首次提出[2],并在比特幣系統的數據加密貨幣體系成功應用,已成為政府、企業和學者等重點關注和研究熱點。英國政府于2016年1月發布了《分布式賬本技術:超越區塊鏈》報告[3],指出英國政府正積極地評估區塊鏈技術潛力,并旨在更好地用來處理領導、協作和治理之間的關系;同年11月,微軟發布Azure區塊鏈。我國于2016年10月發布了《中國區塊鏈技術和應用發展白皮書(2016)》[4],預示著我國正式進入了前所未有的區塊鏈高速發展時代;同年2月IBM公司正式推出區塊鏈應用平臺;2019年10月,習近平總書記指出區塊鏈作為自主創新的新興技術,將成為國家級戰略部署關鍵技術之一。截止到2019年底,我國已經發布了25項與密碼模塊相關的國家標準,阿里、騰訊、京東及百度等大型互聯網公司陸續推出自己的區塊鏈服務平臺;Facebook公司成立Libra協會,美國已有28個州推出區塊鏈的相關政策,且其政府部門共提出了22項區塊鏈相關法案[5]。2020年我國成立區塊鏈專委會,招商銀行、農業銀行和工商銀行等國內金融機構紛紛推出區塊鏈金融項目,為促進區塊鏈快速發展奠定堅實基礎。

區塊鏈技術具有去中心化存儲、隱私保護、防篡改等特點,提供了開放、分散和容錯的事務機制,成為新一代匿名在線支付、匯款和數字資產交易的核心,被廣泛應用于各大交易平臺[6]。同時也給金融、監管機構、科技創新、農業以及政治等領域都帶來了深刻的變革[7-9]。以可編程社會為目標,區塊鏈技術將同20世紀互聯網技術一樣,創造21世紀技術革新的新紀元[10-12]。

1.2 安全漏洞研究背景

據國家信息安全漏洞共享平臺[13]統計,自2016年到2020年的低危、中危和高危漏洞分布對比,如圖1所示。中危漏洞發生頻率最高,雖然在2018年有所減少,但是總體處于增長狀態;高危漏洞的發生頻率僅次于中危漏洞,2017年下降明顯,但隨后幾年又呈快速增長趨勢;低危漏洞發生率最低,但逐年不斷增長。總體來看,漏洞總量仍然處于不斷上升的勢態,應用程序、操作系統及數據庫的安全性依然存在極大威脅。

圖1 近五年漏洞分布對比Fig.1 Comparison of vulnerability distribution in past five years

1.3 系統漏洞

同時漏洞嚴重危害著區塊鏈系統的安全,為了進一步分析區塊鏈漏洞危害,文獻[14]從區塊鏈系統角度進行分類,總結概括分為以下6類漏洞。

由表1可以看出,第一類漏洞主要由語義設置造成,由于開發人員對程序的不透徹理解導致引入錯誤語義,且語義錯誤一般特定于應用程序,即使后續使用智能檢測工具也很難自動檢測出來。具體的可以分為執行錯誤、異常處理錯誤、特征缺失以及輸入輸出錯誤。例如cpp-ethereum系統中回退功能不屬于外部合約估算;go-ethereum系統中,在函數中GET&POST延長截止日期請求陷入超時會導致最后期限延長。第二類為環境和配置漏洞,由于區塊鏈系統應用環境較為寬泛,且不同的環境駐留在不同的硬件或操作系統上,安裝許多不同版本的庫會影響依賴庫的功能;即便安裝相同版本的庫,由于用戶的各種自定義操作,也會使庫的配置信息與環境不匹配,導致底層操作系統執行錯誤。第三類是GUI漏洞,主要表現為用戶圖形界面的設置不規范。例如在Windows下,比特幣系統的界面會因為主機自身設置的原因顯得過大;在dogecoin系統中,客戶端啟動畫面時,徽標與文字重疊;ethereum系統中,點擊新的窗口加載器屏幕不顯示框架等諸如此類情況的發生。第四類是并發漏洞,在大型系統中,高線程或進程并發極易出現錯誤從而造成系統錯誤。在cpp-ethereum系統中,如果多個客戶同時創建交易,以太坊默認設置無法可靠使用,因為任何客戶端都可以隨時更改它,因此以太坊交易在創建合同時返回的地址不能保證是否是合同實際目標地址。第五類為安全漏洞,由于系統脆弱性導致軟件上的信息和軟件提供的服務被破壞,極易遭受各種漏洞攻擊的危害。第六類為性能漏洞,主要體現在系統不能高效執行系統任務而造成事務延遲,致使進程死鎖等現象。例如go-ethereum系統中高速讀取磁盤時進程死鎖導致任務中斷甚至數據丟失等的情況發生。

表1 漏洞分類Table 1 Classification of bugs

2 區塊鏈概念

自中本聰[2]提出區塊鏈之后,國內外學者從不同的角度對區塊鏈概念提出了自己的見解。如Sookhak提到區塊鏈是一個分散的、無信任的、防干擾的、分布式的賬本[15]。Daniel認為區塊鏈是一種新型的軟件開發架構,以一種僅附加的形式使用獨特的數據結構將數據連接成鏈,并將哈希函數作為映射數據的工具以保證數據的安全[16]。王芳將區塊鏈定義為利用加密鏈式區塊結構來驗證與存儲數據、使用分布式節點共識機制(Consensus Mechanism)來生成和更新數據,并通過智能合約(Smart Contracts)來編程和操作數據的一種去中心化的基礎架構與分布式計算范式[17]。袁勇、張奧將區塊鏈理解為是一個隨著時間序列不斷增長的去中心化的分布式數據庫,其本質是基于非對稱加密算法的分布式賬本技術[6,18]。Yu認為區塊鏈是電子貨幣帳簿系統的一種點對點技術實現,它是由參與者來維護的,可以在網絡系統中沒有中心服務器的情況下記錄每個比特幣交易記錄[19]。Halamka解釋區塊鏈是由一組不可變的分布式數字賬本組成,它們負責跟蹤交易并將其記錄在數字塊上,區塊鏈架構中所有節點相對應地服務且不依賴中心網絡服務器,因此區塊鏈中心故障點無懈可擊[20]。Yang、魏曉旭認為區塊鏈是采用密碼學的方法將數據塊連接在一起并可以進行可行性交易的分布式數據庫技術,具有防篡改、可追溯、多方維護的功能,它為了實現不同各方之間的信息共享和信息監督,任何一方必須按照約定事先得到其他各方的同意[21-22]。

綜上所述,區塊鏈概念可以理解為以非對稱加密算法為基礎,以改進的默克爾樹(MerkleTree)[23]為數據結構,使用共識機制、點對點網絡、智能合約等技術結合而成的一種分布式存儲數據庫技術。

區塊鏈分為公有鏈(Public Blockchain)、聯盟鏈(Consortium Blockchain)、私有鏈(Private Blockchain)和混合鏈(Hybrid Blcokchain)[24]四大類。

(1)公有鏈是網絡中任何人都可以隨時訪問的區塊鏈系統,通常被認為是完全去中心化、匿名性高和數據不可篡改的區塊鏈。

(2)聯盟鏈為若干企業或機構共同管理的區塊鏈,參與者要事先進行注冊認證,因此相對于公有鏈來說,聯盟鏈的參與節點較少。數據由認證后的參與者共同記錄和維護,這類節點擁有讀取數據的權限。

(3)私有鏈是一種由某個組織或某個用戶控制的區塊鏈,控制參與節點個數規則嚴格,因此交易速度極快,隱私等級更高,不容易遭受攻擊,相比于公有鏈系統有更高的安全性,但去中心化程度被極大削弱。從接入類型來看,區塊鏈分為非許可鏈和許可鏈[14]。非許可鏈不需要獲得允許即可接入區塊鏈系統,公有鏈就是一種典型的非許可鏈,所有節點都可以自由參與鏈上的交易。許可鏈包括聯盟鏈和私有鏈,對于接入節點有嚴格的標準和控制,系統內的數據訪問權只授權給經過認證的節點。相對于非許可鏈來說,許可鏈犧牲了一定的去中心化特性[25],以換取鏈上數據更高的安全性保護。混合鏈是公有鏈和私有鏈的混合體,結合了共有鏈和私有鏈的特性。

(4)混合鏈允許用戶決定區塊鏈的參與成員,以及交易是否可以被公開,因此混合區塊鏈是可定制的,所以它的混合架構通過利用私有區塊鏈的限制訪問來確保隱私,同時保持了公共區塊鏈的完整性、透明度和安全性。

3 區塊鏈關鍵技術分析

區塊鏈技術包括密碼學、默克爾樹(MerkleTree)、對等節點(peer-to-peer,P2P)、共識機制以及智能合約[26],其區塊鏈關鍵技術棧如圖2所示。

圖2 區塊鏈關鍵技術棧Fig.2 Stack of Blockchain key echnology

區塊鏈中密碼學原理主要涉及到加密和簽名,其中加密是由發送方利用接收方的公鑰加密,接收方收到信息后用自己的私鑰解密即可得到信息內容;簽名是由發送方用自己的私鑰簽名,接收方用發送方的公鑰驗證其信息發送者的身份;兩種方式皆采用非對稱加密算法。默克爾樹利用哈希指針構成樹形數據結構,將處理后的數據連接匯總為一串哈希值,節點間的算法一致性保證了哈希指針的準確性。對等節點(P2P)組網運行在區塊鏈系統的網絡層,用于控制消息和數據之間的傳輸可以直接在節點之間完成,有利于各個節點監聽網絡發布區塊以及驗證信息發布交易的合法性,允許數據以快速和安全的方式存儲、維護和分發[27]。共識機制則保證了區塊鏈中所有用戶的共同參與,是實現去中心化管理的重要協議,從公知機制提出至今已有一系列的公式算法投入使用。智能合約在區塊鏈基礎上得到進一步的完善,由開始的單一堆棧腳本語言到如今可自動控制交易完成度的合約協議。

從結構來看,區塊包含區塊頭(BlockHeader)和區塊體(BlockBody)兩部分,區塊頭中的關鍵信息包括當前版本號(Version)、前區塊哈希值(PreviewsHash)、時間戳(Timestamp)、隨機數(Nonce)以及默克爾樹(MerkleTree)的哈希值(MerkleHash)等信息[28]。前一個區塊存儲后一個區塊的哈希值,并按生成的時間順序進行連接,物理上是塊與塊之間的連接,邏輯上是鏈上信息的關聯,構成了一個外表為鏈內在是數據關聯的賬本形式,如圖3所示。區塊鏈的關鍵技術加密算法、默克爾樹、共識機制、智能合約詳細分析如下。

圖3 區塊鏈內部結構圖Fig.3 Structure of Blockchain internal diagram

3.1 哈希算法

哈希函數是一種將可變長度數據映射到固定長度摘要的函數,對輸入數據的任何更改都會導致哈希列中發生不可預測的變化。區塊鏈中使用SHA-256(secure Hash algorithm 256)哈希函數對任意長度的交易數據進行哈希運算,即將源數據加工得到一串256位的字符,便于數據統一管理和存儲,再將統一格式的字符打包存進區塊,在減少存儲空間的同時最大程度保證數據安全性。哈希函數具有三大經典特性:單向性(Hiding)、抗碰撞性(Collision resistance)、結果不可預測性(Puzzle friendly)。

單向性:已知輸入可以得到輸出,但是已知輸出無法逆推出輸入。

抗碰撞性:由于哈希函數擁有2256個輸入空間,計算量趨于無限大,想要構造一個輸入使其結果為當前值幾乎不可能。

結果不可預測性:對于已經公布的交易或是隨機值,要推測得到特定特征的輸出也是不可能的。

在區塊鏈的交易過程中為了保證數據的安全,如圖4交易簽名過程,首先對所有產生的交易數據都取哈希值Hash(M);其次將得到的哈希值與交易明文拼接得到最終發送內容S;然后將S用發送方自己的私鑰進行數字簽名,最終將數字簽名寫入區塊。該數字簽名利用非對稱算法的計算安全性,保證了信息的完整性和不可抵賴性,例如A給B發起交易,A聲稱自己是A,但B無法確定消息的正確性以及A的身份,因為B的公鑰是公開的,任何人都可以使用B的公鑰向其發送消息,而數字簽名不僅能夠確保A的身份和數據的完整性,還能夠防范雙花攻擊[29],減少分叉的可能。

圖4 交易簽名Fig.4 Signature of transaction

3.2 MerkleTree

從廣義上來看,區塊鏈是在密碼學的基礎上,對數據的一種分布式存儲技術。首先對數據進行預處理:區塊鏈對數據進行加密取哈希、摘要處理,得到符合區塊要求的數據格式,在減少存儲空間的同時最大程度地保證了數據的安全性。存儲:即將得到的不同數據哈希值打包放進區塊。在計算機領域中,MerkleTree[30]是一種樹形數據結構,如圖3所示。區塊分為區塊頭和區塊體,兩部分使用MerkleTree的數據結構進行存儲連接,葉子節點的交易(transaction,TX)兩兩得到的哈希值是上一層的葉子節點,這樣逐層往上遞進,將區塊體中全部交易迭代得到的根哈希值打包存儲在區塊頭中。在打包交易時再添加交易時間戳、隨機數等關鍵值。MerkleTree可以實現大量數據的快速存儲和讀取,有利于數據的高效驗證。

作為區塊鏈數據存儲的關鍵結構,MerkleTree主要用于完整交易的存在性檢查[31]。MerkleTree中將網絡節點分為全節點和輕節點。全節點中保存著鏈上交易中所有的信息,而輕節點則負責驗證交易合法性,如比特幣錢包。其主要步驟為:

(1)輕節點計算出TX B的Hash B,并向鏈中全節點發送請求,請求一個能夠證明藍色交易TX B被包含在MerkleTree里面的默克爾樹根哈希值(Merkle proof)。

(2)全節點收到請求,將上一層綠色的Hash A發送給輕節點進行計算驗證。

(3)輕節點得到Hash A,與自己的Hash B進行哈希運算得到Hash AB值,全節點再將另一個分支上綠色的Hash CD傳給輕節點。

(4)輕節點將自己的Hash AB與得到的Hash CD進行哈希運算最終得到Hash ABCD。

(5)最后將(4)的結果與本地存儲的根哈希值進行比較,驗證該交易的存在性。

3.3 共識機制

共識機制是指在動態交易的過程中使節點對分布式數據庫中的內容達成一致的過程,區塊鏈使用共識機制令節點對交易達成一致性共識,從而弱化中心化監管體系的功能。從最開始的工作量證明(proof of work,PoW)、實用拜占庭容錯算法(practical Byzantine fault tolerance,PBFT)、權益證明(proof of stake,PoS)到后來的授權權益證明(delegated proof of stake,DPoS)、權威證明(proof of authority,PoA)和Kafka等一系列共識機制[32-34]。共識機制一直在不斷完善,對應著領域要求的不同向不同的方向演進。作為區塊鏈的核心技術,共識機制能有效對區塊鏈中各節點的數據達成共識,快速完成交易數據處理,保證了數據的一致性和可靠性。其典型的共識機制詳細分析如下。

工作量證明(PoW):Dwork于1993年首次提出用工作量證明思想,通過計算出某個數學難題來提高垃圾郵件發送者成本[35]。1999年首次在論文中引出PoW共識機制,這也為后世中本聰提出在比特幣中使用的共識機制奠定了基礎[36]。工作量證明是區塊鏈共識機制中最典型的算法之一,如比特幣中的挖礦過程?!暗V工”通過不斷嘗試計算出符合挖礦難度(Difficulty)的隨機數N,來獲得一定的比特幣獎勵,如公式(1)所示:

H(BlockHeader)≤target(1)

難度值屬于2256個輸入空間中極小的一部分目標值域(Target),如公式(2)所示:

在區塊鏈系統中區塊會在某個周期內(每2 016個區塊,約兩周時間)動態調整閾值的難度,如公式(3)所示:

當系統挖礦難度(target)不變時,實際挖礦的難度大于預期挖礦的難度,等號右邊大于1,目標閾值增大,同時挖礦難度減小,挖礦難度與目標閾值難度成正比。當挖礦人數增多導致區塊產生速度明顯加快時,系統就會提升挖礦的難度,使區塊產生的速度趨于平衡(一般情況下每10 min產生一個區塊)。1999年Castro等提出使用拜占庭容錯算法(practical Byzantine fault tolerance,PBFT),應用于吞吐量不大但要處理大量事件的數字資產平臺,在原始拜占庭算法的基礎上提高了效率[37]。PBFT算法規定全網至少需要部署3f+1個節點,最多可容忍f個惡意節點,若出現拜占庭故障,整個系統的狀態由2f+1個節點決定,即在保證系統活性和安全性前提下,在全網惡意節點數少于1/3時達成共識。但著名科學家Eric教授在報告中提出分布式系統在一致性、安全性、分區容錯性三者中最多只能同時滿足兩種,PBFT算法亦不能滿足當時的生態系統。2012年,權益證明(PoS)首次在點點幣(Peercoin)中出現,其使用“幣齡”的概念將礦工手中的貨幣量加以控制,并規定持幣者必須有一定時間期限,時間越久幣齡越長,如公式(4)所示[38-39]:

幣齡=貨幣量×持有時間 (4)

為了保證系統的公平性,礦工的幣齡越高則挖礦的難度越低,在一定程度上可以削減用戶被攻擊的可能性。PoS的出現改善了PoW中算力消耗過大的現象,并在一定程度上緩解了之前由于出塊時間過慢造成效率低下的情況,增加了吞吐量的同時加快了處理速度,但若系統中首富現象突出,會造成中心化集中問題[40]。

公式(1)~(3)中,actualtime和expectedtime分別為實際挖礦難度和期望挖礦難度;target和Difficulty分別為系統的目標閾值難度和挖礦難度;Difficulty||Target為系統設置實際挖礦難度值,最小為1,Target為目標閾值。

授權權益證明(DPoS)[41]:DPoS基于民主投票的形式,由節點選舉出N個成員成為系統中的“代表團”,擁有代幣數量越多的節點成為“代表”的概率越大。團中的“代表”節點負責收集信息、打包交易以及驗證交易和新生產的區塊,如下授權權益證明工作流程圖。由時間片輪流分配時間給“代表”節點處理事物,若出現惡意“代表”,該節點將會被撤銷出塊權利并取消“代表”資格,再推選出新的“代表”。DPoS的出現減少了算力和電力的浪費,也提升了交易處理速度和區塊吞吐量,但同時不可避免地削弱了去中心化工作模式的能力。

權威證明(PoA):以太坊創始人Gavin于2017年首次提出權威證明共識機制。PoA共識機制主要用于聲譽積累,驗證者需要驗證用戶的身份,而不是用戶所持有的貨幣[42]。想要驗證交易的用戶要首先確認其身份,將身份鏈接到所執行的驗證,并存儲在區塊鏈上。當交易被驗證時,驗證者的身份將通過某種協議在鏈上得到確認。該身份只有由一小群驗證者來確定,從而提高了共識協議的效率和安全性。PoA不需要高計算成本,也不需要積累大量代幣,但它僅適用于私有區塊鏈和聯盟區塊鏈網絡。同年7月,Hyperledger社區正式發布Fabric 1.0,其中出現的共識機制打破了以往以證明為主的共識機制印象,形成了以背書節點(endorsing peer)、排序節點(orderers)和提交節點(committing peer)三類節點為主的Fabric共識機制[43]。超級賬本共識流程如圖5所示,其主要步驟如下:

圖5 超級賬本共識流程Fig.5 Process of hyperledger fabric consensus

步驟1客戶端(client SDK)創建提案,根據所選擇的背書策略(endorsement policy)將提案發送給相應的背書節點。提案中包含了用戶編號(ClientID)和所調用的鏈碼函數(BlockchainCoin function)及其參數、時間戳(Timestamp)和客戶端簽名(ClientSig)等信息[44]。

步驟2背書節點會驗證客戶端簽名,確保提案是由已認證的客戶端發出。背書節點所模擬的交易請求是根據提案中鏈碼執行的,背書節點的簽名(sign TXendorsed)附加在生成的執行結果中,即背書過程。模擬執行的結果是一組基于當前世界狀態(state database)的讀寫集(readset and writeset set),背書后將背書簽名和讀寫集發送給客戶端。

步驟3客戶端驗證背書結果的簽名,確保其來自合法的背書節點,客戶端可以檢查背書節點簽名的有效性以及從不同背書節點接收到的讀寫集之間的一致性,如果一致則根據背書結果生成交易并廣播給排序節點。在驗證階段后期客戶端可以施行強制檢查,目的是可以幫助在事務流程早期階段檢測事務故障,以降低開銷。

步驟4在Hyperledger Fabric中使用Kafka模式對交易進行排序。排序節點將收到的交易交給Kafka集群排序,同時會按照一定的規則從Kafka集群中讀取一定數量的有序交易并打包成塊。排序服務對區塊簽名后,將區塊分發給提交節點。

步驟5提交節點收到區塊后,即可對區塊進行驗證,其中主要是驗證交易中的讀寫數據集是否與世界狀態的數據版本一致。提交節點使用讀寫集合的讀集部分來檢查交易的有效性,然后將所有驗證通過的交易中讀寫集中寫部分寫入世界狀態,同時提交節點會使用寫集更新狀態數據庫即賬本。若驗證失敗,已中止和已提交事務的驗證塊將附加到分類帳中,將記錄每個事務的提交或中止狀態。

除了以上介紹的六類主流共識機制,還存在一些應用于各大區塊鏈平臺的共識算法,文章對它們的特征、優缺點、參與系統以及在自身基礎上所提出的改進算法整理如表2所示。

表2 共識機制分類Table 2 Classification of consensus

3.4 智能合約

智能合約(smart contract)[45]由Szabo在1994年首次提出,它是一段可以自動執行的計算機程序,在區塊鏈中應用復雜的可編程語言和工程操作對區塊鏈的執行步驟做約束,當賬戶觸發特定條件時合約自動執行。其目的是為了保證合約雙方不能惡意篡改合約內容,并能夠在沒有中心管理者的監管下確保合同有效實施,其代碼具有自動執行和跟蹤協議條款和條件的能力,因此,智能合約是自我驗證、自我執行和不可逆的,智能合約被認為是區塊鏈革命的第三代產品[46]。

智能合約的雛形是基于比特幣系統的堆棧腳本語言(stack-base scripting)[47-48],該語言不支持內部循環,缺乏圖靈完備性(turing completeness)。比特幣中的智能合約只能支持有限的計算邏輯,是基于交易的賬本模式(transaction-based ledger),故通常只能用于識別用戶身份。以太坊使用圖靈完備的智能合約對交易進行識別、處理和驗證,調用函數對以上過程進行操作。超級賬本(Hyperledger)旗下的Fabric子項目采用多種通用語言編寫“鏈碼(chaincode)”,Fabric更偏向于企業級應用開發,功能強大,共識機制可插拔,基于復雜的業務邏輯觸發執行,開發過程快速便利。

智能合約的執行流程[49]如圖6所示,智能合同通常由一個可以識別的執行代碼和狀態集合的特定地址組成。兩方發起交易,合約由開發人員(developer)進行開發,通過使用不同編程語言(如Python或Solidity[50])中的特定條件語句進行編譯,將編譯得到的字節碼(bytecode)在以太坊虛擬機(EVM)里執行,并由礦工共識(miners consensus)強制執行智能合約,不同的交易觸發各自對應的合約條款。提交包括智能合約功能所需參數的交易給區塊鏈,同時礦工們要負責核實該交易的合法性并將事務存儲到區塊中,目的是創建一個用來調用智能合約的唯一地址。之后,區塊鏈用戶可以通過將事務傳輸到合約來調用合約代碼觸發事件(event),合約將由狀態變量和外部可信數據集進行檢查。交易事件觸發成功合約自動執行支付(payment)操作,最后廣播全網由礦工們進行驗證(verification)。

圖6 智能合約執行流程Fig.6 Working of smart contract

智能合約的調用只能由外部用戶發起,合約用戶不能主動發起交易。以以太坊為例,創建交易時,接收地址為要調用的智能合約地址,調用的函數及其函數的編碼填寫在合約的DATA域中。

代碼1:構造函數

構造函數僅在合約創建時調用一次,并準備好新合約的唯一地址:

1.Constructor(time,address)

2. Public{

3. Address=address;//地址=當前合約地址

4. endtime=time; //事件終止時間=實際時間

5. bytes solution;

6.}

代碼2:合約函數

在智能合約中,使用event定義一個事件,emit調用該事件。外部函數調用合約函數,此處假設外部賬戶已觸發合約:

1.contract X{

2. event A(string str)

3. Function foo(string str)return(uint){

4. emit A(str);

5. return 123;

6. }

7.}

8.contract Y{

9. uint z;//z為x.foo(“call foo directly”)的返回值。

10. Function callXFooDirectly(address adr)public{//調用X合約,該函數的參數是合約X的地址

11. X x=X(adr);

12. z=x.foo(“call foo directly”)

13. }

14.}

用戶交易由外部賬戶W發起,首先調用合約Y,再由Y調用合約X繼續執行。若用戶交易調用的合約發生錯誤,會導致發起調用的合約立即回滾,即若合約X執行過程中出現異常,合約Y調用失敗。

為了確保采礦網絡計算消耗工作的公平,以太坊需向礦工支付與所需計算成比例的交易費。即以太坊字節碼中的每個指令都具有預先指定數量的gas,當用戶發送交易調用合同時,用戶須首先指定自身愿意為此次合約執行提供多少gas以及每個gas單元的價格(gasprice),區塊中的礦工隨后會收到交易費[49],如公式(5):

如果某些執行需要的氣體超過gas限額(gaslimit),則執行終止,區塊狀態將恢復到初始狀態,但作為保護機制,發送方仍必須向礦工支付所有的gaslimit,這是對抗資源耗盡攻擊的一種有效措施。

表3將智能合約分為三類并分別列出優缺點。

表3 智能合約分類及優缺點Table 3 Classification of smart contract

與傳統的智能合約相比,前者具有公開透明、內容不可篡改以及永久運行的能力,還具有去中心化和高效的特點。但由于其不可篡改性致使合約一旦部署便再無更改的可能性。同時由于匿名性,在目前網絡法律立法還不完善的情況下,若任一方違約都將造成極大損失。最后,智能合約仍存在許多安全上的隱患亟待解決。

4 存在的問題

區塊鏈順應潮流發展,同時也存在很多問題制約和阻礙其推進。為了更好地分析區塊鏈技術發展存在問題,本章將從區塊鏈的數據存儲與交互、隱私保護、資源分配、漏洞攻擊四個方面進行概括總結。

4.1 數據存儲與交互

區塊鏈作為分布式數據庫在數據存儲和讀取方面有一定的優勢,但是隨著數據的增多,大部分節點無法高效存儲數據,出現多形式數據存儲、數據更新以及跨鏈時延等問題。多形式數據存儲:區塊鏈最大的優勢之一是對非關系型數據的一次存儲多次讀取,在密集的點對點網絡(P2P)體系中隨機部署節點進行數據Hash存儲。對于合法用戶而言,他們可以查詢到自己或他人的交易額、內部系統信息或黑名單信息,但所有的數據都是以字符串的形式呈現,若交易數據是視頻、音頻或者圖片,隨著網絡需求的增加,網絡時延使數據傳輸失幀,分布式賬本無法保證分布式一致特性。數據更新:由于區塊鏈的序列化特性上鏈的每一條數據都需要進行排序連接,因此區塊交易極其緩慢。比特幣交易時長平均10 min一個區塊,每秒約3到4筆交易,以太坊出塊時間約為15 s,每秒約20筆交易。相比之下,Visa支付平臺每秒可處理6.5萬筆交易,支付寶每秒處理8.9萬筆交易,它們的交易速率是比特幣和以太坊的近千倍。緩慢的交易速率極不利于數據快速存取和交互,若縮短出塊時間則能最大化減少分叉產生帶來的數據更新后的不一致。跨鏈時延:區塊鏈結合了去中心和匿名等特點,在此基礎上的加密數字貨幣可以在全世界范圍內流通。作為一種點對點支付系統,對于跨國交易的操作比傳統的支票和匯款更加方便快捷,除去人工的奔波耗時,降低了人為操作帶來的失誤率,同時提高了不同國家之間匯率的透明度。但隨之而來的是手續費的增加,由于各個國家之間地域的跨度,造成數據傳輸時延大,在傳輸過程中更容易遭受惡意攻擊,且交易確認等待時間長,因此區塊鏈交易賬本的分布式存儲還需要考慮數據傳輸的安全性和可擴展性。

4.2 隱私保護

隱私保護指的是通過技術手段對個人或企業的隱私信息進行維護和保護的過程。以下主要將隱私保護分為用戶隱私保護和企業隱私保護兩大類別。(1)用戶隱私保護:對用戶來說,隱私保護就是保護用戶不愿意被公開的數據信息。匿名化使區塊鏈與現實世界相隔絕,用戶在使用區塊鏈時很難做到使自己的身份、IP地址、聯系方式、公私鑰以及姓名之間沒有關聯,攻擊者對大量的用戶交易地址使用流量分析等方式進行網絡攻擊。倘若所使用的賬戶地址沒有高安全等級防護,私鑰一旦泄漏,區塊鏈沒有任何更改機制,交易賬戶只能會遺棄。(2)企業隱私保護:區塊鏈上交易的每一個流程都是開放且透明的,但對企業而言,數據完全透明并不意味全是優勢。例如股票交易所,每一筆交易都要求實時的數據操作,所有的用戶都能看見其他節點的交易數據,易造成不法分子盜用用戶隱私導致財產損失,使得企業失去廣大用戶的信任。

4.3 資源分配

區塊鏈具有去中心化和防篡改的特性,因此賬本上的數據對于系統來說容易存在事務排序依賴、數據高冗余、不可持續發展和算力浪費等問題。事務排序依賴:以太坊中,支付以太幣越多,事務排序優先級越高,處理速度越快。即當兩個節點同時提交事務,花費以太幣較多的節點事務優先得到處理,致使花費較少的節點一直排序等待,并且后續支付較多的節點無需等待就可加入隊列優先執行事務,造成進程堵塞,進度拖欠,導致資源分配極度不均。數據高冗余:區塊鏈依賴分布式賬本這一優勢,對數據進行分布式存儲。但隨著要記錄的數據越來越多,信息呈現爆炸式增長,每個節點為保證賬本高度一致,實時復制、同步、更新造成數據高度冗余,且每個節點存儲容量有限,這可能在未來面臨著如何處置這些數據的困境。不可持續發展:紙幣之所以流通是因為它具有重復使用、可交換及市場調節等功能。但是對于虛擬貨幣而言,幣的數量是有限的,不能隨著市場經濟的變化而調控,由于幣的固定性,其本身無法作為貨幣流通。其次,每次交易過程中都會收取交易費,隨著剩下區塊的數量越來越少,對應的區塊獎勵也隨之不斷減少,未來交易費將成為區塊產生的驅動力,無論是對經濟發展還是科技進步都是不利的。算力浪費:工作量證明是一種基于計算機算力爭奪記賬權的共識機制,在比特幣中表現為“挖礦”的方式,這是一個天然的“賞金漏洞”——參與的人越多越民主,數據越安全,公眾參與度增高,問題在于減少成本的同時被攻擊的可能性也隨之增加。這極大地暴露了代幣機制的弊端,即記賬權完全由算力決定,挖礦設備專業化驅使人們花重金購買性能更高的ASIC芯片進行算力爭奪,導致芯片的算力越高獲得記賬權的機率越大,最后爭奪記賬權和芯片高算力成正比。使用ASIC芯片進行大量哈希計算造成巨大能源消耗,據統計,區塊鏈高速發展時期,每年用來挖礦的電力相當于幾個核電站的總電力輸出。

4.4 漏洞攻擊

黑客利用系統漏洞對其進行監聽、攔截、重放甚至破壞的行為被稱為漏洞攻擊,因此,由于區塊鏈系統自身漏洞造成的黑客攻擊防不勝防,本節將其漏洞攻擊類型分為分叉攻擊、基于密碼學攻擊、基于共識機制攻擊、基于智能合約攻擊以及其他攻擊。

4.4.1 分叉攻擊

分叉攻擊在區塊鏈系統中較為普遍,且危害極大,分叉攻擊又主要分為系統自身產生分叉導致被攻擊和攻擊者主動制造分叉進行攻擊兩大類。系統自身產生分叉導致的分叉:首先,區塊鏈在弱共識的前提下,因系統時間順序產生區塊的特性,會同時產生多個區塊(state fork),因而極易成為攻擊者的攻擊目標;其次,由于區塊鏈系統內部協議的更新,例如軟件升級,弱共識無法要求整個系統中所有節點同時更新,就有可能產生硬分叉或軟分叉[52]。硬分叉中舊節點不承認新節點,只要舊節點不更新系統分叉就不會消失。軟分叉則相反,只要一直沿著新節點增加區塊即可消除分叉威脅。

攻擊者主動制造分叉進行攻擊:其一是女巫攻擊(sybil attack),它是一種基于P2P網絡的一種攻擊類型,會由攻擊服務器生成超過系統51%的傀儡賬戶參與投票選舉造成,它可以擊敗分布式存儲系統的冗余機制,還會對傳感器網絡中的路由機制構成威脅[53]。其二是雙花攻擊(double spending)[54],它利用了比特幣數字加密貨幣的傳輸特性,使一筆錢“花費兩次”,除非接受方在交易發起時就立即驗證每一筆代筆的來源,否則就將造成巨大損失,在比特幣中使用交易簽名的方式防范雙花攻擊,許多區塊鏈硬件也會使用防篡改的模式。其三,以太坊為了防止雙花攻擊,對區塊使用多數據集生成Hash值,但是由于網絡延遲,會產生重播攻擊(replay attack)[55],即以太坊系統中重復使用同一請求,一筆錢“收兩次”,與“雙花攻擊”恰好相反。其四是私自挖礦攻擊[56-57],主要指的是惡意礦池挖出區塊隱瞞不發,而是繼續在隱藏鏈上挖礦,當惡意礦池挖出的隱藏鏈比誠實節點所維護的合法鏈更長時,惡意礦池發布分叉鏈,由于誠實礦工都會選擇最長鏈為合法鏈,因此分叉攻擊實施成功。

4.4.2 基于密碼學攻擊

區塊鏈中對于數據的安全保護基于密碼學純數學計算方式。所使用的密碼學算法有MAC函數、HASH函數以及RSA公鑰加密體制和ECC橢圓曲線加密體制等[58-60]。這些算法在目前理論上是安全的,且密鑰的產生需要特殊的隨機元,一個好的隨機元生成的密鑰對的安全系數相比于較差的隨機元的安全系數更高,能直接避免和其他賬戶生成重復的密鑰對。針對密鑰對的破解,最通用的密碼爆破方式為字典攻擊:通過構造常用的密碼組合模式的腳本來自動執行匹配賬戶密碼的步驟,但這樣的腳本所構造的密碼組合較為單一,對于復雜的賬戶密碼無從下手。被動攻擊[61]是基于攻擊者對截取到的數據PDU進行的流量分析,數據包累計回應,攻擊者可得到數據的長度、頻度、特性甚至破解信息內容。由于區塊鏈系統節點眾多,對于認證的參與者無法完全確定其是否誠實,同樣的,側信道攻擊[62-65]普遍存在于任何區塊鏈系統,服務器硬件存儲密鑰信息,若私鑰被盜,即可鎖定私鑰對應的賬戶,系統中私鑰被盜將無法找回,重新生成同一私鑰在計算上不能成立,若有報道稱某加密貨幣被偷則意味著私鑰被盜,由于區塊鏈數據無法更改,一旦罪犯偷了一把私鑰并將相關資金公開轉移到另一個賬戶,這筆交易通常無法撤銷。目前主流的SHA-256算法的輸入空間2256≈1077,雖是普通計算機晝夜不停兩年的計算量,但若使用量子計算機,計算速率將成指數倍增長,因此,隨著量子計算機[64-65]的興起,現有密碼體制將直接面臨被攻破的威脅。

4.4.3 基于共識算法攻擊

基于共識算法的攻擊有51%算力攻擊、長程攻擊、DDOS攻擊、區塊截留攻擊以及滲透博弈攻擊。其中51%算力攻擊指的是PoW通過算力比拼以競爭區塊記賬權,若惡意節點擁有51%的哈希算力,便可以發動攻擊[66]。長程攻擊是指從創世區塊就開始創造另一條與主鏈完全不同的鏈,試圖替換原主鏈,其中的交易和用戶也不完全一致,由于節點的弱主觀性,長程攻擊成了PoS最大的威脅[67]。DDOS攻擊是指攻擊者旨在利用龐大的IP群體對目標主機發送大量無效請求,導致目標主機接收不到真實請求,有時甚至造成系統癱瘓,致使共識效率極低,如在Hyperledger Fabric中極少數的背書節點就容易成為攻擊目標[68]。區塊截留攻擊則指的是惡意礦工通過丟棄所有成功答案,而只向礦池管理員提交部分答案,造成礦池虧損。雖然區塊截留不會對區塊鏈造成很大的傷害,但是會降低礦池和誠實節點的收益,且以極低的代價讓礦池不再受誠實節點的信任。滲透博弈[69]的原理源自博弈樹,即攻擊者選擇對區塊節點進行滲透,一般出現在礦池間的惡性競爭,于是在受攻擊的節點上形成博弈狀態,各方都為了自己的利益最大化[66]。

4.4.4 基于智能合約攻擊

雖然智能合約是一段自動執行的程序代碼,但它只是一套固定的規則邏輯在經過編寫和審計之后得到多方用戶簽署再部署到分布式系統中,實際開放平臺中還是存在合約構造不合理、代碼不嚴謹、確認時間長以及事件調用依賴情況嚴重等不足,極易隱含漏洞成為被攻擊的對象。

DAO[51]:區塊鏈史上眾所周知的黑客攻擊事件,因為系統代碼漏洞,攻擊者可間接遞歸調用漏洞函數,旨在系統中強行創建分支,并在每個分支上都獲取以太幣,the DAO攻擊造成了6 000萬美元的金額損失。

時間戳依賴攻擊[71]:在以太坊中設定節點之間需保持時間“大致相同”而并非完全保持一致,前驅區塊的哈希值和區塊數是已知的其他的合約變量,如導致產生隨機數的原因也是已知的。因此,礦工就可以預先計算和選擇時間戳,礦工可以隨機產生一個有利于他的結果,而攻擊者利用這偏差來左右時間戳的設置并發動攻擊。

調用堆棧深度攻擊:智能合約中規定,當外部用戶調用合約用戶時,合約堆棧自動增加一位,當棧滿時會有溢出異常。在以太坊中,智能合約規定棧最大為1 024位,攻擊者在發動攻擊之前,事先生成一個將滿的堆棧,當再次調用目標合約時堆棧溢出就會拋出異常,導致系統崩潰輕。

交易順序依賴攻擊[72]:一個區塊中包含的兩個交易同時調用了一個合約導致用戶不知道他們單獨調用時合同處于哪種狀態,因此用戶打算調用的合約狀態與執行時發生的實際狀態存在差異,所以只有負責開采的礦工能決定合約的最終狀態即交易的執行順序。惡意用戶可以利用合約的交易排序依賴來獲得更多的利潤,甚至可以竊取用戶的錢。

代碼漏洞:在運算過程中當計算結果無法放置在整型數據類型中時,會產生整數溢出(integer overflow)[72]。例如以太坊使用的solidity語言就具有該嚴重漏洞,會導致攻擊者獲得未經授權的數字資產,且solidity語言無法支持小數點,這可能使得一個區塊鏈項目因數據格式不一致或精度不匹配而半途夭折。

路由更改攻擊,即攻擊者利用BGP動態變化的路由更改自己的網絡前綴偽裝成其他節點,并對目標節點進行定向流量攔截,引導數據流向原本錯誤的路線。

4.4.5 其他攻擊

除了以上四類基于區塊鏈系統的漏洞攻擊,還存在一些基于網絡、社工或物理設備的漏洞攻擊,攻擊者可以利用它們從系統之外對數據進行竊取或破壞。分布式系統使物理上分隔的用戶得以網絡交互,而日蝕攻擊可以阻止目標用戶與外界進行數據通信。

病毒攻擊:現階段區塊鏈平臺的廣泛應用,沒有統一的標準進行規范化約束,攻擊者想要植入病毒或木馬很容易,這會嚴重威脅到用戶的財務狀況[73]。

供應鏈攻擊:大多數的企業會把自家的大型業務外包給其他的技術公司或者是多家企業聯合業務,但很多時候這種潛在的危險就是合作方,他可能是流氓企業,也可能有流氓雇員,在系統的產生過程中就已經存在漏洞。

中間人攻擊:攻擊者對網絡中傳輸的信息進行截取、偷聽甚至篡改,但不會驚動通信雙方的攻擊方式。

重放攻擊:即將上一次傳輸的信息與當前傳輸的信息進行合并再發送,以達到欺騙系統和阻礙認證的目的。

社會工程學分析[74-75]:對某些賬戶的交易數據進行流量分析,聯系他在現實中的生活軌跡得到用戶的真實身份。

惡意軟件攻擊:攻擊者通過向用戶發送惡意軟件騙取用戶登陸信息,以盜取賬戶信息和節點私鑰等。

側信道攻擊:攻擊者對鏈下支持區塊鏈運行的物理設備進行的攻擊甚至破壞,導致服務器硬盤損壞數據丟失等。雖然攻擊者達到了破壞區塊鏈分布式賬本的完整性,但對于攻擊者本身并沒有多大益處。除以上所列出的各類攻擊,還有各種各樣的攻擊類型。

5 分析與討論

綜上所述,導致全球區塊鏈安全事件的原因包括兩個方面:一方面是其共識機制、私鑰管理、智能合約等存在的技術局限性所面臨的安全問題;另一方面是區塊鏈去中心、自治化的特點給現有數據存儲、隱私保護、資源分配等技術手段帶來了新的挑戰。文章從目前區塊鏈現存問題入手,其一從系統內部結構和邏輯意義兩方面總結了技術局限所面臨挑戰的可能解決方案,其二提出檢測技術、身份管理和法律法規三方面提出合理建議,共同維護區塊鏈系統的安全性。

5.1 基于分叉攻擊與密碼學攻擊的安全分析總結

存在于區塊鏈系統內部結構的兩類攻擊類型是基于分叉機制攻擊和基于密碼學攻擊。在區塊鏈系統中,分叉尤為常見,它易導致最長合法鏈不一致、系統無法同時更新軟件、偽造節點投票和發動雙花和重播攻擊,或者私自屯塊覆蓋最長合法鏈等操作。因此為了有效緩解區塊鏈遭到以上分叉攻擊造成的影響,對應的解決方案如下:需要提升共識效率,增加出塊速率;更新換代時定期查看日志,提醒用戶及時更新;參與工作量證明機制,同時對每個節點身份進行驗證;增加采礦過程的復雜性,每個用戶增設UTXO集合,對于新產生的塊延遲確認,在6個區塊產出(約1 h)之后,被篡改概率指數下降;使用隨機數和時間戳同時對數據包進行實時標記,對每一筆交易都有簽名;定時查看CPU占用率高的進程,查看內部網絡和主機的安全防護設備告警和日志信息,查找異常?;诿艽a學的攻擊主要分為四類:較簡單的字典攻擊、由鏈外產生的被動攻擊、基于物理邏輯的側信道攻擊以及復雜的量子密碼攻擊。字典攻擊使用數學公式的排列組合或弱口令即可破解,世紀中葉非對稱密碼問世之后字典攻擊只能對付對稱密碼。被動攻擊主要是通過分析大量數據包得到信息來破壞數據的保密性和完整性,因此使用HASH函數計算得到的固定值再MAC函數取摘要,HASH函數與MAC函數相結合可以得到對消息以及消息發送者的同時驗證。區塊鏈系統中密鑰管理的安全性允許節點自己生成密鑰對,以促進網絡中節點之間的安全通信,側信道攻擊主要針對存儲有密鑰的服務器或緩沖區,現有文獻[76]提出了基于區塊鏈的邊緣計算密鑰管理方案,并且提出以公開審計的方式對密鑰進行保護。量子密碼是目前最復雜的密碼之一,量子計算機是一種利用物質和能量的物理特性進行計算的新技術,因此一個足夠強大的量子計算機將使許多種形式從密鑰交換到加密再到數字認證都處于危險之中。針對數據和流量分析以破解交易地址的攻擊,Meiklejohn等[77]提出更完善的“找零地址”,以確保用戶賬戶的安全性。由密鑰管理技術發展而來的,為保證系統中私鑰管理的安全性,軟件錢包、硬件錢包、托管錢包和門限錢包技術相繼出現[78]。文獻[79]提出量子密鑰協議使遠程參與者能夠根據他們的私人輸入公平地建立一個安全的共享密鑰。同時隨機密鑰預分配機制[80-81]也開始流行。

5.2 基于共識機制攻擊與智能合約攻擊的安全分析總結

區塊鏈系統基于關鍵技術的邏輯意義,且可插拔的兩類攻擊類型是基于共識機制攻擊和基于智能合約攻擊,共識機制主要以分布式系統本身和所使用網絡兩方面改進,智能合約作為可插拔的自動執行程序,具有極強的可塑性,因此解決方案主要從已有的攻擊類型和對應的可能解決方案,如表4所示。

表4 基于共識機制和智能合約攻擊防護措施分類Table 4 Protection measures of attacks based on consensu mechanism and smart contracts

5.3 未來研究趨勢

區塊鏈問世以來一直面臨著各種各樣的監管問題,無論是自我監管還是第三方協同管理都存在弊端,因此經研究分析得以下三條建議:

檢測技術:現存的機器學習和數據挖掘算法可能會側重于檢測基于區塊鏈交易中的欺詐和發現入侵者的新型應用,通過對人們的交易歷史進行分析、監控和檢測行為模式,監督機器學習方法,如深度學習神經網絡,支持向量馬赫數網絡網絡和貝葉斯信念網絡可能有助于檢測離群值行為。

法律法規:各機構、立法者和立法機構應了解、調查和審查區塊鏈技術的機制和影響,并合作開發和實施法律、政策和法規管理程序,以管理區塊鏈技術的使用,這樣做可能會催生創新商業模式的新興點對點經濟的安全性和運作。NIST網絡安全框架明確規定區塊鏈網絡環境安全,盡管該框架不是專門為區塊鏈技術設計的,但其標準足夠廣泛,足以涵蓋區塊鏈技術,并幫助機構開發識別和控制影響區塊鏈技術的風險的管理系統和流程。

廣泛應用:在此提出一種新的思想,除非得到大多數社會技術的廣泛接受和采用,否則該技術中固有的任何機制和保護都不能發揮作用。雖然只有一小部分交易發生并記錄在區塊鏈中,但攻擊者、惡意分子和罪犯仍然可以通過其他渠道獲得想要的信息。因此,將區塊鏈廣泛應用于各大領域對成功地預防各類型的攻擊至關重要。

6 總結與展望

隨著區塊鏈技術快速發展,區塊鏈具有數據去中心化管理、不可篡改和安全性高等優點,使區塊鏈引起了政府、企業和學者的廣泛關注,并在一些領域得到成功應用。但是區塊鏈為去中心化平臺提供技術的同時,自身系統漏洞所帶來的安全問題也越演越烈。本文基于以上問題,從區塊鏈關鍵技術和漏洞分類分析入手,通過文獻分析和綜合研究得到以下結論:

總結了區塊鏈自發展以來的國內外研究現狀以及漏洞演變趨勢,發現應用程序、操作系統及數據庫的安全問題依然嚴重,通過分析研究文獻對目前區塊鏈系統存在漏洞的分類得出實例分析。接著歸納了區塊鏈的概念,同時對密碼學、默克爾樹、對等節點(P2P)、共識機制以及智能合約等區塊鏈關鍵技術進行深入分析,總結了各自的工作原理及其優缺點。尤其是對目前眾多平臺主流的區塊鏈共識算法應用效果進行對比分析,總結各種關鍵技術適宜的應用場景,以方便用戶參考借鑒。

對區塊鏈的數據存儲與交互、隱私保護、資源分配、漏洞攻擊等四個方面進行分析總結,歸納并指出了區塊鏈系統在安全方面存在的亟需解決的問題,對區塊鏈系統的漏洞攻擊進行歸納,指出分叉攻擊、基于密碼學攻擊、基于共識算法攻擊、基于智能合約攻擊以及從系統之外發起的攻擊等五類可被利用的漏洞攻擊,并對區塊鏈系統存在的安全漏洞攻擊進行分類,從大量文獻中歸納分析得出各個攻擊的類別定義以及可能有效的解決方案,為用戶提高區塊鏈安全性指明方向。以上存在的四個方面問題對區塊鏈系統存有極大的安全威脅,務必加以重視和防范。

結合以上問題,本文建議在未來系統設計的過程中需更加完善安全體系,從算法到系統整體提升區塊鏈系統的安全性,其中對于數據的存儲效率還需要進一步的提升,毫秒級的交易額數量直接影響著區塊鏈系統的性能,因此需要提供更高效的共識機制,對隱私數據的保護需要增加訪問控制的功能以防止第三方惡意入侵,以及系統對資源的分配可采用云端服務器或IPFS技術,因此未來還需對區塊鏈內部系統做進一步完善,為區塊鏈技術發展和平臺開發提供更加準確、安全、標準的技術,以防止各類漏洞對區塊鏈系統的攻擊,進而提升區塊鏈系統的工作效率。

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 欧美劲爆第一页| 一级毛片网| 亚洲天堂网2014| 一级毛片免费不卡在线| 国产日韩欧美视频| 国产人成在线观看| 欧美一级在线看| 亚洲精品国产精品乱码不卞| 一区二区三区精品视频在线观看| 无码国产偷倩在线播放老年人| 欧美第一页在线| 国产区成人精品视频| 久久狠狠色噜噜狠狠狠狠97视色| 成人一级黄色毛片| 成年人免费国产视频| 国产精品免费露脸视频| 九九热精品视频在线| 蜜桃臀无码内射一区二区三区 | 亚洲国产日韩一区| 97精品久久久大香线焦| 久久婷婷人人澡人人爱91| 国产福利在线观看精品| 欧美日韩国产综合视频在线观看 | 久久久久久久久久国产精品| 亚洲人人视频| 日本免费新一区视频| 1级黄色毛片| 久热re国产手机在线观看| 久久精品娱乐亚洲领先| 一级香蕉视频在线观看| 国产日韩丝袜一二三区| 亚洲—日韩aV在线| 久久婷婷五月综合色一区二区| 亚洲AV无码不卡无码| 日本影院一区| 久久久精品无码一区二区三区| 日韩东京热无码人妻| 亚洲AV无码一区二区三区牲色| 亚洲精品第一在线观看视频| 国产原创自拍不卡第一页| 色综合热无码热国产| 国产凹凸一区在线观看视频| 538国产在线| 国产精选自拍| 中文字幕精品一区二区三区视频| 国产网友愉拍精品| 久久久久无码国产精品不卡| A级毛片无码久久精品免费| 亚洲中文字幕久久精品无码一区| 久久天天躁狠狠躁夜夜2020一| 国产成人精品一区二区三区| 热re99久久精品国99热| 久久 午夜福利 张柏芝| 亚洲成av人无码综合在线观看| 亚洲无码视频图片| 国产成人亚洲欧美激情| 亚洲一区毛片| 99久久精品免费看国产电影| 国产精品国产三级国产专业不| 久久久久国产精品免费免费不卡| 91麻豆精品国产91久久久久| 亚洲综合一区国产精品| 色AV色 综合网站| 国产综合网站| 99精品国产自在现线观看| 四虎影视库国产精品一区| 国产精品第一区在线观看| 亚洲男人的天堂网| 欧美一区日韩一区中文字幕页| 亚洲综合18p| 无码精品国产dvd在线观看9久| 无码精油按摩潮喷在线播放| 99re热精品视频中文字幕不卡| 成人福利视频网| 日本精品影院| 丰满人妻久久中文字幕| lhav亚洲精品| 亚洲欧美精品一中文字幕| 亚洲一区二区三区国产精华液| 国产微拍一区| 免费欧美一级| 人妻熟妇日韩AV在线播放|