死磕共识算法|POS算法
配合以下代码进行阅读:https://github.com/blockchainGuide/
写文不易,给个小关注,有什么问题可以指出,便于大家交流学习。
为什么会出现PoS?
在比特币系统中采用了PoW
(工作量证明)算法,PoW
其实就是由所有的节点相互竞争,提交一个难于计算但是容易验证的计算结果,任何节点都可以验证这个这个结果的正确性,验证通过即算这个节点完成了大量的计算工作。
然而PoW
机制存在明显的弊端。 一是算力不公平,矿场的竞争力比单个节点大,还有就是随着硬件的发展,特别是量子计算机的出现,可能几秒就破解了Hash
。 二是PoW
算法太浪费了,比特币网络每秒可完成数百万亿次SHA256
计算, 但这些计算除了使恶意攻击者不能轻易地伪装成几百万个节点和打垮比特币网络,并没有更多实际或科学价值。
鉴于以上问题,POS股权证明
诞生了。
PoS股权证明
权益证明( Proof of Stake,PoS) ,最早在 2013 年被提出,最早在 Peercoin
系统中被实现,类似现实生活中的股东机制,拥有股份越多的人越容易获取记账权( 同时越倾向于维护网络的正常工作) 。
典型的过程是通过保证金( 代币、资产、名声等具备价值属性的物品) 来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。提供证明的保证金( 例如通过转账货币记录) 越多,则获得记账权的概率就越大。合法记账者可以获得收益。
恶意参与者将存在保证金被罚没的风险,即损失经济利益。一般的,对于 PoS 来说,需要掌握超过全网 1/3 的资源,才有可能左右最终的结果。这个也很容易理解,三个人投票,前两人分别支持一方,这时候,第三方的投票将决定最终结果。
在股权证明模式下, 有一个名词叫币龄, 每个币每天产生1币龄, 例如,你持有 100 个币, 总共持有了 30 天, 那么, 此时你的币龄就为 3000, 这个时候, 如果你发现了一个PoS
区块, 你的币龄就会被清空为 0。 你每被清空 365币龄, 你将会从区块中获得0.05个币的利息( 可以理解为年利率5%) , 那么在这个案例中, 利息=3000×5%/365=0.41
个币。
以现有的比特币运行发展情况来看, 比特币每年的挖矿产量都在不断减半, 我们可以预计, 随着比特币产量的不断降低, 矿工人数也会越来越少, 这样就会导致整个比特币网络的稳定性出现问题。 PoS的解决方案是鼓励大家都去打开钱包客户端程序, 因为只有这样才可以发现PoS区块, 才会获得利息, 这也增加了网络的健壮性。还有当矿工数量变少的时候,比特币被51%算力攻击就越容易。
PoS 的优缺点
优点
- 省资源:不需要挖矿,不需要大量耗费电力和能源。
- 更加去中心化:相对于比特币等PoW类型的加密货币,更加去中心化,相比PoW算法的51%算力攻击,PoS需要购买51%的货币,成本更高,没有攻击意义。
- 避免通货膨胀:PoS机制的加密货币按一定的年利率新增货币,可以有效避免紧缩出现,保持基本稳定。
缺点
- POS会面临发币的问题,起初只有创世块上有币,意味着只有这个节点可以挖矿,所以让币分散出去才能让网络壮大,所以早期采取的是POW+POS,即第一阶段POW挖矿,第二阶段POS挖矿,后来ERC20合约代币出现后,可以只存在POS的挖矿形式。
- 开发者作恶:纯
PoS
机制的加密货币,只能通过IPO
的方式发行,这就导致“少数人”(通常是开发者)获得大量成本极低的加密货币,很有可能造成大面积的抛售。 - 币龄其实就是时间,一旦挖矿者囤积一定的币,很久很久之后发起攻击,这样将很容易拿到记账权。
- 矿工可以囤积代币从而导致货币流通困难。
- POS面临的最严重的一个问题就是无成本利益问题,在PoS系统中做任何事几乎没有成本,比如在PoS系统上挖矿几乎没有成本,这也就意味着分叉非常方便。
参考
https://github.com/blockchainGuide
https://eth.wiki/en/concepts/casper-proof-of-stake-compendium
https://eth.wiki/en/concepts/casper-proof-of-stake-compendium