POW与POS的对比

引用一篇挺好的文章

“本质上,POW和POS都是一种随机选择下一个区块上传者的方式。然而,创建一个每个人被选中几率相等的算法其实是非常难的事情,同时,这种算法只是听上去很美,而在现实中这种算法却称不上公平——因为你怎么在虚拟世界里确定一个人的身份?你怎么知道一个ID背后的是真实的用户还是女巫攻击的脚本?所以说,与其耐心去验证每一个人的身份,不如干脆根据某种无法伪造的东西进行随机,于是才有了工作证明和权益证明,以及许许多多的其他证明。POW就是根据计算能力随机,POS根据拥有财产随机。这就是这两个共识机制的本质。


POW:

优势:可靠,这就是它最大的优点,因为它是目前唯一接受了实践检验的公有链算法。

劣势:浪费算力,对于51%攻击有潜在隐患——攻击者并不需要拥有比特币,所以如果要做51%攻击,所需要的花费跟挖矿难度相关而不是直接跟比特币价格相关(虽然说挖矿难度会和比特币价格相关),所以,如果挖矿公司的市值不如比特币的价格的话,比特币面临51%攻击的风险就会变大。

POS:优势:不需要浪费算力,同时,进行51%攻击的代价更高,因为想要进行51%攻击的话,你得拥有51%的货币。也就是说,这东西越值钱,攻击的成本就越高。劣势:1,权益粉碎攻击(nothing-at-the-stake attack),上面有人说POS是社会主义,我是不赞同的。我觉得POS就是完全的资本主义——你钱越多,你拥有的权力就越大。当然,这个也并不是没有道理,因为在其中利益越多的人,就更愿意去维护这个币的系统,于是他们手中的币才能更有价值。因此,他们并不愿意去进行恶意攻击,因为那样实际上他们手中的币也会受害,这就是POS能够更有效地防御51%攻击的原因。换句话说,钱越多责任越大。但反过来讲,钱越少责任越小。假设你只有1%的钱,你成功的概率只有1%,但是你尽可以去尝试分叉,因为这并不消耗任何资源。也就是你在最长链上挖矿的同时,也去创造一个只在自己的区块上挖矿的分支。放在POW里,创建这个分支完全得不偿失因为你浪费了大量的算力。然而在POS里,如果这个分支不被接收,实际上你什么都没损失。于是,即便是诚实的矿工也可能回去偷偷地进行这种分叉尝试。尽管他们知道这种尝试会造成整个币的价值降低,但是他们的钱很少,他们并不在乎,这就是所谓的平凡人悲剧(tragedy of the commons)。对于这种攻击,基本上所有的新的POS算法都有应对的机制,例如以太坊的casper里的slasher,基本概念就是如果有人尝试了这种攻击,其他人发现了可以公布证据然后对这个人进行惩罚。2,理性分叉。很多地方把这个合在权益粉碎攻击里了,但我觉得必须要分出来说。权益粉碎攻击是主动的,而这个是被动的——假设有人做了权益粉碎攻击进行了分叉尝试,诚实节点理应不予理会,因为他们能看到这种分叉被接受的几率小。对于POW来说,你不会在被接收几率小的分叉(例如不是最长链的分叉)上挖矿,因为那样浪费算力。但对于POS来说,在那上面挖矿没任何损失,反而是不在那上面挖矿,万一这条链被接收了,你就会受到损失。于是,即便是诚实节点,如果它足够理性,那么它也会在所有它收到的链上同时挖矿。POW里,没人挖的分支很快就会变成孤块被丢弃,但在POS里,如果整个网络足够理性,会出现的情况反而是每条分支都会永远存在因为理性的矿工会同时在所有分支上挖矿。这是我觉得POS最大的缺陷,就是如果只用最长链共识的话,POS本身是没法应对分叉的,必须通过惩罚。而这种惩罚不光是基于作恶,而是违反节点逐利本性的。放在真实社会中的话,1就好比是抢劫,抓了判刑没有任何问题。可是2就像是投资,把他们也抓了判刑,这就有点过了。

链接:https://www.zhihu.com/question/22369364/answer/176843054

你可能感兴趣的:(POW与POS的对比)