之前一直计划写一篇关于PoS和PoW对比的文章,一直由于各种(懒惰)原因迟迟没有落笔,今天看到社区里有人问到PoW/PoS的相关问题,忍不住就回答了。https://talk.nervos.org/t/nervos-pow/1639/3?u=yaning-u2
区块链的重要意义在于信任的机器和价值基础,对安全的要求非常高。而这种系统一旦有可能发生重大故障,则其价值基础则会完全丧失。这也是为什么构造一个区块链系统非常困难的原因之一。
人类往往在这种关键系统上会设置非常高的可靠度,例如核电站,航天飞机,即便是一个螺丝也有可能导致重大灾难。对于这样的系统,哪怕有万分之一的概率发生致命故障也是不能容忍的。再举一个投资界的例子,如果有一把手枪有一枚子弹,扣动扳机有百分之一的概率会中枪,给你一个选择,给你一千万但是需要对准自己太阳穴扣动扳机,你是否会选择?
所以对于区块链,我们需要考虑在最坏情况下的可能性。在最坏情况下,PoS协议缺乏恢复能力。举一个例子,全网网络由于网络意外情况导致网络掉线或者分区。
这里我们可以简单对比下,假设发生战争或者重大自然灾害,导致全网分区,经过一段时间后网络又恢复重连。这种情况下,对于PoS一旦发生分区,如果形成多个链,网络恢复之后将无法判断哪个链是合法的,因为没有一个客观的标尺来判断。而对于PoW则不存在这种问题,PoW通过对两个链算力简单的判断,即可选择出合法的链。
私钥攻击。对于PoS,由于需要持有者需要时刻签名,所以私钥需要时刻在线。这种情况下,私钥就成为一个非常容易被攻击的点,一旦攻击者获得私钥,就可以获得签名权,做任何恶意处理。如果攻击者通过各种方式控制了大多数的私钥,最终可能会导致网络停止出块或者将持有者的押金罚沒(押金罚沒等同于矿场烧毁)。在PoW中,如果攻击者控制coinbase的私钥,最坏情况是攻击者获得短暂时期的一段收益。如果攻击者通过某种方式短时间内获得大多数算力,最坏情况是在短暂时间内网络容易遭受51%攻击等。我们发现,在PoS中,攻击者一旦短期获取私钥,危害致命;而PoW中攻击者短期获得大量算力,对网络的影响有限。
在PoW中,攻击者即便在拥有算力的情况下,发动攻击行为仍然需要付出大量的电力和时间成本用于挖矿,这样的二次投入,对于整个系统来讲,也是更安全的。
最后PoW的安全是经过历史验证的,虽然近期涌现出大量的PoS的协议,但是每种协议都有非常多的安全假设前提,并没有经受足够多的时间考验。
原文见个人公众号:风马宁不相及