發(fā)布時(shí)間:2020-03-17所屬分類:計(jì)算機(jī)職稱論文瀏覽:1次
摘 要: 摘 要 :區(qū)塊鏈作為比特幣系統(tǒng)中的底層技術(shù)受到了廣泛關(guān)注,是解決分布式系統(tǒng)一致性問題的一種可行方法。區(qū)塊鏈技術(shù)的核心是如何實(shí)現(xiàn)共識(shí)。良好的共識(shí)機(jī)制可提升系統(tǒng)性能,促進(jìn)區(qū)塊鏈技術(shù)的應(yīng)用。文章從現(xiàn)有區(qū)塊鏈技術(shù)中的共識(shí)機(jī)制出發(fā),對(duì)工作量證明、權(quán)益
摘 要 :區(qū)塊鏈作為比特幣系統(tǒng)中的底層技術(shù)受到了廣泛關(guān)注,是解決分布式系統(tǒng)一致性問題的一種可行方法。區(qū)塊鏈技術(shù)的核心是如何實(shí)現(xiàn)共識(shí)。良好的共識(shí)機(jī)制可提升系統(tǒng)性能,促進(jìn)區(qū)塊鏈技術(shù)的應(yīng)用。文章從現(xiàn)有區(qū)塊鏈技術(shù)中的共識(shí)機(jī)制出發(fā),對(duì)工作量證明、權(quán)益證明和拜占庭一致性協(xié)議等基本共識(shí)機(jī)制進(jìn)行總結(jié),從安全性、彳廣展性、性能效率等方面對(duì)這些共識(shí)機(jī)制進(jìn)行評(píng)價(jià)。未來區(qū)塊鏈上共識(shí)機(jī)制的研究將根據(jù)各共識(shí)機(jī)制的不同特點(diǎn),圍繞不同共識(shí)機(jī)制的組合展開設(shè)計(jì)。
關(guān) 鍵 詞 :區(qū)塊鏈;共識(shí)機(jī)制;工作量證明;權(quán)益證明;拜占庭一致性
0 引言
區(qū)塊鏈技術(shù)最初由中本聰在《比特幣:一 種 P2P 電子現(xiàn)金支付系統(tǒng)》11] 一文中提出,為解決分布式系統(tǒng)的一致性問題帶來新的技術(shù)思想。共識(shí)機(jī)制是分布式系統(tǒng)的核心。在 P2P 網(wǎng)絡(luò)中,互相不信任的節(jié)點(diǎn)通過遵循預(yù)設(shè)機(jī)制最終達(dá)到數(shù)據(jù)的一致性稱為共識(shí)。區(qū)塊鏈技術(shù)設(shè)計(jì)的關(guān)鍵是共識(shí)機(jī)制的設(shè)計(jì),目的在于如何解決區(qū)塊鏈的安全性、擴(kuò)展性、性能效率和能耗代價(jià)等問題。區(qū)塊鏈技術(shù)上支持的典型共識(shí)機(jī)制有工作量證明(_ Proof of Work)、權(quán)益證明 (_ Proof of Stake) 和拜占庭一致性協(xié)議等機(jī)制,也包括不同機(jī)制的相互結(jié)合
1 比特市與區(qū)塊鏈技術(shù)概述
1.1比特幣的運(yùn)行機(jī)制
2 0 0 8年,中本聰發(fā)表《比特幣:一 種 P2P 電子現(xiàn)金支付系統(tǒng)》m,提出在交易中去掉銀行這一中心機(jī)構(gòu),在 P2P 網(wǎng)絡(luò)中實(shí)現(xiàn)基于工作量證明的、去中心化的、分布式匿名電子現(xiàn)金支付系統(tǒng)。用戶的支付行為通過交易來完成。交易只記錄貨幣的流向,每枚貨幣的產(chǎn)生和每次交易都是可追溯的。如何監(jiān)測(cè)和防止二次支付行為是支付系統(tǒng)最根本的 安 全 性 問 題 ' 比特幣系統(tǒng)通過全網(wǎng)所有節(jié)點(diǎn)共同維護(hù)區(qū)塊鏈來防止二次支付。比特幣是區(qū)塊鏈技術(shù)的第一個(gè)應(yīng)用實(shí)例,比特幣的興起引發(fā)了世界各界的廣泛關(guān)注>7]。
用戶發(fā)起一次交易,廣播對(duì)該交易的簽名,之后等待礦工驗(yàn)證交易并將這筆交易記錄到區(qū)塊鏈中。礦工在當(dāng)前區(qū)塊鏈狀態(tài)下挖礦,挖礦的過程就是完成工作量證明的過程工作量證明完成之后產(chǎn)生的新區(qū)塊包含上一個(gè)區(qū)塊的哈希值、接收到的待確認(rèn)有效交易集合以及時(shí)間戳等信息。隨后,礦工廣播該區(qū)塊,等待其他礦工對(duì)該區(qū)塊進(jìn)行驗(yàn)證并在其后繼續(xù)挖礦產(chǎn)生后續(xù)區(qū)塊。當(dāng)該區(qū)塊連接了一定數(shù)量的后續(xù)區(qū)塊之后,就可以極高的概率相信這個(gè)區(qū)塊已被寫人整個(gè)網(wǎng)絡(luò)的區(qū)塊鏈中,其包含的交易被最終確認(rèn)。
1.2區(qū)塊鏈技術(shù)
1.2.1基本概念
《中國(guó)區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書(2016)》從應(yīng)用角度將區(qū)塊鏈技術(shù)看作是互聯(lián)網(wǎng)時(shí)代的創(chuàng)新應(yīng)用模式 ' 是一種去中心化、公開透明、用于存儲(chǔ)交易等信息的數(shù)據(jù)庫(kù),可應(yīng)用于分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法等計(jì)算機(jī)技術(shù)領(lǐng)域。區(qū)塊中存儲(chǔ)交易等信息,區(qū)塊之間如后相繼,形成一條鏈,共問存儲(chǔ)一系列有序父易圖 1 以比特幣系統(tǒng)為例,介紹底層區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)。由于上層共識(shí)機(jī)制不同,相應(yīng)的區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)也略有不同
也可以將區(qū)塊鏈看作是一種分布式數(shù)據(jù)庫(kù)。與分布式數(shù)據(jù)庫(kù)不同之處在于,區(qū)塊鏈技術(shù)中的每一個(gè)節(jié)點(diǎn)保存的區(qū)塊鏈前綴部分都是完全相同的,僅區(qū)塊鏈末端有所差異。
區(qū)塊鏈本身的數(shù)據(jù)結(jié)構(gòu)和共識(shí)機(jī)制使得其具有防篡改的性質(zhì)。區(qū)塊之間都通過密碼學(xué)證明的方法連接在一起。當(dāng)主區(qū)塊鏈具有足夠長(zhǎng)度時(shí),若對(duì)其中的某一區(qū)塊內(nèi)容進(jìn)行增加、修改、刪除等操作,其后所有區(qū)塊都將受到影響,由此就破壞了前后相繼的鏈?zhǔn)浇Y(jié)構(gòu)。此時(shí),就必須通過一系列的密碼學(xué)證明對(duì)后續(xù)區(qū)塊進(jìn)行修改。如果被篡改區(qū)塊處于主區(qū)塊鏈中靠前的位置,則篡改區(qū)塊的代價(jià)要遠(yuǎn)超篡改者所具有的能力和篡改后可獲得的利益。
在區(qū)塊鏈中,除了區(qū)塊之間的連續(xù)性外,數(shù)據(jù)的每一次變更都通過合法的數(shù)字簽名存儲(chǔ)在區(qū)塊鏈上。區(qū)塊鏈上記錄著一條數(shù)據(jù)從產(chǎn)生到消亡之間的每一次修改,提供了數(shù)據(jù)的可追溯性。數(shù)據(jù)可追本溯源也間接保證了數(shù)據(jù)的公開透明性。
1 .2 .2 應(yīng) 用 場(chǎng) 景
由于區(qū)塊鏈技術(shù)具有去中心化、防篡改、可追溯等特點(diǎn),吸引了各國(guó)政府的高度關(guān)注。國(guó)內(nèi)外科研機(jī)構(gòu)和科技金融公司也紛紛展開了對(duì)區(qū)塊鏈理論研究和實(shí)際應(yīng)用的探索。 2〇15 年,Linux基金發(fā)起超級(jí)賬本(_ Hyperledger)開源項(xiàng)目[4],提供開放式的區(qū)塊鏈應(yīng)用開發(fā)平臺(tái),推進(jìn)區(qū)塊鏈技術(shù)的研究。世界經(jīng)濟(jì)論壇在 2016年金融服務(wù)會(huì)議上對(duì)如何借助區(qū)塊鏈技術(shù)重塑金融服務(wù)進(jìn)行了分析和展望15]。我國(guó)央行也關(guān)注區(qū)塊鏈和數(shù)字貨幣的發(fā)展16],開始嘗試?yán)脜^(qū)塊鏈技術(shù)設(shè)計(jì)數(shù)字票據(jù)交易平臺(tái)原型。
目前,區(qū)塊鏈技術(shù)與金融行業(yè)相結(jié)合的項(xiàng)目眾多 ' 尤其是第二代區(qū)塊鏈技術(shù)智能合約(_ Smart Contract)問提出以后,區(qū)塊鏈技術(shù)在解決跨機(jī)構(gòu)跨行業(yè)的金融支付、結(jié)算、清算業(yè)務(wù)中的優(yōu)勢(shì)日漸突出。此外,區(qū)塊鏈技術(shù)在金融服務(wù)、供應(yīng)鏈服務(wù)、公共服務(wù)、公共慈善和物聯(lián)網(wǎng)等多個(gè)領(lǐng)域都具有極大的潛在價(jià)值。表 1 是區(qū)塊鏈技術(shù)在部分行業(yè)中的應(yīng)用場(chǎng)景。
1.3共識(shí)機(jī)制
1.3.1基本概念
區(qū)塊鏈作為一種按時(shí)間順序存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),可支持不同的共識(shí)機(jī)制。共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的重要組件區(qū)塊鏈共識(shí)機(jī)制的目標(biāo)是使所有的誠(chéng)實(shí)節(jié)點(diǎn)保存一致的區(qū)塊鏈視圖,同時(shí)滿足兩個(gè)性質(zhì)p]:
1) 一致性。所有誠(chéng)實(shí)節(jié)點(diǎn)保存的區(qū)塊鏈的前綴部分完全相同。
2 ) 有效性。由某誠(chéng)實(shí)節(jié)點(diǎn)發(fā)布的信息終將被其他所有誠(chéng)實(shí)節(jié)點(diǎn)記錄在自己的區(qū)塊鏈中
1.3.2評(píng)價(jià)標(biāo)準(zhǔn)區(qū)塊鏈上采用不同的共識(shí)機(jī)制,在滿足一致性和有效性的同時(shí)會(huì)對(duì)系統(tǒng)整體性能產(chǎn)生不同影響。綜合考慮各個(gè)共識(shí)機(jī)制的特點(diǎn),從以下4 個(gè)維度評(píng)價(jià)各共識(shí)機(jī)制的技術(shù)水平:
1 ) 安全性。即是否可以防止二次支付、 自私挖礦 ™ 等攻擊,是否有良好的容錯(cuò)能力。以金融交易為驅(qū)動(dòng)的區(qū)塊鏈系統(tǒng)在實(shí)現(xiàn)一致性的過程中,最主要的安全問題就是如何防止和檢測(cè)二次支付行為。 自私挖礦通過采用適當(dāng)?shù)牟呗园l(fā)布自己產(chǎn)生的區(qū)塊,獲得更高的相對(duì)收益,是一種威脅比特幣系統(tǒng)安全性和公平性的理論攻擊方法。此外, Eclipse攻 擊 111]控制目標(biāo)對(duì)象的網(wǎng)絡(luò)通信,形成網(wǎng)絡(luò)分區(qū)阻隔交易傳播。SybU攻 擊 M 通過生產(chǎn)大量無意義的節(jié)點(diǎn)影響系統(tǒng)安全性。
2 ) 擴(kuò)展性。即是否支持網(wǎng)絡(luò)節(jié)點(diǎn)擴(kuò)展113]。擴(kuò)展性是區(qū)塊鏈設(shè)計(jì)要考慮的關(guān)鍵因素之一。根據(jù)對(duì)象不同,擴(kuò)展性又分為系統(tǒng)成員數(shù)量的增加和待確認(rèn)交易數(shù)量的增加兩部分?jǐn)U展性主要考慮當(dāng)系統(tǒng)成員數(shù)量、待確認(rèn)交易數(shù)量增加時(shí),隨之帶來的系統(tǒng)負(fù)載和網(wǎng)絡(luò)通信量的變化,通常以網(wǎng)絡(luò)吞吐量來衡量D
3 ) 性能效率。即從交易達(dá)成共識(shí)被記錄在區(qū)塊鏈中至被最終確認(rèn)的時(shí)間延遲,也可以理解為系統(tǒng)每秒可處理確認(rèn)的交易數(shù)量。與傳統(tǒng)第三方支持的交易平臺(tái)不同,區(qū)塊鏈技術(shù)通過共識(shí)機(jī)制達(dá)成一致,因此其性能效率問題一直是研究的關(guān)注點(diǎn)。比特幣系統(tǒng)每秒最多處理7 筆交易,遠(yuǎn)遠(yuǎn)無法支持現(xiàn)有的業(yè)務(wù)量。
4 ) 資源消耗。即在達(dá)成共識(shí)的過程中,系統(tǒng)所要耗費(fèi)的計(jì)算資源大小,包 括 CPU、內(nèi)存等。區(qū)塊鏈上的共識(shí)機(jī)制借助計(jì)算資源或者網(wǎng)絡(luò)通信資源達(dá)成共識(shí)。以比特幣系統(tǒng)為例,基于工作量證明機(jī)制的共識(shí)需要消耗大量計(jì)算資源進(jìn)行挖礦,提供信任證明完成共識(shí)。
2 現(xiàn)有的共識(shí)機(jī)制
2.1工作量證明
最初提出工作量證明機(jī)制是為了防止垃圾郵件114]。在比特幣系統(tǒng)中,采用工作量證明機(jī)制保證所有節(jié)點(diǎn)對(duì)一個(gè)待確認(rèn)交易集合達(dá)成一致。只有完成工作量證明的節(jié)點(diǎn)才能提出這一階段的待定區(qū)塊,之后網(wǎng)絡(luò)中的節(jié)點(diǎn)在這個(gè)區(qū)塊后繼續(xù)嘗試完成工作量證明,產(chǎn)生新的區(qū)塊。當(dāng)某一節(jié)點(diǎn)收到兩個(gè)不同的待定區(qū)塊時(shí),選擇鏈更長(zhǎng)的那個(gè)區(qū)塊進(jìn)行驗(yàn)證。鏈越長(zhǎng)意味著該鏈所包含的工作量越多。
工作量證明通常包含3 個(gè)算法 115]:產(chǎn)生挑戰(zhàn)c 的隨機(jī)算法、生 成 5 解決挑戰(zhàn)C的算法和驗(yàn)證挑戰(zhàn)C是否被解決的算法。工作量證明機(jī)制中用到的隨機(jī)算法都是基于計(jì)算問題的。在比特幣系統(tǒng)中,用于產(chǎn)生挑戰(zhàn)C的隨機(jī)算法是基于SHA- 2 5 6的,挑 戰(zhàn) C 由當(dāng)前區(qū)塊鏈的狀態(tài)決定,解決 挑戰(zhàn)c 就是尋找一個(gè)使得其與挑戰(zhàn) c 通 過 SHA-256 可以映射到一個(gè)以連續(xù)幾個(gè) 0 開頭的二進(jìn)制困難系數(shù)上,表不為 工作量證明機(jī)制所選取的計(jì)算問題要滿足如下性質(zhì):
1 ) 偽隨機(jī)性。保證節(jié)點(diǎn)完成工作量證明的概率僅依賴于自身所占有的計(jì)算資源的比例,保證相對(duì)公平性。
2 ) 難度可控。所選取的計(jì)算問題可根據(jù)近期網(wǎng)絡(luò)計(jì)算資源波動(dòng)進(jìn)行適度調(diào)整,保證系統(tǒng)有效運(yùn)行。計(jì)算問題難度過高,則生成區(qū)塊的時(shí)間間隔過長(zhǎng),影響系統(tǒng)效率;難度太低,則完成工作量證明過于容易,會(huì)產(chǎn)生分叉,影響系統(tǒng)一致性。
3 ) 可公開驗(yàn)證。由于去中心化的性質(zhì),要求計(jì)算問題的求解結(jié)果可通過簡(jiǎn)潔的操作公開驗(yàn)證。
采用工作量證明機(jī)制可以實(shí)現(xiàn)區(qū)塊鏈的一致性。當(dāng)區(qū)塊鏈很長(zhǎng)時(shí),除了結(jié)尾的幾個(gè)區(qū)塊,其余已得到全網(wǎng)確認(rèn),實(shí)現(xiàn)了一致性。節(jié)點(diǎn)可自由加人區(qū)塊鏈,節(jié)點(diǎn)的加人或撤離不會(huì)影響區(qū)塊鏈的一致性和安全性。每個(gè)節(jié)點(diǎn)完成工作量證明的概率由它所擁有的計(jì)算資源決定,攻擊者無法通過創(chuàng)建多個(gè)公鑰地址來提高自己完成工作量證明的概率,這樣可以有效抵御Sybn攻擊。同時(shí)在誠(chéng)實(shí)方擁有的計(jì)算資源占多數(shù)的情況下,可有效抵御二次支付,保證系統(tǒng)的安全性。
相關(guān)期刊推薦:《計(jì)算機(jī)科學(xué)》主要報(bào)導(dǎo)國(guó)內(nèi)外計(jì)算機(jī)科學(xué)與技術(shù)的發(fā)展動(dòng)態(tài),涉及面廣的方法論與技術(shù),和反映新苗頭、能起承先啟后作用的研究成果。內(nèi)容涉及程序理論、計(jì)算機(jī)軟件、計(jì)算機(jī)網(wǎng)絡(luò)與信息、數(shù)據(jù)庫(kù)、人工智能、人機(jī)界面、國(guó)際會(huì)議、應(yīng)用等。雜志報(bào)導(dǎo)特點(diǎn)是“前沿學(xué)科”與“基礎(chǔ)研究”相結(jié)合;“核心核術(shù)”與“支撐技術(shù)”相結(jié)合;“倡導(dǎo)”與“爭(zhēng)鳴”相結(jié)合。
然而,工作量證明機(jī)制也存在一些問題。首先,工作量證明機(jī)制存在嚴(yán)重的效率問題。每個(gè)區(qū)塊的產(chǎn)生需要耗費(fèi)時(shí)間,同時(shí)新產(chǎn)生的區(qū)塊需要后續(xù)區(qū)塊的確認(rèn)才能保證有效,這需要更長(zhǎng)的時(shí)間,嚴(yán)重影響系統(tǒng)效率。例如,比特幣系統(tǒng)平均1 0分鐘產(chǎn)生一個(gè)區(qū)塊,需等待 6 個(gè)后續(xù)區(qū)塊進(jìn)行確認(rèn),這樣對(duì)于一個(gè)交易,需等待近 6 0 分鐘才能保證被確認(rèn)。其次,工作量證明機(jī)制的安全性要求攻擊者所占的計(jì)算資源不超過全網(wǎng)的509^,然而從目前比特幣礦池挖礦算力情況來看,算力排名前 5 的礦池的總的算力所占比例已經(jīng)過半116],對(duì)系統(tǒng)的安全性和公平性造成嚴(yán)重威脅第三,工作量證明過程通常是計(jì)算一個(gè)無意義的序列,需要消耗大量計(jì)算資源、電力能源,造成浪費(fèi),即使后來提出的有用的工作量證明機(jī)制(_ Proof of Useful Work) [15]嘗試通過求解正交向量、3SUM、最短路徑等問題,代替尋找無意義的二進(jìn)制數(shù)來抵消需要消耗的資源,仍無法解決效率等問題。