EOS 共识机制 (3)DPOS+BFT
1. DPoS共識(shí)
-
通過(guò)在一群數(shù)量有限的節(jié)點(diǎn)中,使用輪換或者其他算法來(lái)篩選出某個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)。并且賦予該節(jié)點(diǎn)出塊的權(quán)利。
-
主節(jié)點(diǎn)是將該時(shí)段的交易打包成區(qū)塊后用自己的私鑰對(duì)該區(qū)塊簽名,并將其廣播到所有節(jié)點(diǎn)。
-
當(dāng)主節(jié)點(diǎn)收到至少三分之二的不同節(jié)點(diǎn)的簽名區(qū)塊后,則該區(qū)塊完成了所有節(jié)點(diǎn)的驗(yàn)證成為不可逆區(qū)塊串聯(lián)到區(qū)塊鏈中
70個(gè)節(jié)點(diǎn)數(shù) = 21個(gè)主節(jié)點(diǎn)(生產(chǎn)區(qū)塊)+ 49個(gè)備用節(jié)點(diǎn)。
當(dāng)21個(gè)主節(jié)點(diǎn)出問(wèn)題時(shí),通過(guò)競(jìng)選機(jī)制,備用節(jié)點(diǎn)可上任成為主節(jié)點(diǎn)。
1.1 BFT(拜占庭容錯(cuò)機(jī)制)
當(dāng)一個(gè)小區(qū)塊在區(qū)塊鏈網(wǎng)絡(luò)內(nèi)被廣播時(shí),其余節(jié)點(diǎn)將會(huì)立即對(duì)這個(gè)區(qū)塊進(jìn)行確認(rèn)。經(jīng)過(guò)2/3節(jié)點(diǎn)確認(rèn)的區(qū)塊將會(huì)進(jìn)入不可逆狀態(tài)。在這個(gè)共識(shí)機(jī)制下,安全確認(rèn)的時(shí)間為0.5s(區(qū)塊間隔)+0.3s(區(qū)塊傳播延時(shí))<1s,從而到了秒級(jí)的確認(rèn)性能。
- 惡意攻擊
除非控制了超過(guò)2/3的節(jié)點(diǎn),否則無(wú)法惡意區(qū)塊進(jìn)入不可逆狀態(tài)。這里特意提一下,如果惡意節(jié)點(diǎn)控制了超過(guò)1/2但小于2/3的節(jié)點(diǎn),由于惡意區(qū)塊不會(huì)進(jìn)入不可逆狀態(tài),這樣可以留給其它觀察者節(jié)點(diǎn)和見(jiàn)證人節(jié)點(diǎn)足夠的時(shí)間,將惡意節(jié)點(diǎn)投票出局。
EOS區(qū)塊的出塊順序和速度都是安排好的,并不存在哪個(gè)節(jié)點(diǎn)權(quán)力大,哪個(gè)節(jié)點(diǎn)權(quán)力小的問(wèn)題。要惡意控制EOS超級(jí)節(jié)點(diǎn)來(lái)達(dá)到威脅網(wǎng)絡(luò)安全的目的的話,需要控制21個(gè)節(jié)點(diǎn)中的15個(gè),才能有效地發(fā)起攻擊。
1. 2 不可逆狀態(tài)
一旦某個(gè)區(qū)塊后面跟隨了超過(guò)2/3總見(jiàn)證人數(shù)量的區(qū)塊,則該區(qū)塊進(jìn)入不可逆狀態(tài),等于確認(rèn)了該區(qū)塊是主鏈中的區(qū)塊的地位,之后再也不可回滾回該區(qū)塊之前的區(qū)塊進(jìn)行分成,否則視為違規(guī)。
因?yàn)槊總€(gè)節(jié)點(diǎn)最多同時(shí)參與一條鏈,所以只可能同一個(gè)高度的區(qū)塊只可能存在一個(gè)不可逆的區(qū)塊,這更加保證了區(qū)塊的安全性,防止惡意攻擊及惡性分叉。
一般來(lái)說(shuō),在21個(gè)區(qū)塊產(chǎn)生節(jié)點(diǎn)的模型里,15個(gè)區(qū)塊(15/21>2/3)進(jìn)入不可逆狀態(tài)的時(shí)間(即交易100%安全)為45秒
1.3 小區(qū)塊
為了加快出塊速度,該改進(jìn)的核心思想是讓同一個(gè)節(jié)點(diǎn)產(chǎn)生6個(gè)小塊。這個(gè)能提升性能的核心原因是6個(gè)小塊的產(chǎn)生沒(méi)有等待確認(rèn)的環(huán)節(jié)。
- 如果將小塊的出塊間隔繼續(xù)分割,理論上確認(rèn)所需要的時(shí)間,會(huì)約等于區(qū)塊傳播的網(wǎng)絡(luò)延時(shí),甚至可以小于0.5秒。將3秒的區(qū)塊繼續(xù)分割成間隔為0.5秒的若干小塊,這些小塊之間不切換記賬權(quán)。
- 每一個(gè)小塊一出來(lái)之后,就會(huì)馬上廣播。
這樣的設(shè)計(jì)可以使得區(qū)塊更加快速得到確認(rèn)的同時(shí),盡可能減少因?yàn)榫W(wǎng)絡(luò)延遲而產(chǎn)生的分叉影響。
參考
[1]. csdn. EOS的BFT-DPOS共識(shí)機(jī)制的進(jìn)化過(guò)程及背后邏輯
總結(jié)
以上是生活随笔為你收集整理的EOS 共识机制 (3)DPOS+BFT的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: EOS 共识机制 (1)DPOS共识介绍
- 下一篇: EOS 共识机制 (2)DPOS再议