APP
关于 PoW 和 PoS
2019-05-16 14815 2

之前一直计划写一篇关于PoSPoW对比的文章,一直由于各种(懒惰)原因迟迟没有落笔,今天看到社区里有人问到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的协议,但是每种协议都有非常多的安全假设前提,并没有经受足够多的时间考验。

priewienv:

这种情况下,对于PoS一旦发生分区,如果形成多个链,网络恢复之后将无法判断哪个链是合法的,因为没有一个客观的标尺来判断。

首先,并不是所有的 PoS 都会发生分区,形成多条链,譬如一些使用了混合共识的项目;其次,就算有分叉的可能性,已经发表在正规学术会议上的一些知名项目基本都给出了收敛的证明。就算你的说法指的是一些 方案不够成熟的 PoS 的项目,但我并没有看出来 PoW 在这件事情上有什么优越性,方案不成熟无法收敛的 PoW 项目也并不是没有。

priewienv:

私钥攻击。对于PoS,由于需要持有者需要时刻签名,所以私钥需要时刻在线。这种情况下,私钥就成为一个非常容易被攻击的点,一旦攻击者获得私钥,就可以获得签名权,做任何恶意处理。如果攻击者通过各种方式控制了大多数的私钥,最终可能会导致网络停止出块或者将持有者的押金罚沒(押金罚沒等同于矿场烧毁)。在PoW中,如果攻击者控制coinbase的私钥,最坏情况是攻击者获得短暂时期的一段收益。如果攻击者通过某种方式短时间内获得大多数算力,最坏情况是在短暂时间内网络容易遭受51%攻击等。我们发现,在PoS中,攻击者一旦短期获取私钥,危害致命;而PoW中攻击者短期获得大量算力,对网络的影响有限。

我对上述的对比表示疑惑,为什么在 PoS 那里是控制私钥,而在 PoW 那里只是变成了控制算力?无论是 PoS 还是 PoW,私钥被控制都是致命的威胁,因为私钥在这两种方案中,通常都是唯一的身份凭证。如果要与 PoW 被控制算力相类比,应该是 PoS 被控制票数,而不是私钥。这两者不是一回事。

priewienv:

在PoW中,攻击者即便在拥有算力的情况下,发动攻击行为仍然需要付出大量的电力和时间成本用于挖矿,这样的二次投入,对于整个系统来讲,也是更安全的。

这样的二次投入不可否认会使得攻击成本提升,但是 PoS 中,控制大量 Stake 也需要付出资金的时间成本啊,PoS 当然也需要二次投入。虽然这两种二次投入不是完全相同的,但我不觉得这一点可以不加说明地成为 PoW 的优势。

u2:

首先,并不是所有的 PoS 都会发生分区,形成多条链,譬如一些使用了混合共识的项目;其次,就算有分叉的可能性,已经发表在正规学术会议上的一些知名项目基本都给出了收敛的证明。就算你的说法指的是一些 方案不够成熟的 PoS 的项目,但我并没有看出来 PoW 在这件事情上有什么优越性,方案不成熟无法收敛的 PoW 项目也并不是没有。

嗯,应该是我了解的PoS项目有限,可能刚好我所理解的少数几个有这些问题。现在大量应用VRF的,受限于数学水平其实我都并不是非常了解,所以这里的结论有些武断,谢谢指正。

priewienv:

那我能问一下你指的是哪些项目吗,我也非常好奇他们会有怎样的问题。

u2:

我对上述的对比表示疑惑,为什么在 PoS 那里是控制私钥,而在 PoW 那里只是变成了控制算力?无论是 PoS 还是 PoW,私钥被控制都是致命的威胁,因为私钥在这两种方案中,通常都是唯一的身份凭证。如果要与 PoW 被控制算力相类比,应该是 PoS 被控制票数,而不是私钥。这两者不是一回事。

都是对比的私钥攻击的情况,可能有一句话容易引起大家的误解。这里并没有讨论算力控制和stake的控制,我觉得这两个没有太大差别。PoW和PoS控制私钥的后危害不一样,至少对于有罚没机制的差别太大了。

u2:

那我能问一下你指的是哪些项目吗,我也非常好奇他们会有怎样的问题。

比如之前的casper,如果不用混合挖矿的话,后面转纯粹pos,就会有这种问题。所以搞混合挖矿。

牵强的讲eos这种也算pos吧,这种要么分区,要么不出块。这种就是干脆不解决。

priewienv:

“控制私钥”我的理解是,攻击者通过入侵和监听手段获取到了原本网络中用户的私钥,除了这部分用户的财产会损失以外,剩下的情况在这里可以简单地约简到 控制算力/控制 stake 的情况。那么确实,由于罚没机制的引入,PoS 会增加其他诚实用户 stake 丢失的风险。

u2:

我说这里的私钥,是签名用的私钥,为了安全这两个可以分开的。所以我这里没有考虑stake被盗,只是考虑攻击者通过作恶,导致stake被罚没。

priewienv:

私钥除了签名还能干嘛。。。我没理解你说的“两个可以分开”是哪两个。

u2:

签名用的私钥和控制stake的私钥可以是两个不同的私钥。

u2:

我明白了,你是说抵押 stake 和认证区块的私钥可以是不同的两个私钥。你这个罚没说的是 Casper 吗。。。但是这不是 PoS 本身的问题。 Casper 我不是很了解,如果它有这样的问题,那只能说它设计有缺陷。

嗯,很多类似的PoS都有罚沒机制,主要是为了约束Staker作恶的,否则实际上Staker可以偷偷地挖另外一条链。我觉得所有的PoS可能都有这样的问题。

这会带来两个问题:1. 如果token放在那儿就能参与共识,意味着用户对参与共识没有任何承诺,不参与共识也没有任何成本和惩罚(用户可能根本都没上线),这样的共识是很难设计的;2. 会有Nothing at stake 的问题,这里不再多言。

priewienv:

对,是的,为了防止 Nothing at stake. 如果控制认证私钥确实可以造伪证来将 stake 罚没。Nothing at stake 确实是 PoS 才会有的问题。

内容来源:公众号:风马宁不相及

版权声明:本文仅为传播消息之用,不代表币源社区立场,文章不构成投资建议。如需转载,请务必注明文章原作者以及来源,部分图片来源于网络,我们尊重版权,如有疑问敬请联系,我们将核实并删除。

我要评论
字数上限500
评论(2)
  • 发哥爱B

    发表于27天前
    分析的很好
  • 黄金海岸

    发表于1个月前
    支持区块链数字货币