Tendermint共识算法安全

Tendermint共识算法安全

前言

Tendermint是一种结合了PBFT和POS的共识算法。它具有奖惩制度,可以惩罚那些想要作恶的节点。即使引入了合适的奖惩机制,但是还是有安全漏洞可以钻,本篇收集Tendermint相关安全材料分析Tendermint共识算法存在的安全问题。

Censorship Attack

中文翻译成审查攻击,有点词不达意。censorship中的censor是马赛克,打码的意思。censorship可以翻译成审查,是因为给音像产品打码的人实际上是对这些音像产品进行审查。这里的censorship attack是针对验证者而言。在Tendrmint中,验证者是具有投票权限的节点。Tendermint是一种通过投票,少数服从多数来达成共识的共识算法。验证者如果合谋起来作恶,这种攻击就是censorship attack。验证者可以怎么作恶呢?比如1/3以上的验证者对某个交易不进行确认,这样就会使区块链运行减慢(因为Tendermint是强一致性的算法,一旦确认就不会回滚,所以不会出现比特币网络中给的等待六次确认的情况)。同时这样的1/3以上的联合也可以拒绝某笔交易。就对这笔交易造成了拒绝服务攻击。

如果合谋的恶意节点越多,甚至可能导致城市的节点被认定为使区块链变慢的恶意节点。但是这个是以经济为代价的,毕竟合谋也不是那么容易。

分叉

对于恶意节点不大于1/3,可以通过数学证明能保证安全性,即保证链不会分叉。
具体数学证明在这里Tendermint 共识算法
而对于大于1/3合谋的验证节点通过双重签名(对两条链同时进行签名)会使链造成分叉

如何防范

引入外部机制来防范

参考
censorship attack

你可能感兴趣的:(Research,区块链)