自區(qū)塊鏈技術(shù)被提出以來,共識機制作為其核心部分之一受到廣泛關(guān)注。在眾多共識機制中,根據(jù)節(jié)點權(quán)益情況以競爭記賬權(quán)的權(quán)益證明共識機制有著較低能耗和較高性能等特點。為深入研究這一共識機制,第一,闡述了權(quán)益證明的主要原理;第二,將權(quán)益證明機制按照區(qū)塊鏈系統(tǒng)結(jié)構(gòu)劃分為基于鏈結(jié)構(gòu)和圖結(jié)構(gòu)的權(quán)益證明共識機制,并分別介紹了Ouroboros、Algorand、Tendermint、Casper 和LaKSA 這 5 種基于權(quán)益證明的共識機制的特點、共識、性能與安全性;第三,分析了權(quán)益證明共識機制面臨的安全威脅,如無利害關(guān)系攻擊、研磨攻擊、長程攻擊、變節(jié)攻擊和 51% 攻擊,給出應(yīng)對措施;第四,總結(jié)了權(quán)益證明目前的發(fā)展現(xiàn)狀,并對未來發(fā)展提出了展望。
0
引 言
2008 年,中本聰發(fā)表了《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》,其采用的區(qū)塊鏈技術(shù)開始獲得大眾的關(guān)注。因區(qū)塊鏈技術(shù)具有去中心化、不可篡改以及可溯源等特性,受到了各界關(guān)注。隨后,出現(xiàn)了如以太坊 、Monero 與IOTA 等各類加密貨幣,帶來了諸如智能合約、環(huán)簽名以及有向無環(huán)圖結(jié)構(gòu)等功能性、安全性以及結(jié)構(gòu)性創(chuàng)新,區(qū)塊鏈技術(shù)發(fā)展進入了新階段。而在區(qū)塊鏈技術(shù)中,共識機制是其重要組成部分。區(qū)塊鏈網(wǎng)絡(luò)通過共識機制,即節(jié)點間運行共識協(xié)議,實現(xiàn)了在節(jié)點之間建立“信任”網(wǎng)絡(luò), 體現(xiàn)了區(qū)塊鏈去中心化等特性。同時,共識機制也決定了網(wǎng)絡(luò)的中心化程度、安全性和可擴展性。其中權(quán)益證明(PoS)機制作為能耗較低、性能較高的新型共識機制,意在取代傳統(tǒng)的工作量證明(PoW)機制,是目前區(qū)塊鏈領(lǐng)域的重要研究方向,學(xué)界與業(yè)界均對其開展深入研究。
在國內(nèi)研究方面,袁勇等人深入探討了主流共識機制中的共識算法;劉懿中等人將共識機制劃分為對經(jīng)典分布式共識機制和區(qū)塊鏈共識機制,并進行了詳細分析;劉漢卿等人探討了區(qū)塊鏈系統(tǒng)中容易面臨的攻擊狀況;吳狄等人則針對基于區(qū)塊鏈的法定數(shù)字貨幣以及原型系統(tǒng)進行了綜述。
在國外研究方面,Khan 等人對主流加密貨幣的共識機制進行了對比研究;Wang等人分析了主流加密貨幣的共識機制與挖礦策略;Du 等人對工作量證明、權(quán)益證明、委托權(quán)益證明以及傳統(tǒng)分布式共識機制等共識算法進行了分析;Nguyen 等人對基于權(quán)益證明的部分共識機制進行了討論。
本文主要從以下幾點展開研究:第一,概述了區(qū)塊鏈的背景,簡要概述了共識機制的原理, 對工作量證明與權(quán)益證明進行了對比分析;第二,按照系統(tǒng)結(jié)構(gòu)將 Ouroboros、Algorand、Tendermint、Casper與 LaKSA[17] 等5 種基于權(quán)益證明的共識協(xié)議劃分為基于鏈結(jié)構(gòu)的共識機制與基于圖結(jié)構(gòu)的共識機制,并分析了各個協(xié)議的特點、流程、安全性以及性能;第三, 闡述了權(quán)益證明機制面臨的無利害關(guān)系攻擊、研磨攻擊、長程攻擊、變節(jié)攻擊和 51% 攻擊等安全威脅以及其應(yīng)對措施;第四,總結(jié)權(quán)益證明的發(fā)展和展望權(quán)益領(lǐng)域的未來研究方向。
1
共識機制概述
共識機制的研究起源于 1975 年 Akkoyunlu 等人提出的“兩軍問題”,指出了在不可信的信道中通信無法保證一致性。隨后 Lamport 等人提出了“拜占庭將軍問題”,主要研究在存在一定故障節(jié)點或者惡意攻擊時誠實節(jié)點如何實現(xiàn)共識的問題。在 2008 年發(fā)布的比特幣白皮書中,中本聰將共識機制應(yīng)用到加密貨幣系統(tǒng)以及其使用的區(qū)塊鏈技術(shù)中,以完成交易的驗證和確認。
共識機制可分為經(jīng)典分布式機制和區(qū)塊鏈共識機制。經(jīng)典分布式機制有 PBFT、SBFT 和Paxos等。區(qū)塊鏈共識機制根據(jù)應(yīng)用場景的不同可以分為兩種:一種是授權(quán)共識機制,該網(wǎng)絡(luò)中的節(jié)點想要參與共識過程需要通過公鑰進行身份認證;另一種是非授權(quán)共識機制,該網(wǎng)絡(luò)中的節(jié)點可以隨意加入和退出網(wǎng)絡(luò),在目前主流的共識機制中,工作量證明和權(quán)益證明都屬于非授權(quán)共識機制。
在區(qū)塊鏈系統(tǒng)中,共識機制的基本工作流程如下:選舉出塊者、生成區(qū)塊和節(jié)點驗證更新區(qū)塊。安全性、交易吞吐量、可拓展性、交易確認時間、去中心化程度和能源消耗等是衡量區(qū)塊鏈共識機制的標(biāo)準(zhǔn)。接下來將從以上幾個方面闡述目前主流的共識機制:工作量證明 (Proof-of-Work,PoW) 與權(quán)益證明 (Proof-of- Stake,PoS)。
1.1 工作量證明機制
工作量證明是 1992 年由 Dwork 等人共同提出,用來防止垃圾郵件。隨著比特幣的誕生,基于工作量證明的共識機制正式進入了公眾的視野。在基于 PoW 機制中,節(jié)點是通過不斷的單向哈希(Hash)計算尋找一個隨機數(shù)(nonce) 的過程來達成共識,最先算出 nonce 值的節(jié)點即被選為出塊者,這也就意味著算力越大的節(jié)點越有可能成為出塊者。由于哈希函數(shù)的特性, 只能通過反復(fù)嘗試不同的 nonce 值來找到滿足輸出哈希值前 n 位為零的值,其中 n 的值關(guān)系到哈希計算難度的大小,通過 PoW 機制的難度調(diào)整機制,保證數(shù)字貨幣不論在何種算力之下, 其出塊速度在一定速度范圍內(nèi)波動。
在 PoW 機制中,參與者互相競爭,第一個找到正確 nonce 的參與者就可以獲得記賬的權(quán)利。在這個搜尋隨機數(shù)的過程中,參與者擁有的算力越多,就越有可能獲得記賬權(quán)。參與者為了提高獲得記賬權(quán)的概率,會不斷提高算力,在這種計算模式下,導(dǎo)致了 PoW 共識機制在挖礦過程中需要消耗大量的能源。此時,算力較低的參與者因其獲得獎勵的概率相對較低,可通過加入礦池等措施,以期獲得一定的收入。礦池是由大量的參與者組成,由于其擁有巨大的計算資源,將會有更多的機會來獲得記賬權(quán)。
比特幣和以太坊目前使用工作量證明作為共識機制。在 PoW 機制中,各節(jié)點需投入大量計算資源用以挖礦,即通過進行 Hash 運算來爭奪記賬權(quán)。但挖礦計算無實際意義,將造成大量計算資源浪費,并且 PoW 機制性能較低,如比特幣每分鐘僅支持 7 筆交易,以太坊每分鐘僅支持 15 筆交易。同時,隨著礦池算力的增加, 特別是針對挖礦算法而研發(fā)的 ASIC 礦機出現(xiàn), 導(dǎo)致基于PoW 機制的加密貨幣受到了“中心化”的挑戰(zhàn)。此外,PoW 機制主要面臨的安全隱患有日蝕攻擊、雙花攻擊和自私挖礦等。
1.2 權(quán)益證明機制
PoS 機制解決了 PoW 機制拓展性差和能源消耗大的問題,該機制不依賴計算哈希問題, 僅依據(jù)節(jié)點所持有的權(quán)益大?。垂?jié)點在區(qū)塊鏈網(wǎng)絡(luò)中投入或存儲的數(shù)字資產(chǎn)總額)決定新區(qū)塊的記賬歸屬。因此,在 PoS 機制中不需要堆積算力,僅需在區(qū)塊鏈網(wǎng)絡(luò)中投入權(quán)益即可參加記賬權(quán)的競爭,以此解決了 PoW 機制的能源消耗問題。
綜上所述,從 PoW 機制到 PoS 機制,共識機制向著更加節(jié)能、安全、高效的方向發(fā)展。表 1 是兩種共識機制在出塊者選擇、能源消耗、區(qū)塊生成時間、交易確認速度、設(shè)備要求、安全隱患和應(yīng)用這幾個方面的比較。
2
基于權(quán)益證明的機制
自 King 提出點點幣(PPCoin)后,首次將PoS 機制引入加密貨幣系統(tǒng)中 ,PoS 機制因其具有能耗較低與性能較高的特性,獲得廣泛關(guān)注。隨后,各界分別針對性能與安全性等方面提出了大量基于 PoS 機制的共識協(xié)議。而在基于 PoS 的共識機制中,可根據(jù)采用該機制的區(qū)塊鏈系統(tǒng)結(jié)構(gòu),將其分為基于鏈結(jié)構(gòu)的共識機制和基于圖結(jié)構(gòu)的共識機制。以下從共識特點、共識流程、安全性分析以及性能等方面分別對基于鏈結(jié)構(gòu)的 Ouroboros、Algorand、Tendermint 和 Casper 協(xié)議與基于圖結(jié)構(gòu)的 LaKSA 協(xié)議進行介紹。
2.1 Ouroboros 協(xié)議
Ouroboros 是由 Kiayias 等人提出的基于權(quán)益證明的共識協(xié)議,是第一個可證明安全性的基于 PoS 的共識機制。
表 1 共識機制的比較
(1)共識特點
Ouroboros 協(xié)議將時間劃分為幾個時期,每個時期由多個輪組成,每輪產(chǎn)生的區(qū)塊數(shù)最多為 1,若該輪的出塊者不在線或者未及時將創(chuàng)建的區(qū)塊廣播到網(wǎng)絡(luò)中,則本輪將不產(chǎn)生區(qū)塊。在 Ouroboros 協(xié)議中,每一個時期節(jié)點的權(quán)益值是由該時期開始時各節(jié)點的歷史權(quán)益值來計算, 若權(quán)益值發(fā)生改變,不影響當(dāng)前時期出塊者的選擇,并且 Ouroboros 要求相連幾個時期,節(jié)點的權(quán)益值變化不能過大。在每個時期開始時,有一個創(chuàng)世區(qū)塊記錄了該時期出塊者候選人和第一輪的隨機種子,由該種子通過 FTS(Follow- the-Satoshi)算法選出第一輪的出塊者即為該輪的領(lǐng)導(dǎo)者,節(jié)點是否被選為領(lǐng)導(dǎo)者由其擁有的權(quán)益值決定,擁有的權(quán)益值越高,被選為領(lǐng)導(dǎo)者的可能性就越大。其中每一輪都通過安全多方協(xié)議產(chǎn)生隨機數(shù),選取出該輪的出塊者。在Ouroboros 協(xié)議中,選擇該輪領(lǐng)導(dǎo)者的同時,還要選出交易驗證者。在協(xié)議執(zhí)行過程中,領(lǐng)導(dǎo)者只是創(chuàng)建一個空區(qū)塊,交易是由驗證者確認并將交易添加到區(qū)塊中。建立區(qū)塊所獲得的獎勵將分給領(lǐng)導(dǎo)者和驗證者,以此來激勵更多的人參與到共識機制中。
(2)共識流程
?、儆?FTS 算法選取領(lǐng)導(dǎo)者和驗證者;
?、陬I(lǐng)導(dǎo)者創(chuàng)建空區(qū)塊;
?、垓炞C者確認交易并將交易添加到區(qū)塊中;
?、茴I(lǐng)導(dǎo)者和驗證者劃分獎勵。Ouroboros 協(xié)議工作流程如圖 1 所示。
圖 1 Ouroboros 協(xié)議工作流程
?。?)安全性分析
與其他基于 PoS 機制的協(xié)議相 比, Ouroboros 在提出時就已通過安全性證明,并且具有較強的激勵兼容性。但是,Ouroboros 只能證明在敵手股份少于 51% 時整個網(wǎng)絡(luò)是安全的,該協(xié)議依舊無法承受 51% 攻擊。同時在Ouroboros 協(xié)議中,由于領(lǐng)導(dǎo)者的身份是公開的, 增加了敵手發(fā)動賄賂攻擊的可能性。針對這一問題,David 等人提出了 Ouroboros Praos,在建塊成功之前將領(lǐng)導(dǎo)者的身份隱藏,以此有效地降低了敵手發(fā)動賄賂攻擊的可能。
PoS 機制通過檢查點機制來應(yīng)對新加入的節(jié)點易受到長程攻擊的情況,但由于檢查點機制是通過選取一個信任節(jié)點的方式來確認正確的區(qū)塊節(jié)點,有可能會導(dǎo)致中心化。Badertscher 等人舍棄檢查點機制,提出了 Ouroboros Genesis, 為新加入網(wǎng)絡(luò)的節(jié)點設(shè)計了自啟過程,新節(jié)點對比不同鏈,選出與其他鏈有共同前綴并且最長的鏈為正確的區(qū)塊鏈,以此來解決 PoS 機制易于受到長程攻擊的問題。
?。?)性能
Ouroboros 目前已經(jīng)被 Cardano、Sp8de 等加密貨幣方案使用。相較于其他區(qū)塊鏈協(xié)議, Ouroboros 的優(yōu)勢是交易確認時間短,約為2 min, 交易吞吐量高,為 250 tx/s,同時其也具備權(quán)益證明共識機制所具備的優(yōu)勢,Ouroboros 的能量損耗小。
2.2 Algorand 協(xié)議
Algorand 是在 2016 年由 SilvioMicali 等人共同提出的區(qū)塊鏈協(xié)議。Algorand 的提出是為了建立耗能更低、拓展性更好、更加去中心化的分布式賬本。
?。?)共識特點
Algorand 的共識過程主要是隨機選擇出塊者和形成共識,其中 Algorand 中提出了一種新的共識協(xié)議 BA*(Byzantine Agreement)。BA* 與 Ouroboros 相似,Algorand 也是以委員會的形式運作。但是,Algorand 選擇領(lǐng)導(dǎo)者和委員會成員的方式不是 FTS 算法,而是密碼學(xué)加密抽簽的方式。由于區(qū)塊生成者節(jié)點由加密抽簽后偽隨機算法決定,因此不會讓對手預(yù)先知道攻擊目標(biāo)。加密抽簽是一種可驗證隨機函數(shù)(VRF),用共識節(jié)點的私鑰和種子作為輸入,其中種子是隨機生成的并且每一輪都會重新創(chuàng)建,接著輸出哈希值和用于公共驗證的證明。每一個節(jié)點可以分得一個與其權(quán)益值成比例的哈希值范圍,如果節(jié)點哈希值在分配的共識節(jié)點范圍內(nèi),則該節(jié)點會被選中,其選中概率與其權(quán)益值成正比。
?。?)共識流程
①用密碼學(xué)加密抽簽算法選取領(lǐng)導(dǎo)者和驗證者;
②領(lǐng)導(dǎo)者創(chuàng)建區(qū)塊;
?、垓炞C者運行 BA* 協(xié)議進行交易驗證。
Algorand 協(xié)議工作流程如圖 2 所示。
圖 2 Algorand 協(xié)議工作流程
?。?)安全性分析
在 Algorand 中,只要誠實節(jié)點控制的權(quán)益超過總權(quán)益的 51%,就可以保障此協(xié)議安全。被選中參與投票的節(jié)點均秘密知道其身份,其身份在投票后被公布。因此,即使敵手攻擊這些節(jié)點,但節(jié)點發(fā)送的消息已經(jīng)無法撤銷,用于簽名的一次性臨時密鑰也會被立刻丟棄,使敵手無法以此生成合法信息。并且 BA* 協(xié)議每次循環(huán)過程都會選擇新的驗證者,大大降低了驗證者聯(lián)合攻擊網(wǎng)絡(luò)的風(fēng)險。
(4)性能
Algorand 的交易吞吐量可以達到 875 tx/s, 相對于其他協(xié)議而言,每秒鐘的交易吞吐量較高, 它的平均交易確認時間是 20 s。Algorand 可快速確認交易,并且出現(xiàn)分叉的概率很小, 不會因為用戶的增多而影響交易的確認速度。正是因為這些優(yōu)點,目前 Algorand 已經(jīng)被多家加密貨幣公司所采用。
2.3 Tendermint 協(xié)議
Tendermint 是 Kwon 開 發(fā), 由 Buchman 在博士論文中提出的分布式平臺 ,其包含了共識協(xié)議、實現(xiàn)代碼、接口以及管理工具,旨在解決數(shù)字貨幣等分布式系統(tǒng)存在的共識問題。為方便討論,本文以Tendermint 指代其共識協(xié)議。
?。?)共識特點
Tendermint 屬于拜占庭容錯算法,它針對傳統(tǒng)的實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT) 共識算法做了優(yōu)化, 使用BFT 投票協(xié)議確認區(qū)塊,并且需要兩輪投票才可達成共識,這兩個階段分別是預(yù)投票(pre- vote) 和預(yù)提交(pre-commit)。在 Tendermint 協(xié)議中的節(jié)點被稱為驗證人。與其他協(xié)議類似, 驗證者通過在系統(tǒng)中存款獲得投票權(quán),這些驗證者輪流成為每一個區(qū)塊的提議者。提議者提議出一個區(qū)塊,同時由驗證者進行預(yù)投票簽名, 接著由驗證者預(yù)提交,當(dāng)超過 2/3 的驗證者將區(qū)塊預(yù)提交到系統(tǒng)中,此塊才能上鏈,并在鏈上占據(jù)一定的“高度”。提交塊存在失敗的可能,如果失敗,協(xié)議會進行下一輪提交,會有新的提議者提出那個高度的區(qū)塊,并由驗證者去提交。
?。?)共識流程
?、儆眉用艹楹炈惴ㄟx出驗證者,并在其中選出提議者;
?、谔嶙h者創(chuàng)建新區(qū)塊;
?、垓炞C者對新區(qū)塊進行預(yù)投票簽名;
?、茯炞C者對新區(qū)塊進行預(yù)提交;
?、莳剟铗炞C者和提議者。
Tendermint 協(xié)議工作流程如圖 3 所示。
圖 3 Tendermint 協(xié)議工作流程
?。?)安全性分析
當(dāng)誠實節(jié)點持有權(quán)益大于或等于總權(quán)益的2/3 時,可保障 Tendermint 協(xié)議安全。由于網(wǎng)絡(luò)的延時性,兩輪投票可能出現(xiàn)在一個高度的不同輪提交兩個區(qū)塊的情形,Tendermint 引入了鎖機制,使驗證者只能在鎖定高度預(yù)提交區(qū)塊。Tendermint 可以在多個機器上一致地復(fù)制同一應(yīng)用,每一個工作節(jié)點都會有相同的交易日志, 這一優(yōu)點對提高分布式系統(tǒng)的容錯性能起到重要作用。正是其同步一致的特性,使 Tendermint沒有分叉問題,所以可以排除與分叉相關(guān)的攻擊。雖然 Tendermint 已經(jīng)被證明可以抵御多種攻擊,但是此協(xié)議缺乏形式定義和理論背景, 并且輪流擔(dān)任提議者會給網(wǎng)絡(luò)帶來安全隱患。
?。?)性能
Tendermint 在創(chuàng)建之初,其開發(fā)團隊就致力于實現(xiàn)快速的交易處理速度,其交易吞吐量最高為 800 tx/s,交易確認的平均時間是 1 s。
2.4 Casper 協(xié)議
Casper 是由 Buterin 和 Criffith 共同提出的用于以太坊網(wǎng)絡(luò)的共識算法,該算法是 PoW機制和 PoS 機制的結(jié)合,是以太坊拋棄高耗能PoW 機制逐漸向 PoS 機制過渡的產(chǎn)物。
(1)共識特點
Casper 依舊是由 PoW 算法選取出塊者,但是它加入了動態(tài)委員會機制,每間隔 50 個區(qū)塊選取驗證者檢查出塊是否合理。此時,Casper 協(xié)議中的節(jié)點想要成為驗證者參與共識過程需要交保證金,被選為驗證者的概率與繳納的保證金數(shù)成正比。同時若是驗證人做出了危害協(xié)議的行為, 其保證金就會被系統(tǒng)扣除,并且剝奪其參與共識的權(quán)利。這就為網(wǎng)絡(luò)中的節(jié)點提供了識別當(dāng)前情況下合法鏈的方法,只要獲取當(dāng)前鎖定保證金的驗證者列表,即可推斷出合法最長鏈,這在某種程度上有效解決了“長程攻擊”的問題。
Casper 的投票過程滿足下注共識,該共識要求驗證者將繳納的保證金中的一大部分拿來下注候選區(qū)塊,當(dāng)驗證者和其他大部分驗證者選擇同一塊區(qū)塊時,即為下注成功,驗證者可以取回保證金和交易費用,可能還有新發(fā)的貨幣作為獎勵;若是驗證者和大部分驗證者的選擇結(jié)果沒有快速達成一致,驗證者就不能取回全部的保證金。在幾次投注之后,驗證者的投注就會收斂;若是驗證者在多輪投注中,投注目標(biāo)改變較大,驗證者就會受到懲戒,以此來保證驗證者下注收斂于一個結(jié)果。當(dāng)絕大多數(shù)驗證者下注這個區(qū)塊時,這一區(qū)塊會成為鏈中一部分,而不包含這個區(qū)塊的分叉會被排除, 在一定程度上提高了整個鏈的安全性。
(2)共識流程
?、俟?jié)點通過 PoW 機制創(chuàng)建一個區(qū)塊;
?、趨⑴c驗證的節(jié)點繳納保證金,選取驗證者;
?、垓炞C區(qū)塊,驗證者下注候選區(qū)塊;
?、苋艉蜻x區(qū)塊成功上鏈,驗證者劃分獎勵。Casper 協(xié)議工作流程如圖 4 所示。
圖 4 Casper 協(xié)議工作流程
?。?)安全性分析
如上文所述,Casper 投票機制的驗證者都是公開可查的,同時該機制針對離線節(jié)點提出處罰機制,讓更多的節(jié)點保持在線,綜上得出, 此協(xié)議可以在一定程度上避免“長程攻擊”。并且只要驗證有 2/3 的投票權(quán)由誠實節(jié)點控制, 整個協(xié)議就是安全的。Casper 在投票過程中的下注機制,可以保證更多的參與者遵守協(xié)議,解決“無利害攻擊”的問題。但是 Casper 運行在PoW 機制上,該協(xié)議同樣無法逃避 51% 攻擊。
?。?)性能
Casper 運行在 PoW 機制上,雖然 PoW 機制保證 Casper 一定的安全性,但是 Casper 的性能是由 PoW 機制決定,所以該機制的交易確認速度會低于上述的其他機制。
2.5 LaKSA 協(xié)議
LaKSA 是由 Reijsbergen 等人提出的新型PoS 協(xié)議,用以解決傳統(tǒng) PoS 機制中存在的激勵中心化、長程攻擊以及無利害攻擊等問題, 并且避免了部分 PoS 協(xié)議中出現(xiàn)的委員會機制內(nèi)類 BFT 共識通信過于復(fù)雜的問題。
?。?)共識特點
LaKSA 采用基于概率統(tǒng)計的區(qū)塊提交規(guī)則。節(jié)點在選擇區(qū)塊時,分別計算各個區(qū)塊被撤回的概率,選擇提交區(qū)塊推翻概率低于閾值的區(qū)塊。在結(jié)構(gòu)方面,LaKSA 改進了 GHOST* 協(xié)議,將系統(tǒng)從鏈型結(jié)構(gòu)拓展為圖結(jié)構(gòu)(樹式結(jié)構(gòu)),區(qū)塊可引用因爭奪記賬權(quán)失敗而出現(xiàn)分叉區(qū)塊,使得分叉中交易可被確認,有效提高交易吞吐量。
?。?)共識流程
LaKSA 共識機制分為投票者選舉與領(lǐng)導(dǎo)者選舉兩個階段。
?、俑鶕?jù)投票者權(quán)益比例與該輪偽隨機信標(biāo)對所有權(quán)益進行抽樣,得出該輪的投票者抽樣子集;
?、诠?jié)點分別檢查是否當(dāng)選為投票者,若是, 則計算可投票數(shù)并進行投票;
③投票者節(jié)點分別廣播投票結(jié)果,結(jié)束投票者選舉階段;
?、芨鶕?jù)領(lǐng)導(dǎo)者權(quán)益比例與該輪偽隨機信標(biāo)對所有權(quán)益進行抽樣,得出該輪的領(lǐng)導(dǎo)者抽樣子集;
?、莨?jié)點分別檢查是否當(dāng)選為領(lǐng)導(dǎo)者,若是, 則構(gòu)建區(qū)塊;
⑥領(lǐng)導(dǎo)者節(jié)點廣播區(qū)塊,結(jié)束領(lǐng)導(dǎo)者選舉階段,共識結(jié)束。
LaKSA 協(xié)議工作流程如圖 5 所示。
圖 5 LaKSA 協(xié)議工作流程
?。?)安全性分析
通過采用概率性區(qū)塊選擇規(guī)則,LaKSA 實現(xiàn)了基于概率的安全性保障,且通過對可接受的區(qū)塊推翻概率的閾值進行修改可以較好地抵抗長程攻擊。此外,LaKSA 協(xié)議中的投票者選舉階段與領(lǐng)導(dǎo)者選舉階段可能遭受拒絕服務(wù)攻擊,可通過采用如 Dandelion 等技術(shù)對節(jié)點進行保護,防御拒絕服務(wù)攻擊。
?。?)性能
得益于其基于概率的提交規(guī)則與樹形結(jié)構(gòu),LaKSA 具有較高的吞吐量。Reijsbergen 等人公布的測試結(jié)果表明,當(dāng)存在 100 個節(jié)點的模擬環(huán)境下,LaKSA 吞吐量最高為 1300 tx/s。
各協(xié)議的結(jié)構(gòu)、交易確認、敵手容量、交易確認時間、交易速度、安全隱患和應(yīng)用如表2 所示。
表 2 基于 PoS 機制的區(qū)塊鏈協(xié)議比較
3
權(quán)益證明機制的攻擊和應(yīng)對措施
權(quán)益證明受到的安全威脅主要有無利害關(guān)系攻擊、研磨攻擊、長程攻擊、變節(jié)攻擊和51% 攻擊等攻擊,下面對以上 5 種主要攻擊方式進行闡述,并給出應(yīng)對措施。
3.1 無利害關(guān)系攻擊
無利害關(guān)系攻擊是 PoS 機制上較為常見的攻擊方式。正因為在PoS 機制中,生成新區(qū)塊所需要付出的代價很小,并且驗證區(qū)塊還能獲得幣作為獎勵,所以部分驗證者為了讓自己的利益最大化,會在不同的分鏈上去驗證新的區(qū)塊,當(dāng)這些分鏈發(fā)布到網(wǎng)上,無論哪一條分鏈勝出,驗證者都會獲得獎勵。在此情況下,區(qū)塊鏈更容易產(chǎn)生分鏈,使得區(qū)塊鏈更容易受到雙花攻擊。
為了應(yīng)對無利害關(guān)系攻擊,PoS 機制共識機制讓參與驗證的節(jié)點向系統(tǒng)繳納押金,以此獲得驗證權(quán)。當(dāng)系統(tǒng)檢測出驗證人出現(xiàn)雙簽的情況時,該驗證人在系統(tǒng)中的押金就會被扣除, 并且押金數(shù)額會遠高于獲得懲罰數(shù)額,同時撤銷該節(jié)點驗證者的身份。
3.2 研磨攻擊
研磨攻擊主要發(fā)生在 PoS 機制選擇領(lǐng)導(dǎo)者的過程中。攻擊者通過攻擊領(lǐng)導(dǎo)者選舉函數(shù),影響函數(shù)中種子的隨機性,使領(lǐng)導(dǎo)者的選擇向著有利于敵手控制的節(jié)點方向發(fā)展,使這些節(jié)點有更高的概率被選為領(lǐng)導(dǎo)者,以此讓區(qū)塊鏈更有可能受到攻擊。針對這一攻擊,Kiayias 等人提出了委員會的概念,由委員會成員共同算出下一輪的種子, 以此保障領(lǐng)導(dǎo)選舉函數(shù)的隨機性。
其中幣齡攻擊就是研磨攻擊的一種,幣齡這一概念是在 PPCoin 上提出來的,節(jié)點擁有越多的幣,并且擁有幣的時間越長,就越有可能被選為出塊者,所以攻擊者只需要不斷積累自己的幣齡,就越有可能在下一輪被選為出塊者, 也就是說節(jié)點會隨著時間的增長被選為出塊者的概率就會越高,攻擊者會通過不斷積累時間的方式,來讓選中的概率提升。主要的解決方案是設(shè)置幣齡的最大上限或者幣齡不作為領(lǐng)導(dǎo)選舉函數(shù)的參數(shù),目前權(quán)益證明在很多情況下已經(jīng)去除了幣齡這一概念,從而解決了幣齡攻擊這一問題。
3.3 長程攻擊
長程攻擊是PoS 機制系統(tǒng)最大的威脅之一, 攻擊者創(chuàng)建一條從創(chuàng)世鏈開始的長區(qū)塊鏈分叉, 以此替換合法主鏈。區(qū)塊鏈系統(tǒng)中最易受到長程攻擊的是新加入節(jié)點和長期離線節(jié)點,這些節(jié)點具有弱主觀性,當(dāng)這類節(jié)點進入網(wǎng)絡(luò)時, 它們會接收到區(qū)塊鏈上所有公開分叉,并且不能分辨出哪些分叉屬于主鏈。
相較于 PoS 機制,PoW 機制不易受到長程攻擊,由于 PoW 機制受算力的影響很大,所以攻擊者想要創(chuàng)建一條非法的分支鏈來代替主鏈, 首先需要獲得50% 以上的算力來創(chuàng)建一條分鏈, 同時想要分鏈的長度達到主鏈的長度,需要大量的算力來作為支撐,這對攻擊者而言是得不償失的。PoS 機制中不依靠算力來創(chuàng)建新的區(qū)塊, 所以攻擊者創(chuàng)建新鏈的代價相對較小,PoS 機制也就更容易受到長程攻擊的威脅。
目前針對長程攻擊的應(yīng)對措施主要為移動檢查點、情境感知交易和經(jīng)濟懲罰。
移動檢查點是所有 PoS 機制協(xié)議中都會用到的保護措施。移動檢查點的意義在于網(wǎng)絡(luò)中區(qū)塊鏈只有末端的圖片個區(qū)塊可以被重組,可能被重組的區(qū)塊數(shù)目 圖片 取決于協(xié)議實施的不同。正因為移動檢查點規(guī)定了攻擊者的攻擊范圍,使攻擊者無法做到從創(chuàng)世區(qū)塊開始生成一條私鏈來代替主鏈。
情境感知交易是在每個交易中加入上一個區(qū)塊的哈希值,因此,每一筆交易都與特定的區(qū)塊和分支聯(lián)系起來。通過情境感知交易,保存在當(dāng)前分支中的一個交易將不會被復(fù)制到其他分支中,也就是說,攻擊者無法將主鏈上的交易復(fù)制到這條私鏈上,所以攻擊者只能被迫創(chuàng)造一條完全不一樣的歷史交易數(shù)據(jù),這大大提高了攻擊的難度。
在經(jīng)濟懲罰中,若驗證者被檢測到存在不正當(dāng)?shù)男袨?,即為在相同的區(qū)塊高度中該驗證者驗證了不同的區(qū)塊,則該驗證者在網(wǎng)絡(luò)中存入的貨幣就會被扣除,并且有可能撤銷驗證者的身份。當(dāng)然經(jīng)濟懲罰也存在一定的局限性, 若該驗證者只參加了私鏈的驗證,將無法查出其具備不當(dāng)行為,無法給予懲罰。
3.4 變節(jié)攻擊
變節(jié)攻擊是指攻擊者通過購買、行賄或破解的方式獲得舊驗證人私鑰,通過這些舊驗證人私鑰去簽署以往區(qū)塊,以此來達到攻擊者快速完成較長鏈的目的。
要解決變節(jié)攻擊的問題,可以使用密鑰演進加密技術(shù)(Key-Evolving Cryptography,KEC) 的方式動態(tài)生成簽名私鑰,使攻擊者無法獲得有效私鑰。除此之外,密鑰演進加密技術(shù)和前文中提到的移動檢查點技術(shù)也可解決變節(jié)攻擊的問題。
3.5 51% 攻擊
當(dāng)攻擊者擁有網(wǎng)絡(luò)中大多數(shù)的權(quán)益時,尤其是攻擊者的權(quán)益超過 51% 時,攻擊節(jié)點被選為當(dāng)前這一時段領(lǐng)導(dǎo)者可能性的概率會很高, 并且該攻擊節(jié)點有被持續(xù)選為出塊者的可能, 創(chuàng)造一條私鏈代替原來的主鏈就變得很容易。由于 PoS 機制沒有算力成本,攻擊成本也相對較低,導(dǎo)致 PoS 機制共識機制會存在讓富者控制區(qū)塊鏈的風(fēng)險。
目前并沒有合適的方法去應(yīng)對 51% 攻擊,但是對于擁有 51% 權(quán)益的節(jié)點而言,攻擊系統(tǒng)有可能導(dǎo)致整個系統(tǒng)陷入風(fēng)險中,因此影響到攻擊者自身的利益,所以于這樣的節(jié)點而言, 攻擊區(qū)塊鏈反而得不償失。
?。?/p>
權(quán)益證明機制的發(fā)展和展望
自權(quán)益證明機制被提出以來,因其具有較低能耗與較高性能的特點,并且與現(xiàn)實中企業(yè)決策架構(gòu)較為類似,一直受到學(xué)界與業(yè)界的廣泛關(guān)注,出現(xiàn)了大量改進方案,并持有一定的研究熱度。以下對權(quán)益證明機制的發(fā)展進行總結(jié),并對權(quán)益證明機制的未來進行展望。
4.1 權(quán)益證明機制的發(fā)展
為了解決工作量證明機制帶來的資源浪費問題,同時滿足日益增長的交易吞吐量需求,權(quán)益證明這一機制被提出。自 King 等人提出權(quán)益證明機制后,學(xué)界與業(yè)界涌現(xiàn)出大量的解決方案, 其中尤為出名的是 Casper FFG、Ouroboros以及Algorand 等協(xié)議,分別通過結(jié)合工作量證明、微型區(qū)塊以及委員會機制等方法在降低能耗的同時實現(xiàn)較高的交易吞吐量,一定程度上解決了傳統(tǒng)工作量證明中存在的問題,提高了區(qū)塊鏈系統(tǒng)性能。但是,權(quán)益證明機制存在受到無利害攻擊、長程攻擊及研磨攻擊等安全威脅, 并且這一機制中的激勵模式仍存在鼓勵中心化的問題,可能出現(xiàn)誠實節(jié)點收益低于惡意節(jié)點收益的情況。總而言之,權(quán)益證明機制具有較低能耗與較高吞吐量等優(yōu)點,部分解決了工作量證明機制中存在的問題,具有較為廣闊的發(fā)展前景。
4.2 權(quán)益證明機制的展望
權(quán)益證明共識機制作為接替工作量證明機制的主要共識機制之一,在實際應(yīng)用過程中依舊存在一些不足,未來對于權(quán)益證明共識機制的研究主要有以下幾個方面。
?。?)安全方面:目前 PoS 機制依舊面臨無利害攻擊、長程攻擊及研磨攻擊等威脅,如何在不違背區(qū)塊鏈去中心化初衷的前提下,提出更為安全的權(quán)益證明共識機制方案是未來研究者探索的主要方向之一。
(2)擴容方面:采用 PoS 機制雖然可減少PoW 機制所需的大量計算資源,但由于 PoS 機制仍需通過投票等流程決定記賬權(quán),投票流程對吞吐量造成一定的影響。并且,在爭奪記賬權(quán)的過程中,容易造成部分交易未被包含在勝選者所打包的區(qū)塊中而被丟失,從而影響交易性能,在效率上仍然有待提高。對此,可采取優(yōu)化投票流程、將區(qū)塊鏈擴展為樹結(jié)構(gòu)或圖結(jié)構(gòu)等方法進行擴容。
?。?)激勵方面:解決獎勵收益過于集中化、領(lǐng)導(dǎo)者獲取絕大多數(shù)獎勵的現(xiàn)狀,重新劃分獎勵分配比例,制定合理的獎勵和懲戒機制,讓作惡收益少于激勵收益,促使更多的用戶以誠實的態(tài)度加入到共識機制的運行中。
?。?/p>
結(jié) 語
權(quán)益證明機制是區(qū)塊鏈共識機制中重要的一員,具有效率較高與能源消耗較低等優(yōu)點, 擁有廣泛的應(yīng)用前景。當(dāng)前,對權(quán)益證明機制的研究處于快速發(fā)展階段,學(xué)界與業(yè)界出現(xiàn)了大量改進方案與應(yīng)用實例。本文通過對比工作量證明機制,細致分析權(quán)益證明機制的特點、模型、結(jié)構(gòu)、交易流程與安全性。并從安全、擴容、激勵機制這三個方面,對權(quán)益證明機制未來發(fā)展提出了展望。