◆任 明 湯紅波 王 理
(信息工程大學(xué) 河南 450001)
隨著區(qū)塊鏈技術(shù)在最近幾年的快速發(fā)展,該領(lǐng)域內(nèi)的應(yīng)用項(xiàng)目也在逐步增多。包括金融、物聯(lián)網(wǎng)、醫(yī)療在內(nèi)的諸多行業(yè),都已經(jīng)開(kāi)始在各自的業(yè)務(wù)內(nèi)使用區(qū)塊鏈技術(shù)。區(qū)塊鏈技術(shù)通過(guò)使用加密技術(shù),可以為多種形式的業(yè)務(wù)場(chǎng)景提供可溯源。由于其具有不易篡改的特性,能夠在非信任的條件下為業(yè)務(wù)的參與者們提供可信的業(yè)務(wù)環(huán)境,有效地提升了業(yè)務(wù)邏輯的可信程度。
共識(shí)機(jī)制是區(qū)塊鏈技術(shù)中的重要組成部分之一。隨著區(qū)塊鏈技術(shù)的快速發(fā)展與應(yīng)用項(xiàng)目的逐步增多,在最初比特幣[1]系統(tǒng)中使用的 PoW(工作量證明)機(jī)制遠(yuǎn)不能達(dá)到業(yè)內(nèi)人士對(duì)于網(wǎng)絡(luò)性能的期望。因此,學(xué)者們陸續(xù)提出了不少關(guān)于共識(shí)機(jī)制改進(jìn)和優(yōu)化的方案。比較典型的包括PoS機(jī)制[2]、DPoS機(jī)制[3]、Raft協(xié)議[4]、Ripple協(xié)議[5]、SCP[6][7],等等。拜占庭容錯(cuò)(BFT)算法也是其中之一,用來(lái)解決在網(wǎng)絡(luò)通信可靠、但是節(jié)點(diǎn)自身可能出現(xiàn)問(wèn)題的情況下如何達(dá)成共識(shí)的問(wèn)題,該類(lèi)算法的可靠性可以通過(guò)嚴(yán)格的數(shù)學(xué)證明作為保障。但是,所有的BFT問(wèn)題的解決方案都存在復(fù)雜度過(guò)高而難以實(shí)現(xiàn)的問(wèn)題。在2002年Castro與Liskov提出的PBFT算法[8]雖然將拜占庭容錯(cuò)算法的復(fù)雜度由指數(shù)級(jí)降低到了多項(xiàng)式級(jí)別,但是其實(shí)現(xiàn)的復(fù)雜度仍然較高。同時(shí),在Hyperledger Fabric項(xiàng)目V0.6版本中對(duì)其的應(yīng)用中,有研究學(xué)者發(fā)現(xiàn)PBFT算法的網(wǎng)絡(luò)擴(kuò)展能力會(huì)受到很大的限制[10]。因此,本文基于PBFT算法,提出一種簡(jiǎn)易的拜占庭容錯(cuò)共識(shí)協(xié)議來(lái)提升網(wǎng)絡(luò)中的共識(shí)效率。與此同時(shí),將量子隨機(jī)數(shù)的概念引入共識(shí)機(jī)制的設(shè)計(jì)中,用來(lái)解決傳統(tǒng)的偽隨機(jī)數(shù)在共識(shí)參與者選擇過(guò)程中的偽造問(wèn)題以及控制共識(shí)過(guò)程的安全問(wèn)題。
拜占庭容錯(cuò)算法起源于1980年Leslie Lamport等人發(fā)表的論文《Polynomial Algorithms for Byzantine Agreement》,文中提出了針對(duì)拜占庭問(wèn)題[9]的容錯(cuò)算法。這種算法既要在保證節(jié)點(diǎn)間網(wǎng)絡(luò)狀態(tài)一致,同時(shí)也要確保記錄數(shù)據(jù)的正確性。
PBFT算法在一定程度降低了算法復(fù)雜度的同時(shí),在密碼學(xué)方面引入了 RSA簽名算法與消息驗(yàn)證的編碼、摘要技術(shù)來(lái)保證信息在傳遞的過(guò)程中不會(huì)受到惡意的篡改和破壞。此算法具有1/3的容錯(cuò)率,當(dāng)出現(xiàn)不超過(guò)1/3的失效節(jié)點(diǎn)時(shí),該算法可以保證網(wǎng)絡(luò)的安全性與活躍程度。事實(shí)上,即使有超過(guò)1/3的節(jié)點(diǎn)聯(lián)合作惡,雖然有可能因此造成系統(tǒng)出現(xiàn)分叉,但是仍然在密碼學(xué)方面會(huì)留下可溯源的證據(jù)。
在共識(shí)過(guò)程中,PBFT算法通過(guò)輪換或者隨機(jī)算法選擇主節(jié)點(diǎn),在主節(jié)點(diǎn)沒(méi)有更換的時(shí)間段內(nèi)系統(tǒng)的配置信息稱作一個(gè)視圖(view)。通過(guò)三個(gè)階段的協(xié)議過(guò)程,PBFT算法能夠保證請(qǐng)求的發(fā)送順序在同一個(gè)視圖內(nèi)是正確的,并且可以確保在不同的視圖之間對(duì)請(qǐng)求進(jìn)行確認(rèn)的順序是具有確定性的。結(jié)果會(huì)在所有節(jié)點(diǎn)處理完請(qǐng)求之后返回給客戶端。在客戶端,將會(huì)檢查來(lái)自不同節(jié)點(diǎn)產(chǎn)生相同結(jié)果的數(shù)量,驗(yàn)證該數(shù)量是否大于f+1(f為系統(tǒng)允許的最大失效節(jié)點(diǎn)數(shù)量)。如果滿足這個(gè)條件,就把它作為最終的排序結(jié)果。這個(gè)結(jié)果會(huì)通過(guò)有記賬功能的節(jié)點(diǎn)寫(xiě)入?yún)^(qū)塊鏈。該算法的共識(shí)過(guò)程如圖1所示。
PBFT機(jī)制出現(xiàn)在包括聯(lián)盟鏈和私有鏈在內(nèi)的權(quán)限鏈場(chǎng)景中。這是因?yàn)镻BFT算法重點(diǎn)解決的是對(duì)請(qǐng)求的排序共識(shí)問(wèn)題。當(dāng)排序過(guò)程完成之后,網(wǎng)絡(luò)中的狀態(tài)已經(jīng)具有確定性,任何區(qū)塊都是最終確定的,不會(huì)產(chǎn)生分叉。因此,參與網(wǎng)絡(luò)的節(jié)點(diǎn)僅需要按照這個(gè)確定的排序結(jié)果,在處理完請(qǐng)求之后將最終結(jié)果記入本地賬本即可。當(dāng)網(wǎng)絡(luò)規(guī)模過(guò)大,需要經(jīng)過(guò)對(duì)共識(shí)機(jī)制進(jìn)行一定程度的調(diào)整,才能夠使用這種算法。在共識(shí)過(guò)程開(kāi)始之前,首先通過(guò)選舉或者隨機(jī)算法選擇出一定數(shù)量的共識(shí)參與者(本文中稱為group),這個(gè)數(shù)量可以通過(guò)其他機(jī)制進(jìn)行確認(rèn),并且 group的成員可以進(jìn)行更替。之后,共識(shí)過(guò)程將在group內(nèi)進(jìn)行,其他的網(wǎng)絡(luò)節(jié)點(diǎn)可以通過(guò)廣播的方式從記賬節(jié)點(diǎn)獲取最終產(chǎn)生的區(qū)塊即可。
已經(jīng)有學(xué)者對(duì)PBFT進(jìn)行過(guò)簡(jiǎn)化[11][12]。這兩種方案都是在提升了對(duì)網(wǎng)絡(luò)環(huán)境信任程度之后進(jìn)行的簡(jiǎn)化,特別是文獻(xiàn)[12]的方式,基本需要建立在完全可信的環(huán)境中。他們?cè)谔嵘W(wǎng)絡(luò)吞吐量的同時(shí),增加了較強(qiáng)的限定條件或者預(yù)先設(shè)定好的節(jié)點(diǎn)身份,這在網(wǎng)絡(luò)規(guī)模的擴(kuò)展方面會(huì)產(chǎn)生不利影響。
隨機(jī)數(shù)很早就已經(jīng)得到業(yè)內(nèi)人士的重視,在學(xué)者們對(duì)它的研究過(guò)程中誕生了不少產(chǎn)生隨機(jī)數(shù)的方法。這些產(chǎn)生隨機(jī)數(shù)的方法被統(tǒng)稱為隨機(jī)數(shù)發(fā)生器。在現(xiàn)代社會(huì)中的仿真學(xué)、物理學(xué)、密碼學(xué)等諸多領(lǐng)域中,隨機(jī)數(shù)都存在著重要的應(yīng)用,其本身應(yīng)當(dāng)具有不可預(yù)測(cè)的特性。目前,在上述領(lǐng)域?qū)嶋H的應(yīng)用中,通常會(huì)使用具有確定性的算法,通過(guò)隨機(jī)種子來(lái)產(chǎn)生隨機(jī)數(shù)。這種由算法產(chǎn)生的隨機(jī)數(shù),其熵含量在很大程度上依賴于種子序列的熵值。雖然看似是均勻分布的,但是在這些隨機(jī)數(shù)之間存在自相關(guān)性,導(dǎo)致產(chǎn)生結(jié)果仍然是可以被預(yù)測(cè)的。隨著科技水平以及計(jì)算機(jī)計(jì)算能力的不斷提升,使用此類(lèi)方式生成的偽隨機(jī)數(shù)會(huì)導(dǎo)致相關(guān)系統(tǒng)的安全性受到嚴(yán)重的威脅。不論是在密碼學(xué),還是在區(qū)塊鏈的共識(shí)機(jī)制當(dāng)中,都會(huì)存在被破解、被利用的隱患。
目前,量子技術(shù)已經(jīng)成為密碼學(xué)和網(wǎng)絡(luò)安全業(yè)內(nèi)的熱門(mén)技術(shù),在很多的應(yīng)用中都被認(rèn)為能夠起到重要作用。由于很難證明已經(jīng)形成的隨機(jī)數(shù)序列是否具有真正的隨機(jī)性,所以需要在隨機(jī)數(shù)的產(chǎn)生源頭及產(chǎn)生過(guò)程之中予以保證。隨機(jī)序列需要實(shí)現(xiàn)包含有最大熵含量的真正不可預(yù)測(cè)特性。量子隨機(jī)數(shù)的隨機(jī)特性是基于量子物理自身的不確定性,是能夠通過(guò)信息論進(jìn)行證明的。因此,通過(guò)物理隨機(jī)現(xiàn)象產(chǎn)生真正的隨機(jī)數(shù)來(lái)保證系統(tǒng)安全是可行的有效方式。
在區(qū)塊鏈技術(shù)中,隨機(jī)數(shù)能夠起到至關(guān)重要的作用,使用量子隨機(jī)數(shù)可以有效提升網(wǎng)絡(luò)中的安全性。從密碼學(xué)角度看,隨機(jī)數(shù)的可靠性會(huì)嚴(yán)重影響區(qū)塊鏈系統(tǒng)中密鑰體系的安全問(wèn)題。共識(shí)機(jī)制作為區(qū)塊鏈技術(shù)的一個(gè)重要組成部分,同樣可以通過(guò)使用隨機(jī)數(shù)的方式提升網(wǎng)絡(luò)性能。一些共識(shí)機(jī)制為了提升網(wǎng)絡(luò)的可擴(kuò)展能力,會(huì)利用隨機(jī)數(shù)選擇共識(shí)協(xié)議的參與者,這樣既不會(huì)降低共識(shí)效率,也使網(wǎng)絡(luò)的擴(kuò)展能力得到有效提升。在這個(gè)過(guò)程中,可以利用量子物理學(xué)的理論生成真正的隨機(jī)數(shù)。此外,在主節(jié)點(diǎn)的更替機(jī)制中,量子隨機(jī)數(shù)同樣能夠發(fā)揮作用。
在對(duì)生成序列進(jìn)行隨機(jī)性檢測(cè)的問(wèn)題研究中,有學(xué)者提出使用復(fù)雜度量化[13]以及其他一些統(tǒng)計(jì)測(cè)試方式進(jìn)行保證。但是,這些方式的核心思想是通過(guò)觀測(cè)進(jìn)行判斷,并不能有效檢測(cè)到惡意的人為設(shè)定。在一篇關(guān)于隨機(jī)數(shù)發(fā)生器的研究[14]中作者認(rèn)為,真正的隨機(jī)性只能通過(guò)物理原理上內(nèi)在的隨機(jī)性來(lái)進(jìn)行保證,可以利用量子測(cè)量中固有的隨機(jī)性來(lái)產(chǎn)生真隨機(jī)數(shù);同時(shí),可以通過(guò)量子信號(hào)與經(jīng)典噪聲的信噪比來(lái)估算真隨機(jī)性的大小。
在目前使用拜占庭容錯(cuò)算法的共識(shí)機(jī)制中,存在以下三點(diǎn)關(guān)鍵的性能問(wèn)題。
(1) BFT算法普遍復(fù)雜度高,通信開(kāi)銷(xiāo)大
雖然業(yè)內(nèi)對(duì)BFT算法的研究已經(jīng)持續(xù)了將近四十年的時(shí)間,但是,其中大多數(shù)的研究長(zhǎng)期停留在理論階段,缺少與之相符的程序代碼。這是由于 BFT算法普遍復(fù)雜度過(guò)高,難以實(shí)現(xiàn)造成的。雖然PBFT算法已經(jīng)在前人研究的基礎(chǔ)上明顯降低了算法的復(fù)雜度,但是在完成共識(shí)的過(guò)程中會(huì)產(chǎn)生大量的通信開(kāi)銷(xiāo)。在網(wǎng)絡(luò)帶寬固定的條件下,當(dāng)網(wǎng)絡(luò)擴(kuò)展到一定規(guī)模之后,會(huì)由于節(jié)點(diǎn)間的通信開(kāi)銷(xiāo)過(guò)大導(dǎo)致出現(xiàn)網(wǎng)絡(luò)擁塞,造成共識(shí)失敗,使得網(wǎng)絡(luò)的擴(kuò)展能力受到限制。同時(shí),在現(xiàn)有的PBFT算法實(shí)現(xiàn)中,其復(fù)雜度依然相對(duì)較高。在確認(rèn)算法安全程度的前提下,簡(jiǎn)化節(jié)點(diǎn)之間的通信過(guò)程,對(duì)共識(shí)協(xié)議進(jìn)行優(yōu)化等方式可以有效解決這類(lèi)問(wèn)題,使參與共識(shí)節(jié)點(diǎn)規(guī)模的擴(kuò)展能力得到提升。
(2) 隨機(jī)數(shù)的可靠性
使用傳統(tǒng)隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)通常會(huì)使用長(zhǎng)度有限的種子序列及確定性的算法生成。通過(guò)使用量子隨機(jī)數(shù)發(fā)生器,產(chǎn)生具有真正隨機(jī)性的隨機(jī)數(shù)。使用量子隨機(jī)數(shù)的共識(shí)機(jī)制能夠得到更高的可靠性。
(3) BFT算法的網(wǎng)絡(luò)擴(kuò)展能力
BFT算法的主要作用是解決請(qǐng)求的排序共識(shí)問(wèn)題,通常是在強(qiáng)一致性要求下的聯(lián)盟鏈和私有鏈場(chǎng)景中使用。但是,隨著業(yè)務(wù)規(guī)模的發(fā)展,網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量也會(huì)越來(lái)越多。在這種情況下,當(dāng)參與共識(shí)的節(jié)點(diǎn)的數(shù)量達(dá)到一定規(guī)模的時(shí)候,共識(shí)效率會(huì)由于通信過(guò)程開(kāi)銷(xiāo)過(guò)大造成的網(wǎng)絡(luò)擁塞,進(jìn)而造成共識(shí)失敗[15]。因此,當(dāng)網(wǎng)絡(luò)規(guī)模達(dá)到一定程度的時(shí)候,共識(shí)過(guò)程并不一定需要全部的節(jié)點(diǎn)參與。可以通過(guò)事先約定的機(jī)制對(duì)共識(shí)參與者進(jìn)行選擇,這個(gè)group的成員規(guī)模可以在確定節(jié)點(diǎn)間彼此信任的條件下盡可能小,以此來(lái)保證共識(shí)效率,并有效降低通信開(kāi)銷(xiāo)。
量子隨機(jī)數(shù)發(fā)生器能夠?yàn)閰^(qū)塊鏈技術(shù)中的共識(shí)機(jī)制帶來(lái)多角度可靠性的提高。
通過(guò)理論建模的隨機(jī)數(shù)發(fā)生器可以實(shí)現(xiàn)較高的隨機(jī)數(shù)產(chǎn)生速率。但是,這種方式仍然依賴于隨機(jī)數(shù)發(fā)生器設(shè)備的可信程度,惡意的制造商仍然可以提前通過(guò)提前內(nèi)置的字符串預(yù)測(cè)隨機(jī)數(shù)的輸出情況。
基于設(shè)備的可信度,量子隨機(jī)數(shù)發(fā)生器(QRNG)可以分為三類(lèi)。第一類(lèi)是建立在完全可信設(shè)備上的實(shí)用QRNG,通常可以通過(guò)對(duì)設(shè)備進(jìn)行適當(dāng)程度的校準(zhǔn)和建模高速生成隨機(jī)數(shù)。第二類(lèi)是自我測(cè)試QRNG,它是在不信任設(shè)備的情況下生成隨機(jī)性可驗(yàn)證的隨機(jī)數(shù),其生成速率可能會(huì)受到信任條件的限制。第三類(lèi)是半自測(cè)QRNG,它是一種在設(shè)備的可信程度和隨機(jī)數(shù)生成速率之間進(jìn)行一定程度權(quán)衡之后的中間產(chǎn)物。
QRBFT(Quantum Random Byzantine Fault Tolerance)是為區(qū)塊鏈技術(shù)服務(wù)的一種共識(shí)機(jī)制。提出此共識(shí)機(jī)制的目的是在網(wǎng)絡(luò)的擴(kuò)展能力以及共識(shí)效率的提升方面做出平衡。通過(guò)在協(xié)議中使用量子隨機(jī)數(shù),能夠有效提升選取共識(shí)參與者的隨機(jī)性,能夠保證在非完全可信的網(wǎng)絡(luò)環(huán)境中參與共識(shí)過(guò)程節(jié)點(diǎn)的可靠性。
QRBFT機(jī)制可以分為兩個(gè)子過(guò)程:選舉和共識(shí)。
4.2.1 選舉過(guò)程
在當(dāng)前區(qū)塊鏈技術(shù)的研究過(guò)程中,也存在不少通過(guò)選舉過(guò)程生成區(qū)塊的共識(shí)協(xié)議。但是,它們大多采用選舉產(chǎn)生leader負(fù)責(zé)區(qū)塊生成的方式。這種方式在一定程度上確實(shí)能夠提升共識(shí)效率。但是,通常在使用此類(lèi)方案的同時(shí),也必須要配合使用leader的更替機(jī)制來(lái)解決可能發(fā)生的記賬節(jié)點(diǎn)崩潰等問(wèn)題。
而在BFT算法中,解決的是共識(shí)與一定程度的容錯(cuò)問(wèn)題,在共識(shí)協(xié)議的擴(kuò)展能力方面會(huì)受到限制,這在其本身的算法中很難得到有效的解決。為了使 BFT算法能夠在更大規(guī)模的網(wǎng)絡(luò)環(huán)境中使用,同時(shí),希望在盡可能多地讓網(wǎng)絡(luò)節(jié)點(diǎn)在參與共識(shí)過(guò)程的前提下不再引入其他額外的協(xié)議,提出將選舉過(guò)程與 BFT算法結(jié)合使用的共識(shí)機(jī)制。在此機(jī)制中,選舉過(guò)程將為BFT算法過(guò)程提供共識(shí)的參與者。
在超級(jí)賬本(Hyperledger)的子項(xiàng)目Sawtooth中使用了PoET共識(shí)機(jī)制[16],節(jié)點(diǎn)上會(huì)部署統(tǒng)一的可靠計(jì)時(shí)器,基于對(duì)時(shí)間消逝的證明選擇記賬節(jié)點(diǎn)。我們?cè)诖嘶A(chǔ)上進(jìn)行了思路的拓展,使用量子隨機(jī)數(shù)的方式對(duì)共識(shí)參與者進(jìn)行g(shù)roup的選取。當(dāng)新一輪共識(shí)過(guò)程開(kāi)始前,全部的網(wǎng)絡(luò)節(jié)點(diǎn)通過(guò)各自的量子隨機(jī)數(shù)發(fā)生器生成一個(gè)隨機(jī)數(shù),以廣播的方式發(fā)送給網(wǎng)絡(luò)中的其他節(jié)點(diǎn)。在一個(gè)時(shí)間周期內(nèi),系統(tǒng)將直接選擇中間若干個(gè)隨機(jī)數(shù)對(duì)應(yīng)的節(jié)點(diǎn)作為共識(shí)過(guò)程的參與者,若干輪共識(shí)過(guò)程結(jié)束之后會(huì)重新要求節(jié)點(diǎn)生成隨機(jī)數(shù),實(shí)現(xiàn)對(duì) group的成員進(jìn)行更替。當(dāng)網(wǎng)絡(luò)中出現(xiàn)延遲,一些隨機(jī)數(shù)無(wú)法在指定的時(shí)間周期內(nèi)到達(dá)其他節(jié)點(diǎn),節(jié)點(diǎn)間對(duì)選舉過(guò)程可能因此無(wú)法達(dá)成一致,即不同的網(wǎng)絡(luò)節(jié)點(diǎn)可能選擇了不同的group。因此,在節(jié)點(diǎn)選擇出group之后,會(huì)將group的信息形成摘要,發(fā)送給其他節(jié)點(diǎn),收到此信息的節(jié)點(diǎn)將進(jìn)行驗(yàn)證。只有在確認(rèn)group信息得到全網(wǎng)一半以上節(jié)點(diǎn)的情況下,該group的成員才能夠開(kāi)始共識(shí)過(guò)程。此外,也可以引入檢查點(diǎn)機(jī)制來(lái)進(jìn)行一致性校驗(yàn)和全網(wǎng)狀態(tài)的同步,但這樣做會(huì)帶來(lái)額外的開(kāi)銷(xiāo)。
4.2.2 共識(shí)過(guò)程
當(dāng)選舉過(guò)程結(jié)束之后,網(wǎng)絡(luò)將進(jìn)入共識(shí)過(guò)程。在對(duì)PBFT算法的優(yōu)化方案中,文獻(xiàn)[11]在沒(méi)有收到信息的前提下使節(jié)點(diǎn)根據(jù)之前計(jì)算產(chǎn)生的結(jié)果直接進(jìn)行后續(xù)計(jì)算,副本節(jié)點(diǎn)不經(jīng)過(guò)共識(shí)過(guò)程直接執(zhí)行請(qǐng)求,也不需要考慮系統(tǒng)中的一致性問(wèn)題,如圖2所示。文獻(xiàn)[12]則是通過(guò)指定一個(gè)區(qū)塊生成者(block generator)負(fù)責(zé)收集并驗(yàn)證網(wǎng)絡(luò)中提出的交易信息,周期性地將它們批量打包成一個(gè)新的區(qū)塊提案。共識(shí)過(guò)程由區(qū)塊生成者和指定的區(qū)塊簽名者(小部分)依照配置好的規(guī)則完成,而其他的區(qū)塊簽名者(大多數(shù))負(fù)責(zé)驗(yàn)證區(qū)塊提案,并通過(guò)使用數(shù)字簽名批準(zhǔn)該提案。

圖2 Speculation Byzantine Fault Tolerance算法示意
在QRBFT的共識(shí)過(guò)程中,由選舉產(chǎn)生的共識(shí)group成員之間通過(guò)與選舉過(guò)程相同的隨機(jī)數(shù)方式選舉產(chǎn)生 leader。leader的更替采用輪換制度。因?yàn)閰⑴c共識(shí)過(guò)程的group是通過(guò)選舉過(guò)程產(chǎn)生的,因此可以認(rèn)為 group的成員是可以信任的。同時(shí),QRBFT在算法中也進(jìn)行了相應(yīng)的調(diào)整。副本節(jié)點(diǎn)在收到來(lái)自leader節(jié)點(diǎn)的排序請(qǐng)求后,將會(huì)依據(jù)事先約定的規(guī)則對(duì)排序信息的合法性進(jìn)行驗(yàn)證(如圖3所示)。如果排序信息符合條件,則可以確認(rèn)該排序是合法的;否則,副節(jié)點(diǎn)將向主節(jié)點(diǎn)重新請(qǐng)求排序信息。

圖3 QRBFT共識(shí)過(guò)程
(1)算法復(fù)雜度
QRBFT算法針對(duì)PBFT算法在共識(shí)過(guò)程中復(fù)雜的通信開(kāi)銷(xiāo)進(jìn)行了適度的簡(jiǎn)化,將兩次的提交確認(rèn)過(guò)程轉(zhuǎn)變?yōu)閷?duì)信息規(guī)則與格式的校驗(yàn)。該驗(yàn)證過(guò)程在節(jié)點(diǎn)本地進(jìn)行,不與其他節(jié)點(diǎn)進(jìn)行通信。在減少算法邏輯步驟的同時(shí),也可以大幅度降低共識(shí)過(guò)程中的通信開(kāi)銷(xiāo)。
(2)安全性
由于在共識(shí)機(jī)制中引入了量子隨機(jī)數(shù),本地節(jié)點(diǎn)在選舉過(guò)程中無(wú)法預(yù)測(cè)其他節(jié)點(diǎn)產(chǎn)生的隨機(jī)數(shù),并且在生成隨機(jī)數(shù)的過(guò)程中不可能進(jìn)行人為干預(yù)。所以,選舉group成員的過(guò)程與leader選舉的過(guò)程中,所有節(jié)點(diǎn)都是在公平可靠的環(huán)境中進(jìn)行的。由選舉產(chǎn)生的 group成員是真正隨機(jī)、無(wú)法被預(yù)測(cè)的,共識(shí)過(guò)程中的leader也是可靠的、可以被信任的。因此,在QRBFT共識(shí)機(jī)制中可以避免出現(xiàn)拜占庭問(wèn)題,系統(tǒng)只需要解決leader節(jié)點(diǎn)出現(xiàn)故障情況下的更換問(wèn)題。
(3)擴(kuò)展能力
在 BFT算法進(jìn)行之前增加選舉過(guò)程的目的是提升網(wǎng)絡(luò)的擴(kuò)展能力。傳統(tǒng)的BFT算法,特別是PBFT算法,不僅算法復(fù)雜度過(guò)高,而且共識(shí)過(guò)程繁雜的通信過(guò)程會(huì)使網(wǎng)絡(luò)規(guī)模受到非常嚴(yán)重的限制。通過(guò)引入選舉過(guò)程,可以使參與共識(shí)過(guò)程的節(jié)點(diǎn)規(guī)模得到有效控制,減少系統(tǒng)內(nèi)總體的通信次數(shù),使由于通信信息占據(jù)的內(nèi)存盡可能降低,從而在保證網(wǎng)絡(luò)吞吐量的前提下使網(wǎng)絡(luò)的擴(kuò)展能力得到有效提升。
本文在PBFT的基礎(chǔ)上提出了一種引入選舉制度的拜占庭共識(shí)機(jī)制QRBFT,用以解決BFT算法在實(shí)際應(yīng)用過(guò)程中的擴(kuò)展能力問(wèn)題。同時(shí),該機(jī)制通過(guò)使用量子隨機(jī)數(shù)的方式提升選舉的隨機(jī)性,增強(qiáng)了共識(shí)機(jī)制的安全性能。改進(jìn)后的共識(shí)機(jī)制在一致性校驗(yàn)和leader的更替機(jī)制方面還有待進(jìn)一步提高,尚存在改進(jìn)的需要。