【許曉笛】詳解 EOS 的新共識機制 BFT-DPoS

圓方圓區塊鏈發表於2018-11-16

EOS 最新的白皮書中已經將共識機制從 DPoS 升級為了 BFT-DPoS(Byzantine Fault Tolerance - Deligated Proof of Stake,帶有拜占庭容錯的委託股權證明),本篇文章將詳解新共識機制的原理。

傳統 DPoS

EOS 專案剛剛釋出的時候的共識機制是 DPoS(Deligated Proof of Stake,委託股權證明),類似於 Bitshares 和 Steem,這種共識機制採用隨機的見證人出塊順序,出塊速度為 3 秒,交易不可逆需要45秒。為什麼需要 45 秒呢?因為 DPoS 下,見證人生產一個新區塊,才表示他對之前的整條區塊鏈進行了確認,表明這個見證人認可目前的整條鏈。而一個交易要達到不可逆狀態,需要 2/3 以上的見證人確認,在 EOS 裡就是 14 個見證人。我們假設一個交易被包含在 1000 號區塊中,需要其他13個見證人輪流出塊至 1013 號區塊,這樣才能“收集”到14個見證人對此交易的確認(包括生產1000區塊的見證人)。2/3 以上的見證人確認的交易,就是不可逆的交易了,這就是 45 秒確認時間的由來。

【許曉笛】詳解 EOS 的新共識機制 BFT-DPoS

拜占庭容錯(BFT)

為了改進傳統的 DPoS 演算法,我們可以借鑑 PBFT(Practical Byzantine Fault Tolerance,拜占庭容錯演算法)的機制。在傳統 DPoS 共識機制中,我們讓每個見證人在出塊時向全網廣播這個區塊,但即使其他見證人收到了目前的新區塊,也無法對新區塊進行確認,需要等待輪到自己出塊時,才能通過生產區塊來確認之前的區塊。

在新的機制下,每個見證人出塊時依然全網廣播,其他見證人收到新區塊後,立即對此區塊進行驗證,並將驗證簽名完成的區塊立即返回出塊見證人,不需等待其他見證人自己出塊時再確認。從當前的出塊見證人看來,他生產了一個區塊,並全網廣播,然後陸續收到了其他見證人對此區塊的確認,在收到 2/3 見證人確認的瞬間,區塊(包括其中的交易)就不可逆了。交易確認時間大大縮短,從 45 秒縮短至 3 秒左右(主要為等待生產區塊的時間)。這種機制可以稱為初級版的 BFT-DPoS 共識機制。

【許曉笛】詳解 EOS 的新共識機制 BFT-DPoS

BFT-DPoS

為了挖掘 EOS 系統的效能,Daniel Larimer 在以上基礎上又進行了修改。首先,他將出塊速度由 3 秒 縮短至 0.5 秒,理論上這樣可以極大提升系統效能,但帶來了網路延遲問題:0.5 秒的確認時間會導致下一個出塊者還沒有收到上一個出塊者的區塊,就該生產下一個區塊了,那麼下一個出塊者會忽略上一個區塊,導致區塊鏈分叉(相同區塊高度有兩個區塊)。比如:中國見證人後面可能就是美國見證人,中美網路延遲有時高達 300ms,很有可能到時美國見證人沒有收到中國見證人的區塊時,就該出塊了,那麼中國見證人的區塊就會被略過。

為解決這個問題,Daniel Larimer 將原先的隨機出塊順序改為由見證人商議後確定的出塊順序,這樣網路連線延遲較低的見證人之間就可以相鄰出塊。比如:日本的見證人後面是中國的見證人,再後面是俄羅斯的見證人,再後面是英國的見證人,再後面是美國的見證人。這樣可以大大降低見證人之間的網路延遲。使得 0.5 秒的出塊速度有了理論上的可能。

為了保證萬無一失,不讓任何一個見證人因為網路延遲的意外而被跳過,Daniel Larimer 讓每個見證人連續生產 6 個區塊,也就是每個見證人還是負責 3 秒的區塊生產,但是由最初的只生產 1 個變成生產 6 個。最惡劣的情況下,6 個區塊中,最後一個或兩個有可能因為網路延遲或其他意外被下一個見證人略過,但 6 個區塊中的前幾個會有足夠的時間傳遞給下一個見證人。

再來討論 BFT-DPoS 的交易確認時間問題:每個區塊生產後立即進行全網廣播,區塊生產者一邊等待 0.5 秒生產下一個區塊,同時會接收其他見證人對於上一個區塊的確認結果。新區塊的生產和舊區塊確認的接收同時進行。大部分的情況下,交易會在 1 秒之內確認(不可逆)。這其中包括了 0.5 秒的區塊生產,和要求其他見證人確認的時間。

【許曉笛】詳解 EOS 的新共識機制 BFT-DPoS

EOS 系統規定,一旦區塊達到不可逆狀態(2/3見證人確認),就無法在此之前進行分叉,保證了交易的永久可信。另外,即使多數見證人想分叉區塊鏈,也只能以相同的速度(0.5秒)與主鏈競爭,就算主鏈只剩下一個見證人,分叉鏈也永遠不會追上主鏈,保證了系統的穩定。

Daniel Larimer 稱 EOS 新的 BFT-DPoS 共識機制還在開發中,會在系統上線前完成開發,讓我們拭目以待。


相關文章和視訊推薦

【許曉笛】深入理解 EOS 賬戶許可權對映

圓方圓學院彙集大批區塊鏈名師,打造精品的區塊鏈技術課程。 在各大平臺都長期有優質免費公開課,歡迎報名收看。

公開課地址:ke.qq.com/course/3451…

相關文章