×

POS算法

96
菠菜philsong
2017.08.07 16:49* 字数 2687

POW和POS方式的区别:POS的一个特点是,限制所有人每秒只能计算一次哈希值?

本质上,POW和POS都是一种随机选择下一个区块上传者的方式。然而,创建一个每个人被选中几率相等的算法其实是非常难的事情,同时,这种算法只是听上去很美,而在现实中这种算法却称不上公平——因为你怎么在虚拟世界里确定一个人的身份?你怎么知道一个ID背后的是真实的用户还是女巫攻击的脚本?

所以说,与其耐心去验证每一个人的身份,不如干脆根据某种无法伪造的东西进行随机,于是才有了工作证明和权益证明,以及许许多多的其他证明。

POW就是根据计算能力随机,POS根据拥有财产随机。

这就是这两个共识机制的本质。

但是,另一个问题是,POW是一个在比特币出现之前就有了的东西,而因为比特币的成功,POW基本上特指比特币的POW。但相反,POS是个新东西,目前并没有成熟的POS应用,所以,当提到POS的时候,并不是指某一个算法,而是一类,而且,这类算法目前各有优劣。并且,目前为止,没有一个算法的可靠性通过了实践的检验。所以,要对比POW和POS的优劣,我只能以POS这一大类为例。以上基本上所有其他的答案,其实都在说PPCoin的POS,也就是最早的POS,那个东西是有根本缺陷的,例如啥币龄攻击(save-up attack),都仅仅是对PPC适用,而并不是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就像是投资,把他们也抓了判刑,这就有点过了。


POW:

我们熟悉的比特币的工作机制是POW,即Proof of work, 工作量证明机制。

POS:

POS就是“股权证明”,Proof of stake,即直接证明你持有的份额。除了混合性的PPC之外,真正的POS币是没有挖矿过程的,也就是在创世区块内就写明了股权证明,之后的股权证明只能转让,不能挖矿。

在现实世界中股权证明很普遍,最简单的就是股票。股票是用来记录股权的证明,同时代表着投票权和收益权。股票被创造出来以后,除了增发外,不能增加股权数量,要获得股票只能转让。

在纯POS体系中,如NXT,没有挖矿过程,初始的股权分配已经固定,之后只是股权在交易者之中流转,非常类似于现实世界的股票。股权从创世区块中流出,被交易者买卖而逐渐分散化。

POS的新增机制是“利息”,即持有一定的POS币一定时间,当然得开着客户端,将获得一定量的固定“利息”。这部分“利息”是新增的POS币。只要你持有POS币并开机,你就能获得一定比例的“利息”。

我们也应该看到,POW的安全性是不断积聚起来的(明智的攻击者仅仅会选择攻击最近产出的块),而POS的攻击者可能轻易发起数百个块的攻击(成本低)。

POS币龄引起了以下的问题:

1. 攻击者可以把足够的币龄积攒起来, 从而成为网络上拥有最高权重的节点。如果攻击是恶意的,攻击者可以对区块链进行分叉并达成双花。一个占1%的币的用户,可以憋个两个月不挖矿,来攻击网络。

2. 另一种情况是这些币龄属于贪婪但却诚实的节点。有一些节点并没有恶意, 但是他们的钱包平时都是离线的, 只是偶尔进行同步以获得利息。币龄系统事实上鼓励了这些节点滥用这一机制,他们平时保持离线,只在累积了可观的币龄以后才连线以获得利息,然后再次关闭。而这样的化,马币钱包在线挖矿的币的数目就少,容易发生攻击,而且更加严重的是,由于节点缺乏,数据同步的速度,交易响应速度都会受到影响。

去除币龄,PoS虚拟币重获新生

PPC有币龄,BLK最新的改进协议貌似已经取消币龄限制,Blackcoin自2014年成立以来,已经实施了3个POS版本。版本2解决了许多潜在的安全问题,并阻截了网络滥用问题。版本3进行了一些更新,最显著的改变是从1%的年度POS奖励变为静态1.5BLK(黑币),改成500确认提高安全性又兼顾了流动性,细节的改进很多很多,懂技术的可以自己研究。这意味着只有参与保护网络安全的Blackcoin所有者,通过让他们的钱包保持在线状态,才有机会获得一个区块。

这个挺有意思,大杂烩?过程挺详细。。。Qtum ICO信息跟踪:Qtum开发团队已将POS 3.0共识机制融合到Bitcoin Core V0.13版本


http://www.wanbizu.com/ICO/201612078367.html

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

日记本
Web note ad 1