PoS时间扭曲攻击

https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/pos_time_warp_attack.md 作者:扎克-赫斯, Zack Hess

所有的股权证明协议都依赖于一个不绑定期来保证安全。本文的目的是要说明,不绑定期不能被强制执行,因此PoS不能安全。

未绑定期 #

解除绑定期是指PoS验证者发出他们打算退出验证者行列的信号。他们想撤回他们的股份,并停止作为验证者参与的义务。

重要的是,解约期不能太短,因为如果验证人可以太快撤回他们的股份,那么我们就没有机会惩罚他们的不当行为。网络可能需要一段时间才能意识到验证者做错了事,需要受到惩罚,所以验证者的股权需要在网络中至少锁定那么长时间。

攻击 #

一个验证人的联盟,他们提前做了一堆块。例如,如果解约期是1000个区块。在这种情况下,验证者可以同时发布1000个区块,然后在接下来的1000个区块中,每个区块的时间都比正常时间长2倍。因此,在2000个区块之后,网络又回到了正轨,正常的完整节点可以同步所有的历史,就像没有发生过任何异常一样。

非攻击性验证者在2000个区块期间无法进行任何验证,因此被从系统中删除。在第二个1000个区块期间,攻击性验证者可以解除他们绝大部分股权的绑定,但攻击者仍然拥有100%的控制权。

为什么它不起作用 #

区块链可以做一个硬分叉,把审查的大多数stakers踢出去。用户一直在使用一个版本的全节点,它不会比根据协议规则的速度来同步区块,所以这意味着每个人都可以在他们的全节点有攻击者完成解绑之前更新。