權(quán)威證明共識(又稱PoA共識)規(guī)定,節(jié)點只有被授權(quán)以后才能參與區(qū)塊鏈共識。一旦被授權(quán)之后,共識節(jié)點享有公平的記賬權(quán)利。因此,他們無需投
權(quán)威證明共識(又稱PoA共識)規(guī)定,節(jié)點只有被授權(quán)以后才能參與區(qū)塊鏈共識。一旦被授權(quán)之后,共識節(jié)點享有公平的記賬權(quán)利。因此,他們無需投入巨大的資源去競爭記賬權(quán)。此外,記賬權(quán)也和記賬節(jié)點所擁有的數(shù)字資產(chǎn)無關(guān)。
從網(wǎng)絡(luò)帶寬使用效率的角度來看,權(quán)威證明是一種非常高效的共識算法。算法本身不會在決定由誰記賬這個問題上消耗太多時間,從而能夠讓更多的帶寬被用在傳輸交易數(shù)據(jù)上。因此,基于權(quán)威證明的區(qū)塊鏈系統(tǒng),在網(wǎng)絡(luò)條件的允許范圍內(nèi)會達到較高的吞吐量(即TPS:每秒處理交易數(shù))。
雖然權(quán)威證明共識有以上這些優(yōu)點,并且已經(jīng)在唯鏈區(qū)塊鏈平臺上正常運行了一年多的時間,該共識還是留有需要進一步改進的地方。首先,和以太坊一樣,它缺乏有效的技術(shù)手段,阻止節(jié)點濫用獲得的記賬權(quán),來暫時性地導(dǎo)致系統(tǒng)的不穩(wěn)定。
但是和以太坊不同的是,權(quán)威證明可以保證任何節(jié)點在鏈上的作惡行為,都可以用來作為追究其責(zé)任的證據(jù)。另外,權(quán)威證明屬于Nakamoto共識家族的一種,所以只能在概率上保證交易的安全性。在一些極端異步網(wǎng)絡(luò)情況下(比如,網(wǎng)絡(luò)被大范圍的物理分割的情況下),我們可能需要額外的機制來保證區(qū)塊鏈系統(tǒng)的一致性。
所以我們提出了下一代權(quán)威證明共識的方案來解決以上問題,以提供在區(qū)塊鏈技術(shù)進一步發(fā)展中所需的安全性和穩(wěn)定性,從而更好地支持唯鏈平臺上日益增多的鏈上商業(yè)活動。簡單來說,新的權(quán)威證明共識能夠給我們帶來:
· 對于區(qū)塊和其包括的交易提供絕對的安全保證(absolute finality);
· 顯著地減少系統(tǒng)不穩(wěn)定風(fēng)險 = 更加穩(wěn)定的區(qū)塊鏈服務(wù);
· 更快收斂的概率安全保證(probabilistic finality)= 更快的交易確認(rèn)時間。
我們的解決方案
在下一代權(quán)威證明共識里,我們通過引入兩個全新的機制來解決現(xiàn)有的問題。
委員會背書(COMMITTEE-ENDORSING)機制
委員會背書機制從本質(zhì)上來說,是改變現(xiàn)有生成一個新區(qū)塊的方式。具體來說,該機制要求除當(dāng)前記賬節(jié)點外,有額外的節(jié)點參與到生成新區(qū)塊的過程中。
在每一輪的共識里,都會隨機從共識節(jié)點中選出幾個節(jié)點組成一個委員會。在生成區(qū)塊的過程中,委員會成員首先需要驗證記賬節(jié)點發(fā)出的新區(qū)塊提案。在驗證通過后,他們會在提案上簽名,作為他們的正式背書。共識算法要求記賬節(jié)點必須要收集到足夠的委員會成員的背書,然后把其相關(guān)信息加入所要生成的新區(qū)塊內(nèi)。
我們在算法中使用可驗證隨機函數(shù)(VRF)來保證委員會是隨機從節(jié)點里選出來的??沈炞C隨機函數(shù)和哈希函數(shù)的作用非常類似,只是前者需要輸入私鑰來完成計算。
有了委員會背書機制后,記賬節(jié)點如果想在當(dāng)輪共識中破壞區(qū)塊鏈系統(tǒng),他必須聯(lián)合一定數(shù)量的委員會成員來一起做這件事。但是根據(jù)可驗證隨機函數(shù)保證的隨機性,記賬節(jié)點只有在滿足以下條件下才能這樣做:
· 他必須要和其他共識節(jié)點同謀;
· 在這些同謀節(jié)點中,必須要有足夠的節(jié)點被隨機選為委員會成員。
以上這兩個條件實際上使得記賬節(jié)點很難做到利用他的記賬權(quán)利生成不同的區(qū)塊。換句話來說,系統(tǒng)的穩(wěn)定性被干擾的概率被大大的降低。從中我們可以得到一個很重要的結(jié)論,那就是新共識算法能夠讓我們更快的到達令人滿意的概率安全保證(比如,一筆交易被取消的概率小于0.0000001)。
區(qū)塊最終性(BLOCK FINALITY)機制
區(qū)塊最終性機制給予符合條件的區(qū)塊絕對的安全保證。一旦一個區(qū)塊獲得了最終性,共識本身就保證了其在賬本中不能被修改、替換或者移除。甚至當(dāng)系統(tǒng)遭遇到極端異步網(wǎng)絡(luò)情況時(比如網(wǎng)絡(luò)被大規(guī)模物理分割的情況),算法也能保證其安全性。
一個區(qū)塊為了能達到最終性,就必須被拜占庭容錯(BFT)共識所確認(rèn)。我們采用了Yin, et al. 提出的達成最終性的框架,該框架把BFT共識過程分為連續(xù)的三個階段,每個階段都要求超過2/3的節(jié)點達成共識。為了把該框架融入進權(quán)威證明共識,我們在每個區(qū)塊內(nèi)都加入了區(qū)塊在達成最終性過程中的狀態(tài)信息。
我們可以認(rèn)為,當(dāng)一個委員會成員背書一個區(qū)塊時,該成員也同時確認(rèn)了包含在該區(qū)塊中的相關(guān)信息。所以,當(dāng)我們發(fā)現(xiàn)一個區(qū)塊的后繼區(qū)塊鏈中包含了超過2/3的共識節(jié)點(作為記賬節(jié)點或委員會成員)時,我們就可以認(rèn)為該區(qū)塊完成了BFT共識中的一個階段。另外,因為拜占庭容錯是通過一系列區(qū)塊上所達成,我們必須加入額外的規(guī)則來保證系統(tǒng)的一致性和活性。
*HotStuff, Yin, et al. : BFT Consensus in the Lens of Blockchain:https://arxiv.org/abs/1803.05069
我們可以看到,在達成拜占庭容錯的過程中,系統(tǒng)不會要求超過2/3的節(jié)點同時在線響應(yīng),而只需記賬節(jié)點和委員會成員能夠及時響應(yīng)。這樣的機制能夠減低因為節(jié)點不能及時響應(yīng)而導(dǎo)致的服務(wù)延遲或者短暫不可用。
總結(jié)
下一代權(quán)威證明共識會引入
1. 委員會背書機制 - 該機制能夠顯著降低節(jié)點濫用記賬權(quán)而導(dǎo)致系統(tǒng)服務(wù)不穩(wěn)定的可能性,使得我們能夠得到收斂速度更快的概率安全性保證;
2. 區(qū)塊最終性機制 - 該機制給予符合條件的區(qū)塊(及其包含的交易)絕對的安全保證。
我們提出的共識算法既能提供概率安全保證又能提供絕對安全保證。這樣就給平臺上的應(yīng)用更多的安全保證選擇。一般來說,安全保證要求的提升會導(dǎo)致應(yīng)用的效率降低,反之亦然。新權(quán)威證明共識讓企業(yè)能夠自主地選擇適合其應(yīng)用的安全保證級別,從而優(yōu)化應(yīng)用的工作效率。
實施計劃
下一代權(quán)威證明的實施、測試以及替換現(xiàn)有的共識算法,將會分階段進行。我們預(yù)計未來將會有一條嶄新的測試鏈上線,專門用來調(diào)試和測試新共識算法。另外,我們將會在不同的VeChain Improvement Proposals (VIPs)里公開算法細(xì)節(jié)。我會在以后的文章里詳細(xì)介紹這些VIP。(老周)
關(guān)鍵詞: 權(quán)威證明共識 測試鏈