tendermint是一種結合了pbft和pos的共識演算法。它具有獎懲制度,可以懲罰那些想要作惡的節點。即使引入了合適的獎懲機制,但是還是有安全漏洞可以鑽,本篇收集tendermint相關安全材料分析tendermint共識演算法存在的安全問題。
中文翻譯成審查攻擊,有點詞不達意。******ship中的******是馬賽克,打碼的意思。******ship可以翻譯成審查,是因為給音像產品打碼的人實際上是對這些音像產品進行審查。這裡的******ship attack是針對驗證者而言。在tendrmint中,驗證者是具有投票許可權的節點。tendermint是一種通過投票,少數服從多數來達成共識的共識演算法。驗證者如果合謀起來作惡,這種攻擊就是******ship attack。驗證者可以怎麼作惡呢?比如1/3以上的驗證者對某個交易不進行確認,這樣就會使區塊鏈執行減慢(因為tendermint是強一致性的演算法,一旦確認就不會回滾,所以不會出現位元幣網路中給的等待六次確認的情況)。同時這樣的1/3以上的聯合也可以拒絕某筆交易。就對這筆交易造成了拒絕服務攻擊。
如果合謀的惡意節點越多,甚至可能導致城市的節點被認定為使區塊鏈變慢的惡意節點。但是這個是以經濟為代價的,畢竟合謀也不是那麼容易。
對於惡意節點不大於1/3,可以通過數學證明能保證安全性,即保證鏈不會分叉。
具體數學證明在這裡tendermint 共識演算法
而對於大於1/3合謀的驗證節點通過雙重簽名(對兩條鏈同時進行簽名)會使鏈造成分叉
引入外部機制來防範
參考******ship attack
共識演算法(POW,POS,DPOS,PBFT)
位元幣在block的生成過程中使用了pow機制,乙個符合要求的block hash由n個前導零構成,零的個數取決於網路的難度值。要得到合理的block hash需要經過大量嘗試計算,計算時間取決於機器的雜湊運算速度。當某個節點提供出乙個合理的block hash值,說明該節點確實經過了大量的嘗試計算...
4 2 共識演算法
共識 consensus 在很多時候會與一致性 consistency 術語放在一起討論。嚴謹地講,兩者的含義並不完全相同。一致性往往指分布式系統中多個副本對外呈現的資料的狀態。如前面提到的順序一致性 線性一致性,描述了多個節點對資料狀 態的維護能力。而共識則描述了分布式系統中多個節點之間,彼此對某...
共識演算法 POW POS
pow pos 在區塊鏈系統中,共識演算法是區塊鏈保持資料安全 不可篡改 透明性等特色的關鍵技術。共識機制是區塊鏈的靈魂,是區塊鏈建立信任的基礎。乙個區塊鏈專案選擇使用何種共識機制,決定了這個專案是否能建立起完善的激勵機制,從而起到鼓勵更多節點參與到專案中,進而增加系統的去中心化程度。工作量證明機制...