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