每個區(qū)塊鏈協(xié)議都使用一個共識算法來維護一個區(qū)塊鏈。區(qū)塊鏈場景中最著名的是來自比特幣的中本共識(Nakamoto consensus),它基于工作量證明(Proof of Work, PoW)。它只以概率的方式獲得最終結果,從而實現(xiàn)了很大程度的分散,其中多個分支可以相互競爭,并隨著時間的推移逐漸演變?yōu)橐粋€分支。另一個極端是源于傳統(tǒng)拜占庭協(xié)議(BA)。它們通過限制分散化的程度來保證即時的塊結果。
Aergo的DPoS共識主要是介于上述兩者之間的中間地帶。它將生成區(qū)塊的特殊權利委托給一組經(jīng)過選舉產(chǎn)生的區(qū)塊生產(chǎn)者(BPs),同時允許在有限范圍內進行重組。根據(jù)PoS共識和只保留有限數(shù)量的BPs,它解決了性能問題以及基于功率共識中發(fā)現(xiàn)的過度能耗問題。
本文詳細介紹了在Aergo區(qū)塊鏈中實現(xiàn)的DPoS。在本文的剩馀部分中,除非另有說明,否則“DPoS”指在Aergo區(qū)塊鏈中實現(xiàn)的DPoS。
Aergo上的DPoS
塊生產(chǎn)
在DPoS中,只有有限數(shù)量?節(jié)點,稱為有源組件生產(chǎn)商(BPs),允許生成模塊。它們是通過利益相關者之間的投票過程選出的。時間被均勻地劃分為槽,對于每個槽,最多生成一個塊?;顒覤Ps通過投票得分在這些插槽上進行調度,并輪流生成區(qū)塊。
為了簡單起見,讓我們考慮一個BPs活動的例子,它們分別是按投票得分遞減順序排列的A、B、C和D。塊間隔是1秒。如果一切正常,區(qū)塊鏈將繼續(xù)執(zhí)行,如圖1所示。
圖1:正常生產(chǎn)情況下的塊生產(chǎn);
每個盒子里的字母是塊的制造者。這里,每個BP每4秒生成一個塊。但是,當前一個塊沒有及時接收到時,下一個BPs應該生成它。例如,假設A生成塊“1”,然后B在生成塊“2”之前崩潰。在這種情況下,C應該來生成塊“2”,而不是B來生成塊2。
圖2:當B崩潰時阻塞生產(chǎn)
由于B沒有與槽“1”、“5” 碰撞對應的塊,使得塊在時間上分布不均勻;塊“1”和塊“2”之間的時間間隔大約是正常塊(1s)的兩倍(2s)。
分叉
另一方面,DPoS允許像比特幣一樣進行分叉和重組。假設B由于網(wǎng)絡故障而與其他BPs斷開連接。即使在這種情況下,B和其他(A、C、D)也不會停止塊生產(chǎn)。它們各自管理自己的區(qū)塊鏈,如圖3所示。
圖3:分叉由網(wǎng)絡分割引導;B和(A, C, D)相互斷開
注意主鏈上的槽“1”和“5”是空的,因為(A, C, D)網(wǎng)絡分裂沒有接收到B產(chǎn)生的塊。
B管理的下鏈是側鏈,因為它比另一條短;當主鏈的高度達到7時,側鏈的高度仍然只有3。因此,根據(jù)最長鏈規(guī)則,一旦網(wǎng)絡問題解決,主鏈的塊被發(fā)送到B, B就知道它的鏈比另一個短。最后,它將遵循主鏈(重組)。
終結: 最后一個不可逆塊
如果一個塊連接到一個區(qū)塊鏈,它可以被看作是鑄造塊本身。在此基礎上,提出了最后不可逆塊(LIB)的概念。一旦一個塊變成了一個庫,任何超出它的重組都是被禁止的。因此,保證了庫和之前的塊的終結性。在正常情況下,除了初始引導期外,庫會不斷更新到更高的數(shù)字。
從技術上講,庫的確定分為兩個階段:
1. 當大多數(shù)(?+)BPs附加了區(qū)塊鏈,其中第一個可以自由的被提出。
2. 當從另一個大多數(shù)BPs中添加塊時,所提議的庫最終成為一個終結庫。
最初,一個集團的投票范圍沒有限制。換句話說,連接到鏈的塊被認為是為塊本身和所有父塊投票。然而,后來改變是避免沖突的LIBs3。在修改后的版本中,BP X生成的塊只確定了BP X最后生成的塊之后的范圍。
圖4:最后一個不可逆塊
如圖4所示,確定在一個4 BPs的案例中。這是一個4 BPs的DPoS網(wǎng)絡案例;它的多數(shù)票是3票。在這種情況下,在決定自由民主黨的每個階段,分別需要3個基點的贊成票才能達成共識。因此,如圖3所示,當塊“3”連接到鏈(第1階段)時, 塊“1”就成為一個被提議的LIB。然后,當添加塊“5”時(第二階段),塊“1”最終被提升到一個LIB。在正常情況下,一旦一個塊被最終確定為一個庫,每當連接一個新塊時,庫的高度就會繼續(xù)增加1;一個新的塊伴隨一個新的庫。
押注、投票及選舉
活躍的BPs由Aergo用戶選出。盡管用戶限制為每天1票,但參與投票的人可以自由地投給多個候選人(最多30人)。此選舉方案如圖5所示。在這里,在“700”處的BPs是根據(jù)在“600”(而不是“700”)處收集的排名來選擇的。它的目的是降低重組所導致的不必要政權更迭的可能性,因為過去的區(qū)塊比最近的區(qū)塊更不可能進行重組。
圖5。BPs的選舉計劃
到目前為止,通過一個由4BPs組成的簡單系統(tǒng)示例,我們已經(jīng)解釋了DPoS的工作原理。它的主要成分是:
· 由有限數(shù)目的選出的BPs
· 只有在有限的塊范圍內才能進行重組。
前者保證了區(qū)塊生產(chǎn)的快速性和穩(wěn)定性,而后者則保證了只要大多數(shù)BPs處于正常運行狀態(tài),區(qū)塊具有絕對終結性。通過它們,DPoS可以在交易結束程度適中的情況下實現(xiàn)高性能。這種性能和最終結果之間的平衡是我們選擇DPoS作為Aergo 主網(wǎng)共識的最重要因素之一。
評論
查看更多