版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
區(qū)塊鏈取證關(guān)鍵技術(shù)研究目
錄摘要引言1計(jì)算機(jī)取證技術(shù)1.1計(jì)算機(jī)取證概念1.2傳統(tǒng)情境下計(jì)算機(jī)取證面臨的難題1.3區(qū)塊鏈取證2區(qū)塊鏈技術(shù)2.1區(qū)塊鏈技術(shù)基本概念2.1.1P2P網(wǎng)絡(luò)2.1.2Merkle樹2.1.3以太坊與智能合約2.1.4共識(shí)機(jī)制2.2密碼學(xué)基礎(chǔ)2.2.1非對(duì)稱密碼體系2.2.2哈希算法2.2.3數(shù)字簽名與時(shí)間戳2.3小結(jié)3區(qū)塊鏈技術(shù)安全威脅分析3.1區(qū)塊鏈犯罪3.2區(qū)塊鏈取證可行性研究3.3區(qū)塊鏈技術(shù)主要安全威脅3.3.1算法安全威脅3.3.2協(xié)議安全威脅3.3.3智能合約安全威脅3.3.4用戶使用安全威脅3.3.5網(wǎng)絡(luò)安全威脅3.4小結(jié)4共識(shí)機(jī)制研究分析及基于DPoS共識(shí)機(jī)制的改進(jìn)方案4.1常見共識(shí)機(jī)制分析4.1.1實(shí)用拜占庭一致性協(xié)議PBTF4.1.2工作量證明共識(shí)機(jī)制PoW4.1.3權(quán)益證明共識(shí)機(jī)制PoS4.1.4代理權(quán)益共識(shí)機(jī)制DPoS4.2基于DPoS共識(shí)機(jī)制的改進(jìn)方案4.3小結(jié)5總結(jié)與展望參考文獻(xiàn)摘要:區(qū)塊鏈取證技術(shù)是區(qū)塊鏈技術(shù)和計(jì)算機(jī)電子取證所交叉結(jié)合的技術(shù),目前關(guān)于互聯(lián)網(wǎng)安全的事件頻頻發(fā)生,其中不乏包括新興的區(qū)塊鏈犯罪。區(qū)塊鏈取證不僅包括區(qū)塊鏈犯罪取證,還包括利用區(qū)塊鏈技術(shù)對(duì)普通電子取證進(jìn)行協(xié)助。在安全威脅這一方面我認(rèn)為,區(qū)塊鏈取證技術(shù)的關(guān)鍵技術(shù)研究就是關(guān)于區(qū)塊鏈中的關(guān)鍵技術(shù)——共識(shí)機(jī)制進(jìn)行研究。本課題從計(jì)算機(jī)取證技術(shù)入手,結(jié)合現(xiàn)下互聯(lián)網(wǎng)發(fā)展過渡到介紹區(qū)塊鏈技術(shù),其中包括區(qū)塊鏈的基本概念及涉及的加密技術(shù)等,從而分析區(qū)塊鏈技術(shù)目前所遭遇的安全威脅,如協(xié)議威脅、算法威脅,最后深入比較當(dāng)前互聯(lián)網(wǎng)中常見的共識(shí)機(jī)制,并根據(jù)DPOS共識(shí)機(jī)制提出一種對(duì)提高安全性有幫助的改進(jìn)方案。關(guān)鍵詞:計(jì)算機(jī)取證區(qū)塊鏈技術(shù)共識(shí)機(jī)制網(wǎng)絡(luò)安全威脅引言計(jì)算機(jī)是20世紀(jì)最偉大的發(fā)明之一,它與人們的生產(chǎn)生活已經(jīng)密不可分。隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,計(jì)算機(jī)犯罪的范圍也迅速擴(kuò)大。區(qū)塊鏈的概念主要源自于2008年,而經(jīng)過多年過去,不法分子已然盯上了這個(gè)新生不久的技術(shù),如何有效打擊區(qū)塊鏈系統(tǒng)犯罪,如何有效結(jié)合計(jì)算機(jī)犯罪與區(qū)塊鏈技術(shù)的應(yīng)用,都是近年來計(jì)算機(jī)行業(yè)安全工作者的研究目標(biāo)。研究區(qū)塊鏈取證的關(guān)鍵技術(shù)就是研究區(qū)塊鏈的關(guān)鍵技術(shù)對(duì)于計(jì)算機(jī)取證的幫助,其中關(guān)鍵要點(diǎn)在于區(qū)塊鏈技術(shù)本身的安全性問題。在區(qū)塊鏈技術(shù)體系中,安全性的根本來源于其對(duì)于共識(shí)機(jī)制的選擇和應(yīng)用。本文將從計(jì)算機(jī)取證出發(fā),延伸至區(qū)塊鏈取證技術(shù),并對(duì)當(dāng)前區(qū)塊鏈技術(shù)受到的安全威脅進(jìn)行分析,研究當(dāng)下常見的共識(shí)機(jī)制,最后提出一個(gè)基于DPOS共識(shí)機(jī)制的改進(jìn)方案,對(duì)共識(shí)機(jī)制、區(qū)塊鏈技術(shù)的安全性有著一定的意義。
1
計(jì)算機(jī)取證計(jì)算機(jī)取證概念計(jì)算機(jī)取證是一門交叉知識(shí)體系所延申的科學(xué),其中包括計(jì)算機(jī)科學(xué)、取證科學(xué)和行為證據(jù)的分析。目前,仍然未有權(quán)威的機(jī)構(gòu)能對(duì)其做出一個(gè)明確、完整的標(biāo)準(zhǔn)定義。因此,綜合計(jì)算機(jī)取證專家JuddRobbins所給出的定義,及計(jì)算機(jī)緊急事件響應(yīng)組CERT、取證咨詢公司NTI(NewTechnologiesIncorporated)對(duì)其拓寬的解釋,我們通常這么認(rèn)為:計(jì)算機(jī)取證是運(yùn)用計(jì)算機(jī)及其相關(guān)科學(xué)和技術(shù)的原理與方法,獲取與計(jì)算機(jī)相關(guān)的證據(jù),以證明某個(gè)客觀事實(shí)的過程。它包括證據(jù)的確定、收集、保護(hù)、分析、歸檔以及法庭出示。REF_Ref71189167\n\h[1]傳統(tǒng)情境下計(jì)算機(jī)取證遇到的難題計(jì)算機(jī)技術(shù)當(dāng)下以高速姿態(tài)穩(wěn)定發(fā)展中,互聯(lián)網(wǎng)因此漸漸融入了社會(huì)各層次領(lǐng)域,當(dāng)先進(jìn)的互聯(lián)網(wǎng)科技為現(xiàn)代生活帶來便利的同時(shí),依托于互聯(lián)網(wǎng)的犯罪也悄悄隨之潛入其中。目前,司法訴訟的過程中越來越多的證據(jù)以電子證據(jù)的形式出現(xiàn),和傳統(tǒng)證據(jù)具有相同特性的是:電子證據(jù)也必須是完整的、準(zhǔn)確的、在整個(gè)訴訟過程中能被法官、法庭所接受的。而兩者不同的地方在于計(jì)算機(jī)證據(jù)有許多較為特別的新特性:計(jì)算機(jī)證據(jù)普遍脆弱且容易消逝,具有較高的精密度。計(jì)算機(jī)證據(jù)具有較強(qiáng)的隱蔽性計(jì)算機(jī)證據(jù)具有多媒性計(jì)算機(jī)證據(jù)不僅能夠更迅速地被收集、方便保存,并且計(jì)算機(jī)爭(zhēng)取其占用的空間少,計(jì)算機(jī)證據(jù)傳送運(yùn)輸方式通常容量更大,傳送運(yùn)輸會(huì)更加方便。計(jì)算機(jī)證據(jù)在取證過程中還可以反復(fù)重現(xiàn)或使用。計(jì)算機(jī)證據(jù)相關(guān)數(shù)據(jù)具有一定的“揮發(fā)性”,即各類數(shù)據(jù)根據(jù)硬件或所處位置的不同,“存活”時(shí)間也不同。如處于高速緩沖存儲(chǔ)器中的CPU數(shù)據(jù)僅存放數(shù)個(gè)時(shí)鐘周期計(jì)算機(jī)證據(jù)在司法界的出現(xiàn)為司法證明給帶來了全新的進(jìn)步,但是,由于計(jì)算機(jī)證據(jù)所具備的這些的特殊性質(zhì),對(duì)傳統(tǒng)證據(jù)規(guī)則也帶來了新的挑戰(zhàn)。計(jì)算機(jī)證據(jù)在司法認(rèn)定的角度其真實(shí)性、合法性、合理性、關(guān)聯(lián)性的認(rèn)定難度都大幅提升。與傳統(tǒng)的電子證據(jù)公證的流程相比較,其過程會(huì)更復(fù)雜而且成本也會(huì)隨之升高。電子證據(jù)存在易變更、易消失的特點(diǎn),有可能在證據(jù)保存流程時(shí)間內(nèi),證據(jù)就已經(jīng)消失。所以,在原有的工作方式下,不難發(fā)現(xiàn)傳統(tǒng)的取證有以下四個(gè)痛點(diǎn):取證方式成本過高,需要專業(yè)人員協(xié)助完成;傳統(tǒng)的取證方式費(fèi)力、耗時(shí),浪費(fèi)人力資源,又不方便;效率低,取證后數(shù)字文件處理起來麻煩,花費(fèi)時(shí)間也較長(zhǎng);證據(jù)的提交和使用麻煩,證據(jù)在遞交過程中容易污染,降低了法律效力。綜合以上四點(diǎn),使得取證機(jī)構(gòu)和人員在取證業(yè)務(wù)上成本高昂,耗費(fèi)了大量精力,降低了人員的工作效率。我國(guó)正處于從IT(InternetTechnology,互聯(lián)網(wǎng)技術(shù))慢慢過渡到DT(DataTechnology,數(shù)據(jù)處理技術(shù))的階段,電子數(shù)據(jù)取證慢慢進(jìn)入到人們的視野。電子數(shù)據(jù)取證技術(shù)對(duì)侵入、干擾、攻擊、毀壞計(jì)算機(jī)數(shù)據(jù)等違法操作進(jìn)行數(shù)據(jù)資料收集、儲(chǔ)存、觀察和得出結(jié)論,作為一種打擊追究計(jì)算機(jī)網(wǎng)絡(luò)犯罪的很關(guān)鍵的取證方法,其收集數(shù)據(jù)較為集中,對(duì)數(shù)據(jù)的控制力強(qiáng),并且取證人員容易采集、儲(chǔ)存,但在當(dāng)前大數(shù)據(jù)時(shí)代背景下,電子數(shù)據(jù)取證技術(shù)依然面臨著許多威脅與挑戰(zhàn)。傳統(tǒng)的電子取證方式一般是對(duì)固定的設(shè)備、目標(biāo)資料進(jìn)行證據(jù)的采集整理,目前已經(jīng)無法順應(yīng)大數(shù)據(jù)快速發(fā)展的節(jié)奏。區(qū)塊鏈技術(shù)的興起使得云端存儲(chǔ)的數(shù)據(jù)更具隱秘性,更無法輕易捕捉到非法信息,而且在分布式的網(wǎng)絡(luò)系統(tǒng)中不僅要對(duì)數(shù)據(jù)目標(biāo)進(jìn)行提取,甚至還包括了鏈上一些服務(wù)提供者的信息,這導(dǎo)致環(huán)境與之前大相徑庭。相比傳統(tǒng)模式的取證,區(qū)塊鏈取證的環(huán)境復(fù)雜度要大幅提高。1.3
區(qū)塊鏈取證智能終端和移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展慢慢影響著整個(gè)社會(huì),數(shù)據(jù)和數(shù)據(jù)處理能力成為企業(yè)在新的市場(chǎng)環(huán)境中生存發(fā)展的關(guān)鍵區(qū)塊鏈技術(shù)的興起無疑讓電子數(shù)據(jù)取證難度上升了一個(gè)層次。犯罪分子利用區(qū)塊鏈技術(shù)去中心化、去信任化、用戶匿名性等特性進(jìn)行了一系列區(qū)塊鏈犯罪,其中包括了對(duì)數(shù)字貨幣資產(chǎn)的敲詐欺騙、非法信息的傳播、或是對(duì)網(wǎng)絡(luò)、計(jì)算機(jī)系統(tǒng)的攻擊等等。由于區(qū)塊鏈技術(shù)的特殊性,執(zhí)法人員有時(shí)很難對(duì)犯罪行為有效地進(jìn)行打擊。方法總比問題多,區(qū)塊鏈技術(shù)的特性同時(shí)也能夠很好地利用在電子取證技術(shù)上,由于區(qū)塊鏈技術(shù)本質(zhì)仍是一項(xiàng)隱私保護(hù)功能強(qiáng)、系統(tǒng)安全性高的可溯源監(jiān)管技術(shù),這些特點(diǎn)都特別適合保護(hù)使用者的隱私,或是用戶存儲(chǔ)重要的隱私數(shù)據(jù)。區(qū)塊鏈技術(shù)能有效避免因權(quán)限管理不當(dāng)或中心機(jī)構(gòu)遭受黑客攻擊,從而預(yù)防不良行為造成大規(guī)模的數(shù)據(jù)泄露或丟失。本文將對(duì)區(qū)塊鏈技術(shù)及區(qū)塊鏈所遭遇的安全威脅進(jìn)行關(guān)鍵深入分析,并提出一種基于DPOS共識(shí)機(jī)制的改進(jìn)方案,為區(qū)塊鏈取證、區(qū)塊鏈領(lǐng)域安全提出發(fā)展新方向。
2
區(qū)塊鏈技術(shù)2.1
區(qū)塊鏈技術(shù)體系2.1.1
區(qū)塊鏈基本概念
區(qū)塊鏈技術(shù)體系主要時(shí)由分布式存儲(chǔ)系統(tǒng)、點(diǎn)對(duì)點(diǎn)傳輸網(wǎng)絡(luò)、共識(shí)機(jī)制、加密算法等組合而成。區(qū)塊鏈技術(shù)的核心價(jià)值是實(shí)現(xiàn)去中心化、去信任化,同時(shí)能夠達(dá)到可追溯性監(jiān)管,要保障系統(tǒng)中數(shù)據(jù)的一致性和可靠性,即從技術(shù)的角度解決來計(jì)算機(jī)層面的信任問題。區(qū)塊鏈在本質(zhì)上是一種分布式記賬的數(shù)據(jù)庫(kù)。區(qū)塊鏈成立的基礎(chǔ)是由大量的節(jié)點(diǎn)相互聯(lián)結(jié)形成的區(qū)塊鏈網(wǎng)絡(luò),與傳統(tǒng)的中心化服務(wù)器不同的是,在區(qū)塊鏈網(wǎng)絡(luò)中并不存在中心節(jié)點(diǎn)。去中心化,就是沒有中心,分布式狀態(tài)存儲(chǔ)各個(gè)信息,各個(gè)分布的節(jié)點(diǎn)之間相互監(jiān)督,共同管理,彼此獨(dú)立。凡在同一區(qū)塊鏈網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)均為相互平等相互信任的關(guān)系,每一個(gè)節(jié)點(diǎn)上都保存著完整的區(qū)塊鏈信息,對(duì)任意節(jié)點(diǎn)中的信息進(jìn)行添加或修改等改動(dòng)會(huì)立刻同步到其它每一個(gè)節(jié)點(diǎn)來確保區(qū)塊鏈的一致性。 圖2-1中心化與去中心化對(duì)比圖在區(qū)塊鏈中,數(shù)據(jù)以區(qū)塊(block)的方式生成和儲(chǔ)存。區(qū)塊與區(qū)塊之間會(huì)按照時(shí)間順序銜接成鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)。其中,區(qū)塊由區(qū)塊頭與區(qū)塊體組成。區(qū)塊元數(shù)據(jù)記錄就存放在區(qū)塊頭內(nèi),區(qū)塊頭包含了版本號(hào)、前一區(qū)塊地址、目標(biāo)哈希值、Merkle根等數(shù)據(jù);而區(qū)塊體中則存放了具體的數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)為Merkle樹,由葉子節(jié)點(diǎn)記錄數(shù)據(jù),要注意的是,非葉子節(jié)點(diǎn)的值不是具體數(shù)據(jù),而為所有葉子節(jié)點(diǎn)數(shù)據(jù)的哈希值。這樣子的結(jié)構(gòu)體系降低了區(qū)塊容量,便于區(qū)塊同步和備份。當(dāng)某個(gè)區(qū)塊的值發(fā)生變化,會(huì)造成整個(gè)區(qū)塊鏈發(fā)生變化。也就是說,當(dāng)某一節(jié)點(diǎn)發(fā)生交易時(shí),其他所有節(jié)點(diǎn)都可參與該筆交易的響應(yīng)和記錄,這筆交易的記錄信息便是一個(gè)區(qū)塊,其中除了包含交易本身,還會(huì)包含前一區(qū)塊所包含信息經(jīng)加密計(jì)算得出的哈希值,通過這樣的方式與前一區(qū)塊“扣”在一起,這樣以時(shí)間順序?yàn)榫€形成的區(qū)塊在鏈的作用下前后相接、環(huán)環(huán)相扣,最終共同構(gòu)成了區(qū)塊鏈。圖2-2區(qū)塊鏈結(jié)構(gòu)圖按照參與方式進(jìn)行分類,目前我們將區(qū)塊鏈分為三種主要網(wǎng)絡(luò)結(jié)構(gòu)類型。公有區(qū)塊鏈:鏈上的節(jié)點(diǎn)能夠自由加入或退出網(wǎng)絡(luò),沒有什么限制,屬于完全的去中心化,聯(lián)盟區(qū)塊鏈:對(duì)于特定某些群體的成員和其有限的第三方成立,也就是說,聯(lián)盟鏈只有部分去中心化,私有區(qū)塊鏈:被認(rèn)為是一個(gè)封閉的群體,私有鏈隱私性更強(qiáng),通常是集中化的,適用于特定機(jī)構(gòu)的內(nèi)部數(shù)據(jù)管理。此外,不同類型的區(qū)塊鏈間還能形成網(wǎng)絡(luò),鏈與鏈在網(wǎng)絡(luò)中達(dá)成互聯(lián)互通,變成互聯(lián)鏈。
2.1.2
P2P網(wǎng)絡(luò)
P2P網(wǎng)絡(luò)即對(duì)等網(wǎng)絡(luò)技術(shù),在對(duì)等網(wǎng)絡(luò)技術(shù)中,幫助達(dá)成節(jié)點(diǎn)間通信的協(xié)議是——UDP協(xié)議。P2P網(wǎng)絡(luò)技術(shù)使用UDP協(xié)議的好處在于,節(jié)點(diǎn)與節(jié)點(diǎn)之間并不需要連接,也不需要經(jīng)過中間實(shí)體,就能夠?qū)崿F(xiàn)點(diǎn)對(duì)點(diǎn)通信。在這種通信方式下,用戶資源以最直接有效、最快捷的方式進(jìn)行著傳輸,并且節(jié)點(diǎn)間實(shí)現(xiàn)了雙向流通。P2P網(wǎng)絡(luò)的通信原理如下圖所示:參與網(wǎng)絡(luò)的這每個(gè)節(jié)點(diǎn)都各自擁有硬件資源(如存儲(chǔ)空間、計(jì)算能力等),而它們?cè)赑2P網(wǎng)絡(luò)的協(xié)助下共享這各自的部分資源。為了實(shí)現(xiàn)客戶端和服務(wù)器端的雙向效應(yīng),在節(jié)點(diǎn)需要訪問操作的時(shí)候,P2P網(wǎng)絡(luò)技術(shù)共享資源所提供的服務(wù)便利,使得節(jié)點(diǎn)可以繞開服務(wù)器中心化控制的麻煩之處。值得一提的是,加入到整個(gè)P2P網(wǎng)絡(luò)中的有效節(jié)點(diǎn)越來越多,會(huì)是網(wǎng)絡(luò)的服務(wù)質(zhì)量隨之提高。這是因?yàn)楣?jié)點(diǎn)自身有一定的存儲(chǔ)能力或計(jì)算能力,加入至對(duì)等網(wǎng)絡(luò)后這些能力資源對(duì)其他節(jié)點(diǎn)開放了共享。P2P網(wǎng)絡(luò)技術(shù)是分布式概念的成功拓展,這一技術(shù)將傳統(tǒng)方式下服務(wù)器的負(fù)擔(dān)壓力分配到了各個(gè)節(jié)點(diǎn)。圖2-3P2P網(wǎng)絡(luò)圖2.1.3
MerkleTreeMerkleTree也被稱為HashTree。由計(jì)算機(jī)學(xué)家RalphMerkle所提出,是一種用于存儲(chǔ)hash值的二叉樹(或多叉樹)。Merkle樹的組成元素有:由hash值組成的葉子節(jié)點(diǎn)、中間節(jié)點(diǎn)以及根節(jié)點(diǎn)。在Merkle樹中,底下的葉子節(jié)點(diǎn)存儲(chǔ)區(qū)塊數(shù)據(jù)的數(shù)字摘要,中間層非葉子節(jié)點(diǎn)的哈希值由兩個(gè)葉子節(jié)點(diǎn)相連接后計(jì)算哈希值得到,最頂層根節(jié)點(diǎn)記錄著代表對(duì)底層所有數(shù)據(jù)的“摘要”,數(shù)據(jù)最終就是比較根節(jié)點(diǎn)的摘要值是否相同。Merkle樹的優(yōu)點(diǎn)在于具有很強(qiáng)的防止數(shù)據(jù)被篡改的能力,任何對(duì)底層數(shù)據(jù)的變動(dòng)都會(huì)影響上層節(jié)點(diǎn)數(shù)據(jù)數(shù)字摘要的值,任意一個(gè)區(qū)塊的數(shù)據(jù)內(nèi)容哪怕只發(fā)生了一個(gè)字節(jié)的改變,經(jīng)過Merkle樹的運(yùn)算都會(huì)導(dǎo)致最終TopHash的不同,從而致使驗(yàn)證等操作的結(jié)果不一。區(qū)塊鏈技術(shù)利用了Merkle樹根節(jié)點(diǎn)哈希值的唯一性以及穩(wěn)定正確性,為區(qū)塊鏈上的區(qū)塊屬性信息提供了可靠和安全的保障,有效保證了區(qū)塊鏈“不可篡改”的特性。圖2-4MerkleTree結(jié)構(gòu)圖上文已經(jīng)提到,每個(gè)區(qū)塊由兩個(gè)部分組成,分別是區(qū)塊頭和區(qū)塊體。其中,區(qū)塊頭中包括父塊區(qū)塊hash值、時(shí)間戳、隨機(jī)數(shù)、難度值、Merkle樹的根節(jié)點(diǎn)等,而區(qū)塊體則包括了這個(gè)區(qū)塊中所有交易記錄信息。圖2-5區(qū)塊頭與區(qū)塊體根據(jù)Merkle樹的結(jié)構(gòu)結(jié)合區(qū)塊鏈,其原理是不需要計(jì)算所有底層數(shù)據(jù)的數(shù)字摘要只提供一部分路徑上的數(shù)字摘要,然后比較需要進(jìn)行數(shù)字校驗(yàn)的兩個(gè)數(shù)據(jù)的Merkle樹根節(jié)點(diǎn)值,如果Merkle根節(jié)點(diǎn)的值相同,根據(jù)根節(jié)點(diǎn)的定義說明這兩個(gè)數(shù)據(jù)也相同;如果通過比較數(shù)字摘要,發(fā)現(xiàn)兩個(gè)數(shù)據(jù)的根節(jié)點(diǎn)值不符合預(yù)期,說明校驗(yàn)失敗,此時(shí)將需要按照自頂向下的順序,從根節(jié)點(diǎn)開始逐一進(jìn)行遍歷與比較。這樣做的目的是為了能迅速找到具體是位于哪一個(gè)葉子節(jié)點(diǎn)處,數(shù)據(jù)開始出現(xiàn)了分歧,操作的時(shí)間復(fù)雜度在理論上為O(lg(n))。Merkle樹的特性使其在處理實(shí)際應(yīng)用場(chǎng)景的比對(duì)或者驗(yàn)證時(shí)能發(fā)揮較大的作用,能極大地減輕數(shù)據(jù)的傳輸量以及計(jì)算的復(fù)雜度。2.1.3
以太坊與智能合約以太坊(Ethereum)是一個(gè)區(qū)塊鏈技術(shù)體系中的開源開發(fā)平臺(tái),以太坊技術(shù)為智能合約提供編程功能。在以太坊中,其與智能合約相結(jié)合,可以處理點(diǎn)對(duì)點(diǎn)合約。它提供一個(gè)圖靈完備的對(duì)開發(fā)者友好的編程環(huán)境,為了通過各式各樣的智能合約來實(shí)現(xiàn)去中心化應(yīng)用程序,以太坊允許所有用戶在鏈上輕松便捷地構(gòu)建應(yīng)用程序。目前有數(shù)據(jù)顯示,基于以太坊技術(shù)的區(qū)塊鏈項(xiàng)目甚至占據(jù)62%左右。以太坊這一平臺(tái)對(duì)于增強(qiáng)區(qū)塊鏈體系的靈活性有著不容忽視的功勞,使區(qū)塊鏈系統(tǒng)能夠面向更為復(fù)雜或靈活的應(yīng)用場(chǎng)景。以太坊平臺(tái)不僅為區(qū)塊鏈開發(fā)與應(yīng)用提供了底層的技術(shù)支持,也促進(jìn)了新問題的發(fā)現(xiàn)與研究。智能合約(SmartContracts)是定位于以太坊其中一個(gè)特定地址上的代碼及數(shù)據(jù)的集合。智能合約能夠接受來自外部的交易請(qǐng)求和事件,使設(shè)備于不受干擾的環(huán)境下自動(dòng)執(zhí)行各種交易,并通過運(yùn)行提前編寫好的代碼邏輯進(jìn)一步產(chǎn)生新的交易和時(shí)間,最主要是,智能合約還能解決其身份認(rèn)證問題,是一種以信息化方式傳播、驗(yàn)證或執(zhí)行合同的計(jì)算機(jī)協(xié)議。在以太坊內(nèi),任何用戶都可以調(diào)用部署成功的智能合約進(jìn)行交易。圖2-6智能合約模型2.1.4
共識(shí)機(jī)制共識(shí)機(jī)制,是為了使區(qū)塊鏈系統(tǒng)中的各個(gè)節(jié)點(diǎn)間能達(dá)成一致性共識(shí)而采用的機(jī)制。在分布式系統(tǒng)中,一個(gè)網(wǎng)絡(luò)集群是由多個(gè)節(jié)點(diǎn)通過異步通信而形成的,而一致性保障則是分布式系統(tǒng)所要面臨的首要問題,換句話說,就是要確保數(shù)據(jù)的安全和同步。如果無法保障處理結(jié)果的一致性,那么在異步通信的網(wǎng)絡(luò)中就可能會(huì)出現(xiàn)主機(jī)故障、性能降低、網(wǎng)絡(luò)擁塞等問題,這些都可能導(dǎo)致錯(cuò)誤信息傳播,對(duì)于整個(gè)系統(tǒng)而言這將是毀滅性的打擊。對(duì)于這些問題我們通常需要定義一個(gè)容錯(cuò)規(guī)則,以解決分布式系統(tǒng)中的傳輸過程數(shù)據(jù)丟失、單點(diǎn)故障、節(jié)點(diǎn)間信息確認(rèn)不對(duì)稱,以此確保所有主機(jī)節(jié)點(diǎn)之間能夠達(dá)成安全可靠的共識(shí)狀態(tài),這樣的容錯(cuò)規(guī)則就是共識(shí)機(jī)制。目前常見的共識(shí)機(jī)制有以下幾種:拜占庭容錯(cuò)算法(PBFT)、工作量證明共識(shí)機(jī)制(PoW),權(quán)益證明共識(shí)機(jī)制(PoS),以及委托權(quán)益證明共識(shí)機(jī)制(DPoS)等。拜占庭容錯(cuò)算法是基于拜占庭問題而產(chǎn)生的共識(shí)算法。PBFT算法是指,機(jī)制可以容忍整個(gè)網(wǎng)絡(luò)系統(tǒng)中擁有不超過總節(jié)點(diǎn)數(shù)額三分之一的異常節(jié)點(diǎn),也成為“拜占庭節(jié)點(diǎn)”。換句話說,整個(gè)系統(tǒng)能夠正常運(yùn)行是因?yàn)檫€有超過三分之二的正常節(jié)點(diǎn)在維持,可以對(duì)不超過三分之一的異常節(jié)點(diǎn)提供的性能進(jìn)行“拋棄”。工作量證明POW共識(shí)機(jī)制的基本思路是,系統(tǒng)是根據(jù)節(jié)點(diǎn)的工作量來分配節(jié)點(diǎn)記賬權(quán),而節(jié)點(diǎn)會(huì)先通過提交自身通過計(jì)算獲得的工作量證明向全網(wǎng)中其他參與節(jié)點(diǎn)廣播。這要求網(wǎng)絡(luò)中的節(jié)點(diǎn)花費(fèi)一定資源來進(jìn)行計(jì)算操作。權(quán)益證明POS共識(shí)機(jī)制相當(dāng)類似于現(xiàn)實(shí)社會(huì)中的股權(quán)制度,系統(tǒng)節(jié)點(diǎn)中擁有股權(quán)越多時(shí)間越長(zhǎng)的節(jié)點(diǎn)就越容易獲得記賬權(quán)。而委托權(quán)益證明共識(shí)機(jī)制(DPoS)則是PoS的一種改進(jìn)算法,通過票選董事會(huì)代表,由董事會(huì)成員輪流進(jìn)行代理記賬。共識(shí)機(jī)制是區(qū)塊鏈技術(shù)中的重要技術(shù),同時(shí)也是目前區(qū)塊鏈安全的重點(diǎn)問題所在,選用合適的共識(shí)機(jī)制是對(duì)區(qū)塊鏈系統(tǒng)高效運(yùn)行和安全運(yùn)行的有力保障。本文將在后續(xù)章節(jié)再對(duì)目前常見的共識(shí)機(jī)制詳細(xì)分析,以及常見共識(shí)機(jī)制之間安全性、有效性等特點(diǎn)進(jìn)行更深入的比較。2.2
區(qū)塊鏈技術(shù)密碼學(xué)基礎(chǔ)2.2.1
非對(duì)稱加密技術(shù)密碼學(xué)中的數(shù)字加密技術(shù)是區(qū)塊鏈應(yīng)用開發(fā)的關(guān)鍵。在密碼學(xué)理論體系中,加密技術(shù)通常可以分類為對(duì)稱加密及非對(duì)稱加密兩種類型。而區(qū)塊鏈系統(tǒng)中則主要采用非對(duì)稱加密技術(shù)來保障區(qū)塊鏈系統(tǒng)安全性。在數(shù)學(xué)難題的基礎(chǔ)上,根據(jù)密碼學(xué)原理計(jì)算出的一對(duì)密鑰分別稱之為公開密鑰,簡(jiǎn)稱公鑰,和私有密鑰,簡(jiǎn)稱私鑰。在一次完整的加解密過程中既需要公鑰也需要私鑰的參與,我們稱這種公、私鑰不相同的算法為非對(duì)稱加密算法。在非對(duì)稱加密技術(shù)體系里,加密的一方使用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么解密操作只有使用與之相對(duì)應(yīng)的密鑰才能做到,反之亦然。舉個(gè)例子,在比特幣系統(tǒng)中,就可以通過橢圓曲線加密算法“Secp256k1”對(duì)256位隨機(jī)數(shù)進(jìn)行運(yùn)算,最終得到相對(duì)應(yīng)的非對(duì)稱值,并基于公鑰轉(zhuǎn)換生成比特幣交易所用的地址。2.2.2
哈希算法哈希算法(HashAlgorithm)又稱為散列算法,在計(jì)算機(jī)技術(shù)領(lǐng)域中是基礎(chǔ)卻又無比重要的技術(shù),同時(shí),哈希算法也是計(jì)算機(jī)取證中必不可少的手段。哈希算法的原理是通過計(jì)算獲得一個(gè)較短的Hash值(也成為數(shù)字摘要),這個(gè)Hash值是通過映射把一段比較長(zhǎng)的二進(jìn)制明文映射為一段較短的二進(jìn)制值而得來。兩段明文運(yùn)用哈希算法進(jìn)行運(yùn)算時(shí),它們之間的差異哪怕只有一個(gè)字節(jié),那么在運(yùn)算之后得到的結(jié)果也是完全不一樣的。這也就是說,不同明文不會(huì)映射出相同的Hash值。在哈希算法的用途里,數(shù)字摘要是最重要的一個(gè)。它有效地解決了數(shù)字篡改問題,并保證了信息的完整性。哈希算法有以下幾個(gè)特點(diǎn):2.2.3
數(shù)字簽名與時(shí)間戳數(shù)字簽名(DigitalSignature)技術(shù)是一種認(rèn)證機(jī)制,它是結(jié)合了非對(duì)稱加密技術(shù)以及數(shù)字摘要技術(shù),以此來鑒別數(shù)據(jù)來源真實(shí)性和數(shù)據(jù)完整性的優(yōu)良方法。數(shù)字簽名的具體原理是消息的發(fā)送方在傳送消息時(shí),會(huì)在發(fā)送的消息中添加一個(gè)別人無法偽造的簽名信息,當(dāng)消息的接受方收到這條消息后,會(huì)立即對(duì)上述信息進(jìn)行確認(rèn),消息的接受放對(duì)消息的發(fā)送者發(fā)送的信息以及發(fā)送方身份的真實(shí)性進(jìn)行合理驗(yàn)證。數(shù)字簽名類似在紙上的筆跡簽名,其特殊之處在于數(shù)字簽名運(yùn)為了保證有效隱秘性而使用了非對(duì)稱加密技術(shù)中的公私鑰添加信息,對(duì)發(fā)送方而言更具權(quán)威性也更具安全性。數(shù)字簽名作為區(qū)塊鏈技術(shù)去信任化特性的有效技術(shù)支持,令區(qū)塊鏈技術(shù)的去信任化特性得以完善,區(qū)塊鏈技術(shù)體系中的比特幣等數(shù)字資產(chǎn)在數(shù)字簽名強(qiáng)大的隱私保護(hù)作用下才能以匿名的條件順利完成交易。下圖是數(shù)字簽名的詳細(xì)流程,圖2-數(shù)字簽名流程圖時(shí)間戳,它是一種特殊的數(shù)據(jù)類型,可唯一地標(biāo)識(shí)某一時(shí)刻的時(shí)間,它是起源于Unix系統(tǒng)的時(shí)間表示方式。時(shí)間戳結(jié)合了權(quán)威時(shí)間源與數(shù)字簽名技術(shù),添加了時(shí)間戳之后,通過時(shí)間戳能表明這份數(shù)據(jù)在過去的某個(gè)時(shí)間點(diǎn)已經(jīng)存在,具有真實(shí)性,并且是完整的,可驗(yàn)證的。以下是時(shí)間戳產(chǎn)生的過程:首先,利用Hash算法,計(jì)算出用戶想要添加時(shí)間戳的數(shù)字文件的數(shù)字摘要,隨后將該數(shù)字摘要發(fā)送至第三方時(shí)間戳服務(wù)機(jī)構(gòu)(即,TSA)。TSA在添加了收到此數(shù)字摘要的日期和時(shí)間之后,確??尚哦龋瑢?duì)其進(jìn)行數(shù)字簽名,最后將生成一份數(shù)字時(shí)間戳文件(*.tsa)發(fā)送給用戶。圖2-8時(shí)間戳的添加區(qū)塊鏈正是采用了時(shí)間戳機(jī)制,使每個(gè)區(qū)塊都包含時(shí)間戳字段,從而保障區(qū)塊的鏈?zhǔn)浇Y(jié)構(gòu)。區(qū)塊鏈中的數(shù)據(jù)區(qū)塊按時(shí)間戳排列,由區(qū)塊頭指針連接成鏈?zhǔn)浇Y(jié)構(gòu),保障了區(qū)塊鏈技術(shù)的“可溯源”特性,讓區(qū)塊鏈上的數(shù)據(jù)信息有跡可循。3
安全威脅分析3.1
常見區(qū)塊鏈犯罪雖然區(qū)塊鏈技術(shù)是2008年被提出,但是將近2016年才在國(guó)內(nèi)興起,各個(gè)領(lǐng)域無一不想接觸這一門新的技術(shù)發(fā)展出創(chuàng)新優(yōu)勢(shì)。隨著區(qū)塊鏈技術(shù)的發(fā)展,與之相關(guān)的犯罪也被結(jié)合了起來,截止到目前,區(qū)塊鏈相關(guān)犯罪已數(shù)不勝數(shù),下面介紹一下與區(qū)塊鏈相關(guān)的犯罪現(xiàn)象。區(qū)塊鏈詐騙介紹一下在區(qū)塊鏈技術(shù)體系中的“幣圈”。幣圈顧名思義就是虛擬貨幣的圈子,區(qū)塊鏈系統(tǒng)內(nèi)的虛擬貨幣可以類似對(duì)比股票投資,但價(jià)格更加飄忽不定。由于區(qū)塊鏈系統(tǒng)特殊的特性,有的人會(huì)誘導(dǎo)無知的群眾購(gòu)買他們發(fā)行的“山寨幣”(或“空氣幣”),但實(shí)際上這樣的項(xiàng)目并沒有實(shí)際的價(jià)值和意義,是對(duì)“區(qū)塊鏈技術(shù)”的誤導(dǎo)和有意曲解,人們買了這些沒有價(jià)值的虛擬貨幣之后,看著并不存在的幣值上漲以為自己賺了,但這時(shí)發(fā)行者就會(huì)想盡辦法卷走資金,逃離市場(chǎng)。說到底,這還是一種披著區(qū)塊鏈技術(shù)外皮的單純性詐騙行為。或與上述詐騙情況類似的,在金融界也有著虛擬貨幣相關(guān)的區(qū)塊鏈犯罪,許多平臺(tái)假借P2P網(wǎng)絡(luò)的名義為自身融資,它們發(fā)布的債權(quán)轉(zhuǎn)讓全都是虛假不存在的,以虛擬貨幣、區(qū)塊鏈貨幣等為噱頭,在金融界造成的危害逐年增加。黑客攻擊黑客攻擊一直是計(jì)算機(jī)領(lǐng)域的重點(diǎn)安全問題,在區(qū)塊鏈技術(shù)發(fā)展起來之后,這也為黑客攻擊提供了一定的便利。傳統(tǒng)方式下的黑客攻擊會(huì)在攻擊過程中留下對(duì)數(shù)據(jù)、對(duì)系統(tǒng)或?qū)W(wǎng)絡(luò)的攻擊痕跡,而區(qū)塊鏈技術(shù)的特殊性質(zhì)可以幫助黑客利用區(qū)塊鏈域名服務(wù)器隱藏這一行為軌跡,從而使黑客造成算法、協(xié)議、系統(tǒng)等方面的安全威脅。傳統(tǒng)DNS是由中央授權(quán)機(jī)構(gòu)控制的,而區(qū)塊鏈域名服務(wù)器是基于區(qū)塊鏈技術(shù)分布式的特性的分布式DNS,其頂級(jí)域名并不受中央機(jī)構(gòu)控制,這樣一來,無法通過域名查詢到背后的攻擊者,導(dǎo)致了區(qū)塊鏈犯罪取證的難度增加。不良信息行業(yè) 不良信息行業(yè)通常會(huì)通過一些不良網(wǎng)頁(yè)或不良視頻來傳播線上線下不良信息。區(qū)塊鏈技術(shù)具有永久儲(chǔ)存的特性,當(dāng)不良信息侵入?yún)^(qū)塊鏈系統(tǒng)時(shí),便會(huì)存儲(chǔ)區(qū)塊鏈中,相關(guān)網(wǎng)絡(luò)執(zhí)法人員就很難將這些信息的原始數(shù)據(jù)消除,對(duì)整個(gè)社會(huì)帶來的影響是不可預(yù)估。并且因?yàn)閰^(qū)塊鏈技術(shù)的匿名性,讓背后的始作俑者被繩之以法也要花費(fèi)執(zhí)法人員很大的功夫。3.2
區(qū)塊鏈取證的可行性目前區(qū)塊鏈取證的難點(diǎn)有很多,但是凡事利弊共存,不法分子利用的區(qū)塊鏈特性也能變?yōu)榧夹g(shù)人員反制的手段,目前關(guān)于計(jì)算機(jī)取證也可以用上區(qū)塊鏈技術(shù)進(jìn)行協(xié)助。下面分為三個(gè)特性來對(duì)區(qū)塊鏈取證的可行性進(jìn)行探討。不可篡改特性在計(jì)算機(jī)取證的過程中,首要目標(biāo)是確保數(shù)據(jù)完整性,而區(qū)塊鏈具有不可篡改的特性使得在區(qū)塊鏈上的數(shù)據(jù)不會(huì)被輕易修改,數(shù)據(jù)完整性得以保證,大大減輕了取證人員的負(fù)擔(dān)和取證難易度。可溯源特性取證過程中計(jì)算機(jī)證據(jù)必須保證是具有連續(xù)性的,從證據(jù)獲取的最初狀態(tài)到進(jìn)入法庭都必須沒有發(fā)生任何變化。在區(qū)塊鏈中,時(shí)間戳技術(shù)保證了區(qū)塊是按順序產(chǎn)生,區(qū)塊鏈的這一特點(diǎn)讓區(qū)塊數(shù)據(jù)具有可溯源性,從而保證了取證人員獲取區(qū)塊信息是是完整且連續(xù)的。區(qū)塊鏈技術(shù)的可溯源特性讓區(qū)塊鏈取證技術(shù)得到了更有力度的幫助。永久存儲(chǔ)特性以上述兩點(diǎn)特性都成立的情景下,區(qū)塊鏈還擁有永久儲(chǔ)存的特性。舉個(gè)例子,在以太坊中的智能合約,用戶如果想要通過智能合約刪除某一信息,這一舉動(dòng)并不會(huì)刪除之前儲(chǔ)存該數(shù)據(jù)的交易,而是新添加一筆交易來表明用戶刪除了這一數(shù)據(jù),換句話說,信息只會(huì)增加不會(huì)減少。永久存儲(chǔ)的特性使得取證人員無需擔(dān)心數(shù)據(jù)會(huì)被消除,從而讓區(qū)塊鏈取證的可行性進(jìn)一步提升。3.3
區(qū)塊鏈主要安全威脅區(qū)塊鏈與犯罪結(jié)合事件層出不窮,不法分子越是猖狂區(qū)塊鏈取證就顯得更加重要。區(qū)塊鏈取證發(fā)展至今仍存在著一些安全威脅問題,只有深入地研究分析這些安全威脅問題并想辦法加以解決,才會(huì)讓區(qū)塊鏈取證技術(shù)發(fā)展得更為成熟。在本節(jié)中,我們將針對(duì)區(qū)塊鏈存在的安全問題以及攻擊威脅開展分析,主要圍繞以下幾個(gè)方面:3.3.1
算法安全威脅區(qū)塊鏈技術(shù)的底層已經(jīng)采用了密碼學(xué)算法的許多機(jī)制,在比特幣系統(tǒng)中常用SHA256、RIPEMD160哈希算法等,而以太坊平臺(tái)也采用了Kec-cak256哈希算法和橢圓曲線算法等等。除了上述這兩個(gè)例子,其他區(qū)塊鏈系統(tǒng)為了確保自身的安全性,也會(huì)利用一些加密手段或者是數(shù)字簽名的變形應(yīng)用來降低威脅風(fēng)險(xiǎn)。安全并不是絕對(duì)的,目前來看主要有兩個(gè)方面的安全挑戰(zhàn):哈希算法方面前文介紹了哈希算法的碰撞原理,如果哈希算法中存在碰撞的漏洞,導(dǎo)致公鑰明文被破解,那么就無法保證數(shù)字簽名技術(shù)和POW共識(shí)機(jī)制的安全性。目前,MD5算法和SHA1哈希算法都已經(jīng)被破解,SHA256依然是安全的,但SHA256的安全性也因?yàn)镸D5和SHA1的破解而降低。量子計(jì)算技術(shù)量子計(jì)算技術(shù)是一種仍在發(fā)展中的技術(shù),未來這項(xiàng)技術(shù)如果真的實(shí)現(xiàn)會(huì)對(duì)現(xiàn)代密碼學(xué)算法體系帶來巨大的影響。它技術(shù)原理是量子計(jì)算機(jī)擁有遠(yuǎn)遠(yuǎn)超過現(xiàn)代已研發(fā)計(jì)算機(jī)系統(tǒng)的運(yùn)算速度——量子級(jí)別,進(jìn)而對(duì)現(xiàn)有基于較為簡(jiǎn)單運(yùn)算的密碼體制造成威脅。所以在未來必須研究抗量子計(jì)算的新型密碼體制,尤其是與密碼學(xué)算法息息相關(guān)的區(qū)塊鏈技術(shù)體系更要以此確保自身的安全性。3.3.2
協(xié)議安全威脅共識(shí)協(xié)議是區(qū)塊鏈技術(shù)的重要部分,一個(gè)選擇恰當(dāng)?shù)墓沧R(shí)機(jī)制會(huì)給區(qū)塊鏈系統(tǒng)帶來極高的安全性提升。因此,共識(shí)機(jī)制的安全問題也是區(qū)塊鏈安全問題的關(guān)鍵。在黑客攻擊過程中,會(huì)針對(duì)不同的共識(shí)機(jī)制來采用不同手段造成不同的破壞攻擊,以下介紹幾種主要的對(duì)共識(shí)協(xié)議攻擊手段:(1) 雙花攻擊雙花攻擊是一種典型的對(duì)協(xié)議攻擊,是一種針對(duì)于工作量證明共識(shí)機(jī)制的攻擊。雙重花費(fèi)攻擊的流程是利用某種特殊手段獲取區(qū)塊鏈網(wǎng)絡(luò)一半以上的算力讓區(qū)塊鏈分叉,從而影響區(qū)塊鏈的整個(gè)資源走向。比如在比特幣系統(tǒng)中,攻擊方利用不法手段獲取區(qū)塊鏈一半以上算力,將準(zhǔn)備的十個(gè)比特幣投放入交易所中,隨后開始挖礦,在投放完畢后攻擊者會(huì)將這十個(gè)比特幣兌現(xiàn)。因?yàn)橐呀?jīng)獲取極大比例算力的緣故攻擊者會(huì)造使區(qū)塊鏈分叉,攻擊者讓主鏈變成還未投放其10個(gè)比特幣到交易所行為的分叉鏈,那這10個(gè)比特幣會(huì)回到攻擊者手中,但他已經(jīng)獲得了兌現(xiàn)的資金,從而達(dá)到無償兌現(xiàn)的目的。(2)短程攻擊與長(zhǎng)程攻擊短程攻擊與長(zhǎng)程攻擊的實(shí)質(zhì)其實(shí)也還是雙花攻擊。短程攻擊是相較于長(zhǎng)程攻擊而言的,修改部分對(duì)自己有利的區(qū)塊數(shù)據(jù)以達(dá)到攻擊的目的。長(zhǎng)程攻擊是短程攻擊的升級(jí)版,攻擊者會(huì)建立一條從第一個(gè)區(qū)塊開始的超長(zhǎng)支鏈,這時(shí)候主鏈會(huì)受到攻擊者的主導(dǎo),最終被攻擊者建立的超長(zhǎng)支鏈所替代。常見的長(zhǎng)程攻擊就是51%攻擊。POS共識(shí)機(jī)制中并不通過算力來選擇記賬權(quán),相比起POW共識(shí)機(jī)制會(huì)更容易受到攻擊。(3) 女巫攻擊女巫攻擊是指一個(gè)節(jié)點(diǎn)偽裝成不同節(jié)點(diǎn),在區(qū)塊鏈網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)分裂出多重身份對(duì)網(wǎng)絡(luò)進(jìn)攻就是女巫攻擊的本質(zhì)思路。它實(shí)際上是攻擊了數(shù)據(jù)冗余機(jī)制,因?yàn)閰^(qū)塊鏈網(wǎng)絡(luò)的特殊性,為了保證區(qū)塊鏈網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)數(shù)據(jù)趨于穩(wěn)定,會(huì)將數(shù)據(jù)備份到各個(gè)節(jié)點(diǎn)上,女巫攻擊則讓原本備份到多個(gè)節(jié)點(diǎn)的數(shù)據(jù)信息僅備份到了同一惡意節(jié)點(diǎn)上。3.3.3
智能合約安全威脅智能合約也是區(qū)塊鏈技術(shù)體系中不可或缺的部分,智能合約安全是目前頻發(fā)的安全事件之一。智能合約的編寫相對(duì)不同的開發(fā)人員來說也有著不一樣的主觀性區(qū)別,于是在代碼層面就會(huì)帶來不一樣的漏洞使用戶造成損失。目前常見的智能合約漏洞有:重入漏洞智能合約的本質(zhì)是一個(gè)類,類即具有面向?qū)ο蟮男再|(zhì),在區(qū)塊鏈網(wǎng)絡(luò)體系中常常有合約調(diào)用合約的操作,智能合約能夠調(diào)用和利用其他合約導(dǎo)致多個(gè)合約相互調(diào)用使調(diào)用情況變得復(fù)雜。重入漏洞就是發(fā)生在代碼重入層面的問題,所謂代碼重入是指某個(gè)時(shí)刻調(diào)用方法中斷,被攻擊者劫持,以致于合約被迫執(zhí)行更多代碼或執(zhí)行其他的合約代碼,甚至是回調(diào)原合約本身,該合約代碼又再次調(diào)用了該發(fā)生中斷方法,一直反復(fù)進(jìn)入該方法。有點(diǎn)類似于編程語言里的遞歸函數(shù),最后會(huì)導(dǎo)致以太坊內(nèi)的硬分叉。拒絕服務(wù)漏洞拒絕服務(wù)漏洞攻擊就是攻擊者使用某些手段讓智能合約內(nèi)部的部分代碼邏輯執(zhí)行失效,通過這種方式使其持續(xù)消耗調(diào)用合約所需要的消耗單位gas。一段時(shí)間后,當(dāng)這一部分失效代碼被反復(fù)循環(huán)地執(zhí)行,雖然這樣的消耗攻擊可能只是拒絕服務(wù)攻擊的一小部分,但用戶就可能會(huì)由于調(diào)用合約消耗的gas過多而最終導(dǎo)致執(zhí)行失敗,甚至對(duì)整個(gè)系統(tǒng)服務(wù)造成威脅?;蛘吖粽吒纱嘀苯釉谥悄芎霞s執(zhí)行前設(shè)立一些困難性阻擋驗(yàn)證,使得用戶在想要調(diào)用合約時(shí)卻無法通過驗(yàn)證,從而導(dǎo)致合約無法被正常調(diào)用。對(duì)區(qū)塊鏈來說,攻擊者會(huì)以此降低整個(gè)網(wǎng)絡(luò)速度或者迫使其停止運(yùn)作,或針對(duì)某個(gè)特定主機(jī)節(jié)點(diǎn)使其從網(wǎng)絡(luò)離線。
3.3.4
用戶使用安全威脅區(qū)塊鏈安全性不僅要通過完善系統(tǒng)自身功能條件保證,也要其用戶使用得當(dāng)。區(qū)塊鏈用戶會(huì)分為開發(fā)者用戶和普通用戶兩種類型,攻擊者會(huì)根據(jù)用戶的身份類型進(jìn)行有針對(duì)性攻擊,主要有節(jié)點(diǎn)暴露API接口和錢包私鑰竊取兩種攻擊情況。(1)節(jié)點(diǎn)暴露API接口對(duì)于開發(fā)者而言,一個(gè)優(yōu)良的區(qū)塊鏈應(yīng)用集成開發(fā)平臺(tái)是開發(fā)的重要條件,目前并沒有非常好的平臺(tái)供開發(fā)者使用。區(qū)塊鏈的開發(fā)者用戶仍然要通過各種區(qū)塊鏈提供的API進(jìn)行開發(fā),當(dāng)開發(fā)者調(diào)用這些區(qū)塊鏈的API時(shí),攻擊者找到這一空子便會(huì)針對(duì)他們進(jìn)行攻擊控制從而竊取重要數(shù)據(jù)信息。(2)錢包私鑰竊取那么對(duì)于普通用戶來說,安全意識(shí)普及往往不是那么到位。普通用戶在進(jìn)行貨幣交易時(shí)會(huì)反復(fù)登錄區(qū)塊鏈錢包,當(dāng)普通用戶連接至區(qū)塊鏈系統(tǒng)時(shí),攻擊者可能會(huì)趁機(jī)入侵用戶節(jié)點(diǎn)竊取私鑰,盜取個(gè)人貨幣財(cái)產(chǎn)。當(dāng)然,和傳統(tǒng)的竊取行為一樣,區(qū)塊鏈資產(chǎn)也會(huì)遭到來自現(xiàn)實(shí)中的威脅,甚至對(duì)人身安全造成危險(xiǎn)。普通用戶能做的只有提高自身安全意識(shí),妥善保管錢包私鑰。
3.3.5
網(wǎng)絡(luò)安全威脅網(wǎng)絡(luò)會(huì)遭遇來自病毒等惡意程序的攻擊,區(qū)塊鏈網(wǎng)絡(luò)也不例外。每年都有不一樣的計(jì)算機(jī)病毒被攻擊者研發(fā)出來進(jìn)行網(wǎng)絡(luò)攻擊,通過與區(qū)塊鏈技術(shù)結(jié)合,攻擊者將使用區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行敲詐勒索或者是直接對(duì)整個(gè)區(qū)塊鏈網(wǎng)絡(luò)造成破壞性威脅。主要的威脅形式有BGP路由廣播劫持、偽造數(shù)字簽名和勒索病毒。(1)BGP路由廣播劫持BGP是自治系統(tǒng)間的路由協(xié)議。BGP劫持具體是指攻擊者惡意改變了區(qū)塊鏈內(nèi)BGP路由。在現(xiàn)實(shí)生活中,可以把BGP路由劫持比喻成被錯(cuò)誤引導(dǎo)至其他路口的車流,攻擊者錯(cuò)誤的引導(dǎo)其他的礦工節(jié)點(diǎn),利用其為自己出力挖礦。(2)偽造數(shù)字簽名數(shù)字簽名是區(qū)塊鏈技術(shù)體系中的密碼學(xué)應(yīng)用,前文提及它是一種公私鑰的應(yīng)用,偽造數(shù)據(jù)簽名也是常見的網(wǎng)絡(luò)安全威脅之一。攻擊者可以通過區(qū)塊鏈網(wǎng)絡(luò)內(nèi)部竊聽接收到關(guān)于簽名者的私鑰,以此躲避各類驗(yàn)證從而誘騙普通用戶,導(dǎo)致其損失自身的數(shù)字貨幣資產(chǎn)。對(duì)于多重簽名來說,能成功竊取簽名者私鑰的完全攻擊還分為兩類:一類是僅能偽造單個(gè)簽名者的簽名,另一類是既能偽造單個(gè)簽名,又能偽造多重簽名。后者相對(duì)于前者而言,攻擊更完全。(3)勒索病毒2017年5月,一種名叫WannaCry的蠕蟲式電腦勒索病毒襲擊超過一百多個(gè)國(guó)家和地區(qū),導(dǎo)致將近十萬臺(tái)計(jì)算機(jī)被勒索病毒攻擊感染,這種勒索病毒是自“熊貓燒香”以來影響力最大的病毒之一,對(duì)金融、醫(yī)療等領(lǐng)域都造成了劇烈影響。用戶主機(jī)系統(tǒng)被勒索病毒感染后,將會(huì)被提示索要比特幣以解除鎖定,并且系統(tǒng)內(nèi)幾乎所有文件都被加密,若不支付比特幣解鎖,硬盤甚至?xí)粡氐浊蹇?。雖然這種勒索病毒并不是直接對(duì)區(qū)塊鏈系統(tǒng)造成攻擊,但是其利用了比特幣的匿名性讓被入侵目標(biāo)匿名損失財(cái)產(chǎn),是結(jié)合區(qū)塊鏈技術(shù)的傳統(tǒng)網(wǎng)絡(luò)威脅。3.4
小結(jié)顯然,區(qū)塊鏈的發(fā)展離不開對(duì)其安全性的研究。目前區(qū)塊鏈的發(fā)展仍然不完善,頻發(fā)的安全問題使得某些重視安全性的應(yīng)用領(lǐng)域?qū)^(qū)塊鏈技術(shù)始終存疑,同時(shí)阻礙了信息互聯(lián)網(wǎng)向價(jià)值互聯(lián)網(wǎng)的轉(zhuǎn)變。區(qū)塊鏈的本質(zhì)屬性就是去中心化,而去中心化的核心就是共識(shí)機(jī)制。區(qū)塊鏈取證關(guān)鍵技術(shù)的研究實(shí)質(zhì)還是對(duì)共識(shí)機(jī)制的研究,第四章將對(duì)現(xiàn)階段的幾種共識(shí)機(jī)制進(jìn)行徹底剖析,并根據(jù)它們所經(jīng)歷的安全威脅及不足之處提出基于DPosS算法的區(qū)塊鏈共識(shí)機(jī)制改進(jìn)方案。4
共識(shí)機(jī)制分析及基于DPoS共識(shí)機(jī)制的改進(jìn)方案4.1
共識(shí)機(jī)制分布式系統(tǒng)建立在一致性問題之上,而共識(shí)機(jī)制的根本——共識(shí)問題,其實(shí)質(zhì)就是一致性問題。通俗來講就是為了達(dá)成對(duì)某個(gè)問題的一致意見而形成共識(shí)。達(dá)成共識(shí)好像是很簡(jiǎn)單的事,但共識(shí)問題是從上個(gè)世紀(jì)七十年代起學(xué)者們便著手研究的一個(gè)經(jīng)典問題。在區(qū)塊鏈系統(tǒng)中,拜占庭問題“就是共識(shí)問題的一個(gè)經(jīng)典例子。古時(shí)候,拜占庭帝國(guó)幅員遼闊,各個(gè)軍隊(duì)因?yàn)橄喔羯踹h(yuǎn),將軍之間只能依靠傳送消息的信使來對(duì)戰(zhàn)爭(zhēng)事宜協(xié)商決策。英勇的將軍們必須達(dá)成一致共識(shí)——有獲勝的機(jī)會(huì)才會(huì)起軍攻打敵方陣營(yíng)。但是,在這些軍隊(duì)中,有的將軍可能會(huì)發(fā)生叛變,叛變的將軍會(huì)故意放出錯(cuò)誤的信息從而擾亂其他軍隊(duì),使得軍隊(duì)之間達(dá)成錯(cuò)誤的一致性結(jié)果。那么在已經(jīng)知道軍隊(duì)的將軍里可能有叛徒的狀況下,部分忠誠(chéng)的將軍該如何達(dá)成正確的一致性協(xié)議,做出正確的戰(zhàn)爭(zhēng)決策,就稱為經(jīng)典的“拜占庭問題”。軍隊(duì)將軍這一類比,換成現(xiàn)代的說法則可以說是比特幣系統(tǒng)中的節(jié)點(diǎn),節(jié)點(diǎn)就像將軍一樣,想共同對(duì)系統(tǒng)內(nèi)的總賬內(nèi)容達(dá)成一致性協(xié)議。分布式系統(tǒng)中的基本目標(biāo)是在某些進(jìn)程出錯(cuò)的前提下,也能夠順利實(shí)現(xiàn)整個(gè)系統(tǒng)的可靠性,所以系統(tǒng)中的節(jié)點(diǎn)也不可避免地會(huì)存在惡意的節(jié)點(diǎn),惡意節(jié)點(diǎn)可能對(duì)總賬內(nèi)容進(jìn)行惡意篡改。因此,系統(tǒng)中引入的共識(shí)機(jī)制則是讓所有的節(jié)點(diǎn)在規(guī)定時(shí)間內(nèi),就一個(gè)記錄所有交易信息內(nèi)容達(dá)成一致的關(guān)鍵。在區(qū)塊鏈技術(shù)中,如果有節(jié)點(diǎn)發(fā)現(xiàn)另一個(gè)新區(qū)塊后便會(huì)立刻在整個(gè)網(wǎng)絡(luò)范圍內(nèi)進(jìn)行廣播,而所有的節(jié)點(diǎn)通過驗(yàn)證區(qū)塊的有效性,以決定是否認(rèn)證該區(qū)塊。這個(gè)區(qū)塊擁有大多數(shù)節(jié)點(diǎn)的確認(rèn)后,就可以被認(rèn)為是有效區(qū)塊。下面,我們?cè)敿?xì)介紹分析目前互聯(lián)網(wǎng)中常見的幾種典型區(qū)塊鏈共識(shí)機(jī)制。4.1.1
拜占庭一致性協(xié)議PBTFPBFT共識(shí)機(jī)制是針對(duì)拜占庭問題而提出的機(jī)制,這種共識(shí)算法在聯(lián)盟鏈中被使用得最多。假定系統(tǒng)中有超過3f+1個(gè)節(jié)點(diǎn),f為系統(tǒng)中惡意節(jié)點(diǎn)或者已失效節(jié)點(diǎn)數(shù)。PBFT共識(shí)機(jī)制的核心思想是節(jié)點(diǎn)多次反復(fù)確認(rèn)同一信息,從而達(dá)到全網(wǎng)共識(shí)。這種共識(shí)算法依賴于一個(gè)主節(jié)點(diǎn)來收集全網(wǎng)交易并打包成區(qū)塊,之后進(jìn)入算法的3個(gè)主要階段,分別是:預(yù)準(zhǔn)備階段(pre-prepare)、準(zhǔn)備階段(prepare)和確認(rèn)階段(commit)。預(yù)準(zhǔn)備階段,主節(jié)點(diǎn)將預(yù)準(zhǔn)備消息廣播給所有成員節(jié)點(diǎn),全網(wǎng)其他節(jié)點(diǎn)對(duì)該預(yù)準(zhǔn)備消息進(jìn)行詳細(xì)合法性檢查,若都通過則又向整個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)準(zhǔn)備消息,隨后進(jìn)入準(zhǔn)備階段。準(zhǔn)備階段,整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)將收到的準(zhǔn)備消息與預(yù)準(zhǔn)備消息進(jìn)行比較。如果一個(gè)節(jié)點(diǎn)從不同的節(jié)點(diǎn)收到超過2f條匹配的準(zhǔn)備消息,那么節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)確認(rèn)消息,并進(jìn)入確認(rèn)階段。確認(rèn)階段,當(dāng)每個(gè)節(jié)點(diǎn)都收到2f+1條確認(rèn)消息時(shí)(可能包括該節(jié)點(diǎn)自身的),本輪的區(qū)塊共識(shí)宣告達(dá)成。使用實(shí)用拜占庭一致性協(xié)議能夠使區(qū)塊鏈在去中心化的情況下,也能順利實(shí)現(xiàn)其一致性特性,這一優(yōu)點(diǎn)消除了冗雜的計(jì)算量,從而有效避免了資源的浪費(fèi)。另外,在任意給定的時(shí)間里,區(qū)塊鏈系統(tǒng)只有一個(gè)主要節(jié)點(diǎn)能提出新的區(qū)塊,其他節(jié)點(diǎn)負(fù)責(zé)的是對(duì)該新區(qū)塊進(jìn)行驗(yàn)證等操作,避免了區(qū)塊鏈分叉又縮短了系統(tǒng)內(nèi)交易確認(rèn)和對(duì)區(qū)塊確認(rèn)時(shí)間,這種方法有效提高了系統(tǒng)效率。雖然PBFT共識(shí)機(jī)制優(yōu)化了通信過程,提高區(qū)塊間共識(shí)效率,但其容錯(cuò)率相較于PoW共識(shí)機(jī)制和PoS共識(shí)機(jī)制還是偏低。假如攻擊者在網(wǎng)絡(luò)中創(chuàng)建f+1個(gè)惡意節(jié)點(diǎn),這時(shí)攻擊者只需要讓這f+1個(gè)惡意節(jié)點(diǎn)全部失效,區(qū)塊鏈系統(tǒng)便會(huì)陷入癱瘓。實(shí)際操作上,PBFT共識(shí)機(jī)制要求節(jié)點(diǎn)在收到2f-1條準(zhǔn)備消息時(shí)才能接收這條消息,但是一旦有f+1個(gè)節(jié)點(diǎn)失效,則整個(gè)網(wǎng)絡(luò)任意一個(gè)節(jié)點(diǎn)都最多只能收到2f-1條準(zhǔn)備消息。協(xié)議將停留在準(zhǔn)備階段,從而系統(tǒng)無法對(duì)區(qū)塊產(chǎn)生共識(shí),最終陷入癱瘓。
4.1.2
工作量證明共識(shí)機(jī)制PoWPoW(ProofofWork),即工作量證明機(jī)制,簡(jiǎn)而言之,它是可以證明你投入了多少工作量的機(jī)制。機(jī)制的基本思路是通過每個(gè)節(jié)點(diǎn)的哈希運(yùn)算來爭(zhēng)取區(qū)塊計(jì)費(fèi)權(quán),當(dāng)區(qū)塊產(chǎn)生后,向整個(gè)網(wǎng)絡(luò)進(jìn)行廣播,以供其他的節(jié)點(diǎn)進(jìn)行驗(yàn)證。在比特幣網(wǎng)絡(luò)中,想獲得比特幣就意味著要先利用自己服務(wù)器的算力來贏得計(jì)費(fèi)權(quán)。等計(jì)費(fèi)權(quán)搶到手之后,礦工還要按時(shí)間順序把10分鐘內(nèi)所發(fā)生的所有交易記錄給記錄在賬本上,隨后將其同步給這個(gè)網(wǎng)絡(luò)上的所有用戶節(jié)點(diǎn)。礦工付出勞動(dòng),爭(zhēng)奪記賬權(quán)以及記錄交易記錄,而它付出的工作量也在整個(gè)網(wǎng)絡(luò)得到其他節(jié)點(diǎn)的認(rèn)可,這就達(dá)成了一種共識(shí)。圖4-1PoW共識(shí)機(jī)制流程圖PoW共識(shí)機(jī)制的優(yōu)點(diǎn)有:(1) 去中心化,將記賬權(quán)公平地分配到其他節(jié)點(diǎn)。在比特幣系統(tǒng)中你所能夠得的幣的數(shù)量取決于你整個(gè)挖礦過程貢獻(xiàn)的有效工作。(2) 安全性高,想破壞整個(gè)系統(tǒng)必須得投入極高的成本和極大量資源,若要想作弊又需要擁有壓倒于大多數(shù)人的算力比如較為典型的51%攻擊。
PoW共識(shí)機(jī)制的缺點(diǎn)是:挖礦會(huì)造成巨量的資源浪費(fèi),就目前而言,區(qū)塊鏈應(yīng)用想使用POW作為自己系統(tǒng)的共識(shí)機(jī)制已很難保障自身系統(tǒng)的安全性。因?yàn)楸忍貛畔到y(tǒng)挖掘比特幣已經(jīng)耗費(fèi)了目前大多數(shù)算力,后來者很難再獲取強(qiáng)大的算力。PoW共識(shí)機(jī)制的網(wǎng)絡(luò)性能就目前而言仍然過低,過程中需要等待多個(gè)確認(rèn)間隔,這個(gè)過程會(huì)導(dǎo)致容易出現(xiàn)分叉,區(qū)塊的確認(rèn)共識(shí)達(dá)成的周期較長(zhǎng),也限制了每秒交易量的上限不利于可持續(xù)發(fā)展。3)PoW共識(shí)算法在運(yùn)算過程中屬于將算力都集中化了,這逐漸偏離了最初想要保證其去中心化的想法。綜上所述,POW共識(shí)機(jī)制在某些自由和開放的網(wǎng)絡(luò)中能發(fā)揮較大的作用,其獨(dú)特的運(yùn)算特性讓數(shù)據(jù)一致性問題得到了有效解決,隨之帶來的缺點(diǎn)也同時(shí)被放大,區(qū)塊的產(chǎn)生需要消耗額外算力以及其他資源,并且數(shù)據(jù)達(dá)成一致性共識(shí)的時(shí)間較比長(zhǎng),難以滿足現(xiàn)在普遍的實(shí)際業(yè)務(wù)需求。雖然PoW共識(shí)機(jī)制為比特幣和以太坊的發(fā)展打下了優(yōu)良基礎(chǔ),但POW共識(shí)機(jī)制的這些問題卻仍廣受詬病。4.1.3
權(quán)益證明共識(shí)機(jī)制PoSPoS(ProofofStake),即權(quán)益證明共識(shí)機(jī)制。2011年召開的比特幣論壇講座中首次被提出,在數(shù)字貨幣點(diǎn)點(diǎn)幣得到創(chuàng)新應(yīng)用。PoS共識(shí)機(jī)制的主要思想是:代幣即節(jié)點(diǎn)在系統(tǒng)中所持有的權(quán)益,越長(zhǎng)時(shí)間持有越多代幣的節(jié)點(diǎn)在爭(zhēng)奪區(qū)塊記賬權(quán)時(shí),話語權(quán)越大,獲得記賬機(jī)會(huì)的概率越大。PoS共識(shí)機(jī)制的實(shí)質(zhì)是依照其幣齡來決定該節(jié)點(diǎn)獲得記賬權(quán)的概率,類似于存進(jìn)銀行里的資金會(huì)得到利息,隨著存入的金額越大存入的時(shí)間越長(zhǎng),根據(jù)幣齡等于持有幣的數(shù)額乘以持有天數(shù),得到的“利息”也就越多。上文提到,POW共識(shí)機(jī)制是通過節(jié)點(diǎn)算力來獲取記賬權(quán)的,POS共識(shí)機(jī)制與其相比起來,大幅減少了對(duì)資源的浪費(fèi),同時(shí)又縮短了各個(gè)節(jié)點(diǎn)間達(dá)成共識(shí)所消耗的時(shí)間。但要注意的是,PoS共識(shí)機(jī)制仍不適用于某些業(yè)務(wù)環(huán)境,比如說對(duì)于共識(shí)時(shí)間要求比較高的情景,它還是沒有從根本上解決共識(shí)機(jī)制商業(yè)應(yīng)用的痛點(diǎn),還可能會(huì)降低數(shù)字貨幣的流通性,從而提高了中心化的風(fēng)險(xiǎn)。PoS共識(shí)機(jī)制的優(yōu)點(diǎn)有:(1)在能源消耗、資源浪費(fèi)、算力消耗等方面都有著極大程度的減少。(2)對(duì)于PoW共識(shí)機(jī)制來說,共識(shí)達(dá)成的時(shí)間縮短了不少。PoS共識(shí)機(jī)制的缺點(diǎn)是:(1)依舊是處理挖礦的問題,PoS共識(shí)機(jī)制的應(yīng)用范圍較小,不太具備大的商業(yè)應(yīng)用價(jià)值;(2)仍然存在著安全上的漏洞,因?yàn)樵赑oS共識(shí)機(jī)制中所有的區(qū)塊產(chǎn)生和確認(rèn)都是一個(gè)概率事件,安全性沒有保障。區(qū)塊鏈領(lǐng)域一旦出現(xiàn)安全上的漏洞,其修復(fù)難度都是不可預(yù)估的。(3)在極端的情境中,可能會(huì)有中心化的風(fēng)險(xiǎn)。PoS共識(shí)機(jī)制由股東自己保證安全,工作原理是利益捆綁。即PoS的安全取決于持有者,和其他任何因素?zé)o關(guān)。4.1.3
權(quán)益證明共識(shí)機(jī)制PoSDPOS(DelegatedProofofStake),即代理權(quán)益共識(shí)機(jī)制。是一種可以實(shí)現(xiàn)區(qū)塊秒級(jí)驗(yàn)證的共識(shí)機(jī)制。DPoS共識(shí)機(jī)制實(shí)際上就是相當(dāng)于一個(gè)公司的董事會(huì)投票制度,根據(jù)節(jié)點(diǎn)持有股票的多少來選擇出記賬人,并且將這記賬人一角色專業(yè)化,機(jī)制中代理驗(yàn)證和記賬都通過輪流記賬的方式來進(jìn)行。在DPOS共識(shí)機(jī)制中,節(jié)點(diǎn)將會(huì)被分成用戶節(jié)點(diǎn)和代理節(jié)點(diǎn)兩種類型,每一個(gè)持有代幣的節(jié)點(diǎn)都是候選節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)通過投票決定的方式選擇若干代理節(jié)點(diǎn),被投票節(jié)點(diǎn)中或票數(shù)最高則成為代理節(jié)點(diǎn),由代理節(jié)點(diǎn)按照所設(shè)立的時(shí)間表來輪流生成區(qū)塊和驗(yàn)證區(qū)塊,代理節(jié)點(diǎn)會(huì)在對(duì)區(qū)塊的操作過程中的獲得報(bào)酬。DPoS共識(shí)機(jī)制從成員節(jié)點(diǎn)中選出若干代理節(jié)點(diǎn)來管理記賬和驗(yàn)證等功能,在性能、監(jiān)督管理、資源消耗和容錯(cuò)性上都與PoS共識(shí)機(jī)制相似。DPoS共識(shí)機(jī)制的出現(xiàn)是為了解決PoW共識(shí)機(jī)制的性能問題以及PoS共識(shí)機(jī)制后期可能出現(xiàn)的少數(shù)節(jié)點(diǎn)持有大量股份而帶來的風(fēng)險(xiǎn)問題。DPOS與POS共識(shí)機(jī)制的主要區(qū)別是,區(qū)塊記賬節(jié)點(diǎn)的選擇方式不在DPoS算法中,它保留了PoS的股份機(jī)制,采用了類似于企業(yè)中董事會(huì)投票機(jī)制的方式,節(jié)點(diǎn)用持有的股份投票選出少量稱為見證人的節(jié)點(diǎn),這些見證人節(jié)點(diǎn)會(huì)代理其余節(jié)點(diǎn)完成區(qū)塊的生成和驗(yàn)證。這樣的好處是使其他普通權(quán)益節(jié)點(diǎn)不必耗費(fèi)額外的資源去校驗(yàn)每一筆交易,而權(quán)益持有者可以給自己信任的節(jié)點(diǎn)投票。與PoW與PoS共識(shí)機(jī)制相比,這種方式進(jìn)一步減少了計(jì)算開銷,并且可以快速地完成共識(shí)驗(yàn)證,因此在一定程度上提升了系統(tǒng)性能。DPoS共識(shí)機(jī)制的優(yōu)點(diǎn)有:沒有消耗算力的挖礦過程致使其大大減少了參與區(qū)塊產(chǎn)生和驗(yàn)證的節(jié)點(diǎn)數(shù)量,效率也隨之大大提高,甚至能達(dá)到秒級(jí)共識(shí)。通過選擇少量節(jié)點(diǎn)代為進(jìn)行區(qū)塊的產(chǎn)生和驗(yàn)證,縮短了交易時(shí)間和確認(rèn)時(shí)延,使得區(qū)塊鏈系統(tǒng)吞吐量得到提升。DPoS共識(shí)機(jī)制的缺點(diǎn)是:由于投票會(huì)花費(fèi)一些時(shí)間精力和其他資源,這就使得大多數(shù)投資者產(chǎn)生了惰性,缺乏一個(gè)節(jié)點(diǎn)該有的積極性。DPoS共識(shí)機(jī)制是一種特別依賴于大量節(jié)點(diǎn)參與的機(jī)制,如果參與投票的節(jié)點(diǎn)數(shù)量不足,會(huì)導(dǎo)致代理節(jié)點(diǎn)極易集中產(chǎn)生于少數(shù)節(jié)點(diǎn)中,從而失去了去中心化的特性,這樣選出來的代理節(jié)點(diǎn)也無法保證系統(tǒng)的公平性、安全性。當(dāng)節(jié)點(diǎn)中出現(xiàn)脫機(jī)狀態(tài)的節(jié)點(diǎn)甚至是惡意節(jié)點(diǎn)時(shí),對(duì)于這些節(jié)點(diǎn)的有效性處理仍然存在困難的地方,比如說通過社區(qū)選舉無法有效地進(jìn)行阻止并且剔除掉這些“壞節(jié)點(diǎn)”,而且還會(huì)造成投票不積極的問題,這使得網(wǎng)絡(luò)系統(tǒng)安全存在很大隱患,嚴(yán)重情形下甚至?xí)?dǎo)致整個(gè)網(wǎng)絡(luò)系統(tǒng)癱瘓。4.2
基于DPOS共識(shí)機(jī)制的改進(jìn)方案DPOS共識(shí)機(jī)制是一種較為優(yōu)良的共識(shí)機(jī)制,目前能達(dá)到秒級(jí)區(qū)塊驗(yàn)證。前文介紹到,DPOS共識(shí)機(jī)制中的區(qū)塊是由代理節(jié)點(diǎn)來進(jìn)行生成和確認(rèn)的,這些代理節(jié)點(diǎn)通過各個(gè)節(jié)點(diǎn)間互相進(jìn)行節(jié)點(diǎn)投票來選出。本節(jié)我們針對(duì)DPOS共識(shí)機(jī)制的一些缺點(diǎn)進(jìn)行優(yōu)化改進(jìn),使其能夠更有效率且更具安全性。DPOS共識(shí)機(jī)制里主要存在節(jié)點(diǎn)對(duì)于投票選出代理節(jié)點(diǎn)不夠積極的情況,以及惡意節(jié)點(diǎn)沒能盡快有效地從系統(tǒng)中剔除的問題,這些惡意節(jié)點(diǎn)占據(jù)代理節(jié)點(diǎn)數(shù)量的同時(shí)會(huì)對(duì)系統(tǒng)做出有害惡意行為,這些都會(huì)致使系統(tǒng)的安全性降低,數(shù)據(jù)受到威脅。針對(duì)上述問題,本文引入介紹了節(jié)點(diǎn)狀態(tài)、信用系數(shù)以及信用獎(jiǎng)懲等與節(jié)點(diǎn)相關(guān)的概念,針對(duì)上述缺陷問題提出一種基于DPOS共識(shí)機(jī)制的信用獎(jiǎng)懲改進(jìn)方案。在該方案下,整個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn)通過一種節(jié)點(diǎn)間投票的方法,用反對(duì)票的形式來進(jìn)行對(duì)惡意節(jié)點(diǎn)的反對(duì),降低這些對(duì)系統(tǒng)無用的異常節(jié)點(diǎn)成為代理節(jié)點(diǎn)的可能性,并結(jié)合結(jié)果來加快異常節(jié)點(diǎn)被剔除系統(tǒng)的速度。下面是對(duì)該方案的詳細(xì)描述解說。基本原理節(jié)點(diǎn)狀態(tài)如何監(jiān)視控制由節(jié)點(diǎn)投票選拔出的代理節(jié)點(diǎn)的行為是首要解決問題,為了防止部分惡意節(jié)點(diǎn)產(chǎn)生無效區(qū)塊或者進(jìn)行其他惡意行為,我們給每個(gè)參與的節(jié)點(diǎn)都添加一個(gè)狀態(tài)標(biāo)識(shí)來表示一種狀態(tài)類型。以下該表格展示了節(jié)點(diǎn)狀態(tài)的四種類型:上述節(jié)點(diǎn)狀態(tài)是機(jī)制內(nèi)判斷這個(gè)節(jié)點(diǎn)是否為惡意節(jié)點(diǎn)的標(biāo)準(zhǔn)。機(jī)制為了讓盡可能多的處于良好狀態(tài)的節(jié)點(diǎn)被成功票選為代理節(jié)點(diǎn),同時(shí)也為了防止?fàn)顟B(tài)為異常狀態(tài)的節(jié)點(diǎn)被選為代理節(jié)點(diǎn),系統(tǒng)將會(huì)在節(jié)點(diǎn)投票的時(shí)候提示這些節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài),以此提醒節(jié)點(diǎn)在投票期間做出對(duì)系統(tǒng)更加有利的判斷。狀態(tài)變化狀態(tài)變化是描述代理節(jié)點(diǎn)的狀態(tài)更改的過程,它關(guān)系到代理節(jié)點(diǎn)產(chǎn)生區(qū)塊的數(shù)量、生成塊質(zhì)量以及生成塊的有效性:當(dāng)一個(gè)節(jié)點(diǎn)在投票競(jìng)選的過程中成為新的代理節(jié)點(diǎn)時(shí),系統(tǒng)默認(rèn)為該節(jié)點(diǎn)分配正常狀態(tài),即NORMAL標(biāo)識(shí),擁有NOMARL標(biāo)識(shí)的正常狀態(tài)節(jié)點(diǎn)能夠正常參與后續(xù)的代理節(jié)點(diǎn)競(jìng)選。如果一個(gè)代理節(jié)點(diǎn)持續(xù)產(chǎn)生優(yōu)良區(qū)塊,并且產(chǎn)生優(yōu)良區(qū)塊的記錄次數(shù)大于了設(shè)定的累加值時(shí),機(jī)制作為反饋會(huì)將該節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)從普通狀態(tài)升級(jí)為良好狀態(tài),狀態(tài)標(biāo)識(shí)變?yōu)镚OOD。良好狀態(tài)則表明該代理節(jié)點(diǎn)在競(jìng)選過程中將具有一定的優(yōu)勢(shì)。而當(dāng)一個(gè)代理節(jié)點(diǎn)有產(chǎn)生無效區(qū)塊的記錄時(shí),這個(gè)代理節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài)將會(huì)變成異常狀態(tài),但由于其產(chǎn)生無效區(qū)塊的次數(shù)仍然小于機(jī)制設(shè)置的累加值,因此狀態(tài)標(biāo)識(shí)為EXCEPTION。異常狀態(tài)的節(jié)點(diǎn)在其后續(xù)參與代理節(jié)點(diǎn)競(jìng)選中相比其他狀態(tài)節(jié)點(diǎn)具有一定的劣勢(shì)。若一個(gè)代理節(jié)點(diǎn)連續(xù)產(chǎn)生無效區(qū)塊并且其產(chǎn)生的無效區(qū)塊記錄次數(shù)超過了系統(tǒng)設(shè)定的累加值,該節(jié)點(diǎn)狀態(tài)將立刻轉(zhuǎn)變?yōu)閻阂鉅顟B(tài),狀態(tài)標(biāo)識(shí)也隨之變?yōu)镋RROR。惡意狀態(tài)的節(jié)點(diǎn)可能會(huì)做出惡意行為對(duì)系統(tǒng)造成影響,為了避免這種情況,被標(biāo)識(shí)為惡意狀態(tài)的節(jié)點(diǎn)在一段時(shí)間內(nèi)會(huì)不被允許參加后續(xù)的代理節(jié)點(diǎn)競(jìng)選。代理節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)換如下圖所示。圖4-2狀態(tài)變化流程圖信用系數(shù)本方案還定義一個(gè)信用系數(shù)(Credit)的概念,它是節(jié)點(diǎn)加入分布式網(wǎng)絡(luò)時(shí)系統(tǒng)所給定的一種信用參數(shù),可以用信用系數(shù)表示一個(gè)節(jié)點(diǎn)的信用程度,信用系數(shù)在計(jì)算后按照百分值呈現(xiàn)。其中,對(duì)于首次訪問分布式網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)節(jié)點(diǎn),該節(jié)點(diǎn)的信用系數(shù)被初始為50%。信用系數(shù)在不同實(shí)際業(yè)務(wù)情景下會(huì)有著不同的實(shí)際意義,比如域名申請(qǐng)解析領(lǐng)域中域名的有效期,或者數(shù)字貨幣領(lǐng)域中信用系數(shù)也能夠折算成數(shù)字貨幣。2.基于信用的獎(jiǎng)懲方案在這個(gè)基于信用的獎(jiǎng)懲方案中為了使節(jié)點(diǎn)投票變得積極,并且要盡快對(duì)異常節(jié)點(diǎn)作出反應(yīng),該方案選用了兩種手段來完成基本需求。其中包括了節(jié)點(diǎn)投反對(duì)票以及具體的獎(jiǎng)懲方法這兩個(gè)核心要點(diǎn)。投反對(duì)票投反對(duì)票是提高信用獎(jiǎng)懲度的一個(gè)有效手段,其目的是讓被表示為異常狀態(tài)或惡意狀態(tài)的節(jié)點(diǎn)盡可能快速有效地從代理節(jié)點(diǎn)中被剔除,保證系統(tǒng)內(nèi)留下更多處于良好狀態(tài)的節(jié)點(diǎn),從而使系統(tǒng)安全性得以提高。我們知道,在共識(shí)機(jī)制中會(huì)采用公鑰標(biāo)識(shí)對(duì)節(jié)點(diǎn)進(jìn)行唯一表示,公鑰標(biāo)識(shí)讓節(jié)點(diǎn)具有了很強(qiáng)的匿名性,這能使投票變得更公平公正,有效地避免了節(jié)點(diǎn)在投票過程中是帶有自身目的性地對(duì)其他節(jié)點(diǎn)進(jìn)行投票。對(duì)于那些狀態(tài)標(biāo)識(shí)已經(jīng)轉(zhuǎn)變?yōu)镋XCEPTION的異常節(jié)點(diǎn),系統(tǒng)會(huì)在投票時(shí)對(duì)其他節(jié)點(diǎn)給予提示,明確其不穩(wěn)定性與對(duì)系統(tǒng)威脅隱患,希望其他節(jié)點(diǎn)能夠?qū)@些異常節(jié)點(diǎn)投出反對(duì)票,并以此降低狀態(tài)為EXCEPTION的異常節(jié)點(diǎn)成為代理節(jié)點(diǎn)的概率,進(jìn)一步加強(qiáng)系統(tǒng)的安全性。圖4-3投票流程獎(jiǎng)懲方法圖4-4獎(jiǎng)懲方法信用消耗信用消耗是指,節(jié)點(diǎn)的信用系數(shù)不會(huì)持續(xù)不變,它會(huì)隨著時(shí)間度過從而消耗降低。在信用消耗與現(xiàn)實(shí)業(yè)務(wù)情景結(jié)合時(shí),實(shí)際上表示的是某種意義上的價(jià)值消耗。信用系數(shù)也并不會(huì)平白無故地被消耗,信用系數(shù)消
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 焊工證的模擬試題及答案
- (完整)醫(yī)師定期考核考試題庫(kù)及參考答案
- 齊齊哈爾市甘南縣招聘協(xié)管員考試真題及答案
- 江蘇航運(yùn)考試題型及答案
- 高頻管教能手面試試題大全及答案
- 元江哈尼族彝族傣族自治縣公開遴選公務(wù)員筆試題及答案解析(A類)
- 生保產(chǎn)品考試及答案
- 高頻六大部門面試試題及答案
- 體育教招筆試題目及答案
- 高級(jí)經(jīng)濟(jì)師《工商管理》試題庫(kù)及答案
- 五年級(jí)數(shù)學(xué)下冊(cè)寒假作業(yè)每日一練
- 傳染病院感防控課件
- 寒假生活有計(jì)劃主題班會(huì)
- 羅馬機(jī)場(chǎng)地圖
- 實(shí)習(xí)生醫(yī)德醫(yī)風(fēng)培訓(xùn)
- 橫穿公路管道施工方案
- 真空澆注工安全操作規(guī)程(3篇)
- 快樂讀書吧:非洲民間故事(專項(xiàng)訓(xùn)練)-2023-2024學(xué)年五年級(jí)語文上冊(cè)(統(tǒng)編版)
- GB/T 19609-2024卷煙用常規(guī)分析用吸煙機(jī)測(cè)定總粒相物和焦油
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件(2018年版)
- 高處安全作業(yè)票(證)模板
評(píng)論
0/150
提交評(píng)論