POS 是和 POW 类似的共识算法,目的是在去中心化网络上达成共识。今天我们聊聊 POS 的原理,与 POW 的差异,以及 POS 存在的问题。让大家对 POS 形成一个比较立体的认识。

原理

先来说 POS 的基本原理。首先要声明一下,POS 不是一个算法,而是一类算法的统称,POS 最早的实现版本是在 2012 年推出的 PPCoin 中,但是后来各家的 POS 其实差别还是很大的,所以下面我们只说共性的内容。

POS 的基本哲学就是去相信那些持币多的人,这里的币就是当前使用 POS 的区块链上的币。POS 会实现一个彩票系统,随机的选出记账人。持币越多的人就越可能被选中,概率跟持币数量成正比。注意,这里的持币数量,通常不只是币的绝对数量,而是币的数量乘以持币时间,以天为单位,这样就得到一个新的名词就是“币天”。例如,小明有10个币持有了30天,而小刚有20个币持有了10天。那么小明就有300币天,而小刚只有200币天,被选中记账的概率小明反而更大。时间这个维度体现的是持币人对这条区块链的忠诚度,所以 POS 的基本出发点就是持币多的人有动机去保护自己的资产,所以有理由诚实的记账。

POS 的全称就是 Proof Of Stake ,翻译过来叫权益证明。基本意思是证明我在这条链上是有很多权益的,所以我不可能自己去伤害自己的权益。Stake 的本意是抵押,意思就是要抵押一定的币到系统上,如果记账出错,这些币就会被没收。抵押截止时间一般就是按区块数量算,例如在我生产这个区块之后链上又生成了30个区块,我就可以把我的币领回来了。抵押过程,就是锁定了币的流动性。

这就是 POS 的基本原理了,总结起来一句话:相信有钱人。

POS 和 POW

下面我们来仔细对比一下 POS 和 POW ,这样很多细节就又会浮出水面。

首先,POS 设计之初的功能就是跟 POW 一样的,就是达成共识。但是 POW 耗能巨大,社区很多人非常不满,于是有人发明了 POS ,意图去取代 POW 。POS 是没有能源消耗的,因为随机选出记账人之后,生成区块的工作就是由这个人去做,没有类似 POW 那样的算力竞争,所以也就没有能源消耗了。记账人,或者说产生下一个区块的人也不叫矿工 Miner 了,而是叫 Forger 或者 Block Producer 。

另外,POW 和 POS 大思路其实很相似,二者都是去试图在全球人中,随机的去选出一个人去进行记账。只要保证攻击者不能操纵这种随机性,那么系统就是安全的。但是问题在于,网络上如何去定义一个人呢?是用一台机器吗?一个 IP 吗?这些都是很容易伪造的,女巫攻击是不可避免的。所以倒不如拿一些不能伪造的东西进行随机,POW 是用真金白银,也就是花钱越多的人买的矿机和电力就越多,就越可能被选中。而 POS 是抵押链上代币的形式,持有的币越多,就越可能被选中。

看到这里,我们肯能感觉 POW 跟 POS 真的很像啊,而且 POS 不用耗费电能,难道不是一种更为优秀的共识算法吗?

POS 的问题

但是实际情况是从 2012 到现在 2018 年,所有 POS 的链都不是很成功。所以下面我们就来看看 POS 有哪些问题。

着重让大家搞清楚的,就是 Nothing At Stake ,翻译为“权益粉碎攻击”。基本意思就是”如果我作恶,其实我也不会损失任何东西“。当然,这里的作恶方式肯定是有特指的。区块链存在于去中心化网络上,产生分叉是非常正常的事情,POW 条件下分叉后大家会按照最长链原则,逐步回归到一条链上。而 POS 在分叉条件下却非常有可能出问题,这就是 Nothing At Stake 的出现场景。这里面的根本原因就是制作区块是本身没有成本的,那么如果系统出现了分叉,那么记账人就往每个分叉上都加上自己的块,这样,不管哪个分叉最终胜出,他都可以拿到手续费。所以理性的记账人会处于自身利益同时支持不同的分叉,这就会造成一个分叉上有90%的人支持,另外一个分叉上也有90%的人支持的情况,这样共识就非常难以达成。所以说 POS 条件下,对于这种形式的作恶,是没有办法直接做出处罚的。这就是 Nothing At Stake 了。

除了 Nothing At Stake 。POS 也有一些其他问题,比如 POS 会造成富人越来越富,因为持币越多的人越可能被选中记账,获得更多的报酬。或者,因为压的是系统内的币,所以可能出现的情况是,我就去作恶,然后我失去这些,但是会赢得更多。而对应的,POW 是用系统以外的能源消耗,去保证系统内的共识,也可以说不管是产生币,例如比特币,还是共识,都是有成本的。而 POS 是通过系统内的币来达成共识,或者说是自己证明自己,产生币还是共识,都是无成本的,这个听起来有些诡异。所以有人说,POS 是一条咬住自己尾巴的蛇。

总结

关于 POS ,Peter 要分享的内容就是这些了。总结起来,POS 就是一种通过抵押链上资产来保证链上共识的方式。POS 的好处非常明显,就是不需要耗能。但是 POS 的问题也很多,这些问题到底能不能被解决,多年来争论一直都没有停止过。目前还有没有任何一条真正成功的 POS 链,但是以太坊正在考虑切换到 POS ,大家都很关注,因为这将为 POS 的可行性的提供最有力度的一个证明。

参考: