POS

POS

POW的出块属性是无过程性的,不论试多少次,它都不会影响挖出下个块的概率。下一个块的出块者,还是需要经历大量的计算。影响当前这个区块的哈希值,对下一个区块的区块难度实际上没有任何帮助。

但在PoS里,大家都要使用以往历史的区块来作为随机数源头,也就用一个随机数的源头来生产一个随机数,用这个随机数来决定下一个出块是由谁出,或者下十个块分别由谁出,它就损失了无过程性的特点。

这意味着什么?意味着当前谁挖出了这个区块,挖出了这个区块数据上的特征,就可以决定接下来一个块甚至十个块的出块者。

那么大家会做一个事情是什么?是虽然我在这个时间点,比如本来这十秒钟之内只能有一块,但其实我自己在偷偷挖,已经算了 100 个区块,我就看哪个区块能够让我在下一个区块依然是出块者,或者是找哪一个区块,能够最大化我在接下来链条当中出块的机会,这就叫做权益研磨攻击。它会不断尝试在任何一个区块点位上挖矿,并且试图干预未来出块者的选择

权益磨损攻击通过惩罚机制来解决。Casper惩罚机制是凡出现了一些在检查点投票当中的不轨行为,包括双重投票和环绕投票,具体来说就是你会不会投两个相互竞争的检查点,以及在投票检查点的时候有没有跳到另一条分叉链上。当整条链没有办法达成共识时候,它会惩罚所有参与者

Long range attack

Casper算法其实有两个部分,一个部分被称之为分叉选择规则,分叉选择规则是基于这些我们所谓的见证者去发送对区块的签名,叫attestation,另一部分是所谓的Casper FFG,即通过Casper的投票去不断刷新检查点.它的安全性不基于时间同步的假设,即时间上异步也是可以的,而持续出块的活性基于所谓的半同步假设,也就是说通信的时延是有上限的(Balancing Attach)