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