简单理解当有节点发起攻击,在同一个区块高度同时出两个块进行分叉,对攻击者而言因为出块成本较低,只需要 stake(质押),对其它节点而言最佳策略就是对分叉的两条链都进行签名获得双倍奖励,也只需要 stake,这就会造成链很大的危机,PoS 里的出块成本远远小于 PoW 里的大量算力成本,而且 stake 可以同时用在两条链上,这个问题一度被广泛讨论,目前已经通过“stake 质押 + slash 惩罚”解决了,也就是 PoS 共识的区块链里出块成本不仅仅是有 stake 就好,这个 stake 一定比例是必须被系统锁定一段时间,如果节点作恶那 stake 就会被系统没收,通过经济学的设计,PoS 共识的安全性又进一步提升。
Longrange attack 指的是从创世区块开始,创建一条比原来主链还要长的链,并篡改全部或部分交易历史,来代替原有的主链。
Long range attack 利用的是,新加入的节点或是长期不在线的节点在同步数据时不能清楚知道哪一条链是正确的主链,因为攻击者的链是从创世区块开始伪造,如果根据最长链原则来决定主链,那被篡改的链有概率成为真正的主链,使后续节点都认定错误的链。
因为在一条分叉链上产生区块是几乎没有成本的,只需要 stake,而且攻击者不需要太多的区块确认时间,使得分叉链的形成速度可以快过主链,有很多理论证明了这样的攻击可行,但实际执行却非常困难,可以看这篇《Rewriting History: A Brief Introduction to Long Range Attacks》。


