鉴于POW机制存在明显弊端,比如依赖获取记账权,资源消耗高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低等,人们提出了一些工作量证明的替代方案,权益证明就是其中的一种方法。
权益证明(Proof of Stake,POS)要求用户证明拥有某些数量的货币(即拥有对货币的权益)。
POS最早在2012年8月,由点点币(PPCoin,简称PPC)首次实现。
PPC在SHA-256哈希运算的难度方面引入了币龄(每个币每天产生1币龄)的概念,使得难度与交易输入的币龄成反比。在PPC中,币龄被定义为币的数量与币所拥有的天数的乘积,这使得币龄能够反映交易时刻用户所拥有的货币权益。
POS机制简单来说,就是根据你持有货币的量和时间,给你发利息的一个制度。
POW以算力竞争记账权利;POS以权益竞争记账权利。
POW机制是干的越多,得到越多;POS机制是持有越多,获得越多。
比如,PPC的年利率为1%,你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.01个币的利息,那么,利息 = 3000 * 1% / 365 = 0.08个币。
实际上,PPC的POS机制结合了随机化与币龄的概念,未使用至少 30天的币可以参与竞争下一区块,越久和越大的币集有更大的可能去签名下一区块。
一旦币的权益被用于签名一个区块,则币龄将清为零,这样必须等待至少30日才能签署另一区块。
同时,为防止非常老或非常大的权益控制区块链,寻找下一区块的最大概率在90天后达到最大值,这一过程保护了网络,并随着时间逐渐生成新的币而无需消耗大量的计算。
PPC的开发者声称这将使得恶意攻击变得困难,因为没有集中的矿池需求,而且购买半数以上的币的开销似乎超过获得51%的工作量证明的哈希计算能力。
POS必须采用某种方法定义任意区块链中的下一合法区块,如果单纯依据账户结余来选择记账者将导致中心化,例如某个首富成员可能会拥有长久的优势。
为此,人们还设计了其他不同的方法来选择下一合法区块。
随机区块选择:
未来币和黑币采用随机方法预测下一合法区块,使用公式查找与权益大小相结合的最小哈希值。由于权益公开,每个节点都可以合理的准确预测哪个账户有权建立区块。
基于权益速度的选择:
瑞迪币引入权益速度证明,即鼓励钱币的流动而非囤积。通过给币龄引入指数衰减函数,使得1币的币龄不会超过2币月。
POS的设计理念,来自于对比特币危机的思考,原因有二:
首先,我们都知道,比特币的区块产量每4年会减半,在不久的未来,随着比特币区块的产量越来越低,矿工挖矿的动力将会不断下降,矿工人数会越来越少,整个比特币网络有可能会逐渐陷入瘫痪(因为大家都减少了运行比特币客户端的时间,因此越来越难找到一个P2P节点去连接和同步网络数据)。
POS解决方案:在POS体系中,只有运行节点,才能发现POS区块,才会获得利息。这促使很多不想挖矿的人,也会常常打开自己的钱包客户端,保持节点活性,这帮助了P2P货币网络的健壮。
其次,若干年后,随着矿工人数的下降,比特币很有可能被一些高算力的人或团队或矿池进行51%攻击,导致整个比特币网络崩溃。
51%攻击:简单来说,就是当你拥有了超过全网51%的比特币算力时,你将能伪造比特币网络的任何数据,比如你伪造你有一百万个比特币但实际上你没有。
POS解决方案:在POS体系中,即使你拥有了全网51%的算力,也未必能够进行51%攻击。因为,有一部分货币并不是挖矿产生的,而是由生成POS区块的利息产生,这要求攻击者还需要持有全球超过51%的货币量,这大大提高了51%攻击的难度。
优点:POS机制在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。
缺点:POS依然是基于哈希运算竞争获取记账权的方式,还是需要运行大量节点,本质上没有解决商业应用的痛点;另外,存在首富作恶的问题。
参考文献:
[1]傲慢灬(CSDN博客用户).区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述[OL].CSDN博客,2017-07-04
( https://blog.csdn.net/jerry81333/article/details/74303194)
[2]邹均,张海宁等.区块链技术指南[M].北京:机械工业出版社,2017
本文作者:魏红心,链块学院执行院长,清华大学电子系博士
--------------END--------------