EOS白皮書說3秒出一個塊,真是這樣嗎?

老早想寫EOS的共識算法,昨天已經發現兩篇優秀文章講DPOS算法 (淺談EOS(2)——節點選舉?你需要知道的DPoS共識機制https://bihu.com/article/80075) 和 (在普熊的時代以被減損中心化的EOS說開去https://bihu.com/article/81718 )。願意研究的還是推薦看以上兩篇文章,我從另外的角度分享一點小知識。

區塊鏈的效率和共識算法密切相關。比特幣大約10分鐘出一個塊,6個塊之後確定最終不可逆,加上塊大小隻有1MB,所以算下來最終TPS在7-8之間。

BTS, Steemit使用的共識算法是DPOS,其出塊時間和最終不可逆時間為:

出塊時間:3秒

最終不可逆:<=45秒

EOS繼承了BTS,Steemit的石墨烯框架,白皮書裡也寫著用DPOS共識算法,也就是3秒出一個塊。關心EOS開發或者關注BM Twitter的人可能知道,實際上EOS的共識效率為:

出塊時間:500毫秒

最終不可逆:<= 2秒

怎麼做到的呢?讓BM來告訴你:

EOS白皮書說3秒出一個塊,真是這樣嗎?

EOS使用混合dpos和bft達到500毫秒出一個塊,1-2秒確認塊並使塊最終不可逆。

為什麼可以從3秒一塊提高到500毫秒一塊?EOS使用了一些優化措施,我以後會詳細講。

為什麼1-2秒就可以確認?背後的原理就是使用bft(拜占庭)算法收集2/3的出塊者的簽名,並把簽名寫入區塊中,來達到快速確認的目的。bft(拜占庭)算法證明很複雜,它可以實現不超過1/3節點的容錯,也就是隻要2/3的節點確認就行。


分享到:


相關文章: