Skip to main content

对PoS的链重建攻击

自从以太坊从PoW转为PoS之后,对于PoS与PoW的安全性的讨论和碰撞便成为一个焦点话题。早在2020年11月6日,Vitalik Buterin就写过一篇博客《Why Proof of Stake》[1] 来进行了一些测算。他的测算表明,在花费同等安全成本的情况下,PoS比PoW更安全。

但是他的计算建立在一个一厢情愿的假设之上,即攻击者是要花钱买矿机或者买币质押做节点参与到出块竞争当中去的。这相当于是说,攻击者是文明礼貌的,他彬彬有礼地参与这条链的游戏规则,然后试图在该游戏规则下获胜。

可是人类历史的教训就是,不要指望颠覆者会遵守你的游戏规则。暴力革命也好,颠覆式创新也罢,真正的攻击者,从来都是掀桌子重来的。康有为要保皇,孙中山要革命,毛润之年少时也是信无政府主义的,但最后还是不得不认清现实,暴力革命才是唯一出路。

我们首先假设一条完整的PoS区块链,从创世区块开始就是用PoS的办法在产生。出块的方法类似于以太坊PoS所采取的伪随机(计算机无法生成真随机数)选择验证者或者投票人,投票人每隔一段时间(此处必须依赖外部时钟,因为PoS没有了PoW计算,因此无法具有内生时间)就终结一组区块,称之为一个epoch。

区块链的数据可以剥离成两类:一、被记录的交易数据;二、把这些交易数据固定住的附加数据(区块头等)。第一类数据是由用户产生的,第二类数据是由区块链系统产生的。对于PoW而言,第二类数据中最关键的一个数字就是PoW计算出来的哪个数字,一个哈希逆运算的结果。对于PoS而言,第二类数据则是经由上述投票和终结的方法所产生的元数据,本质上是一组私钥的数字签名。

从密码学意义上,从PoW到PoS,固定或保护交易数据所依赖的密码学技术发生了一个巨大的变化,就是从哈希变成了签名,具体的例子,从SHA-256变成了ECDSA。

好了。由于PoS所有的计算都只是数字签名,其计算几乎不需要花费什么功夫。如果从创世区块开始,逐个区块逐个区块地,把上述两类数据完全剥离,然后,重新指定所有的验证者或者投票人,重建全部的区块头,把经过清洗的交易数据全部装进去,完全按照规则重新生成epoch,这就得到了一条以假乱真的全新重建的PoS区块链。

由于PoS链没有内生时间,在整个重建过程中,可以任意指定和伪造任意时间戳,甚至可以把区块创世时间任意改为比如2008年之前的时间,或者2009年之后的时间,都是完全无法分辨真伪的。

让我们把这种方法称之为链重建攻击。

从根子上说,PoS失去了时间,便失去了一切。

在最极端的情况下,假设全球主要实力国家,主要是五常,联合执法,是可以轻而易举对任何一条PoS链进行重建的。任何一条链,装小白兔人畜无害的时候不会面临这种生死考验。但如果学比特币要挑战全球法币秩序的话,那就不好说了。

换句话说,如果比特币是PoS链,迟早要被五常联手灭掉。别看五常平时掐的你死我活,真到面临共同威胁的时候,是可以迅速联手行动的。2018年10月到12月,中美俄等国联手,成功从尼日利亚转移出一批高浓度核材料的案例,就给人们上了生动一课。铸币权,是不亚于核扩散的严重问题,绝对是值得五常这么干的。现在没干,不过是威胁还小而已。

PoW链就完全不同了。

就算五常联手控制了所有人,想从头重建PoW链,也不得不花费大量的钱和时间,来把所有的PoW逆哈希计算从头到尾重算一遍,才能够重建整条区块链。这个成本是惊人的。

我们来从博弈论的角度分析一下五常的决策:

夺取并重建PoS链,成本极低,分值 0;收益是取得对其的控制权,分值 100;攻击总效益 = 100 - 0 = 100,值得干。夺取并重建PoW链,成本极高,分值 -100;收益仍然是控制权,分值 100;攻击总效益 = 100 - 100 = 0,就不值得干了。

比特币协议或者说PoW的最大优点就是自我证明 self evident。只需要解决俩问题:1、怎么把区块数据传递出去;2、怎么把交易数据传递出去,比特币协议就能工作。设想极端一点儿,全世界电脑都砸了,可以用纸和笔来抄写区块数据,在纸上计算哈希和ECDSA签名,比特币协议和PoW照样work(不等于有效地、高效率地work)。更进一步极端些,人类忽然灭绝了,此前算出来的这些PoW写在这些纸上,依然是有效的数字。一个地外文明发现后可以完美验证。可以认为比特币PoW链是可以进入类似“冬眠”状态的。然后只要再给予算力和能量就随时可以“复活”。其他所有的共识协议,如果经历这种文明重启,都是无法证明其有效性的。

对于半道出家的以太坊,情况有点儿微妙。

如果想要夺取并重建整条以太坊区块链,虽然PoS的部分不需要耗费什么成本,但是以太坊PoS链的根是扎在此前几年的PoW挖矿链的基础上的,所以,几乎全部的重建成本都在于重建2015-2022这几年的PoW链的部分。

因此,以太坊对链重建攻击的安全防护能力永久性地停止在了PoW转向PoS的那一刻。这个防护的盾牌,是由过去的古老计算能力所获得的。随着未来人类计算能力的不断进步和飞跃,这面老旧的盾牌的防护力将相对的越来越差。

而比特币由于一直在吸收最先进的算力、效率最高的能量使用,不断在盾牌外面加装与时俱进的、强度更高的防护层,所以随着时间的流逝,总防护力只会越来越高、越来越高,夺取并重建的成本也越来越高。

至于其他PoW链为啥竞争不过比特币?很显然,几个保险柜摆在这里,其中一个防护力远远超出其他的(而且还在以远超其他的速度在不断加固中),收费差不多,你选择把身家钱财放在哪一个里面?傻子都知道怎么选择吧?反过来讲,告诉你别放这里放别处的人,非蠢即坏。

所有对PoS安全性的论证,都没有充分考虑外部强力直接“掀桌子”的情况,犯了“主观主义”和“机会主义”的错误。不过,正是由于前方有比特币顶着,才有后方岁月静好的苟且。但如果真的以为加密的天空本来就是那么蓝,空气本来就是那么芬芳,那就大错特错了。

参考资料: