2021-01-28 17:02

科普 | 浅谈POW/POS共识机制

在前面的文章中,我们科普了挖矿的原理和应用,那么如何在区块链中确保交易的准确性和有效性呢?

让我们再次回到特定的情境中。在传统的金融系统里,A向B转账了一笔钱,这个行为会被保存在银行数据库里,也就是交易数据的真实性由银行这样的传统机构保证,以他们的记录为准。但是在比特币系统中,可能有的节点记录了A向B转账的事情,有的节点没有记录,那系统到底如何确认这笔转账的真实性呢?

于是通过一个合适的共识机制,让整个系统能做出统一的决定,就很重要了。

相信这时候有人会提出,这不是很简单吗,让所有人投票,少数服从多数就好了!

可是世界毕竟没有那么单纯。1982年,Leslie Lamport等在论文《The Byzantine Generals Problem》(中译名《拜占庭将军问题》)中提出了这样一个问题:

设想在中世纪,拜占庭帝国的几位将军各自带兵共同围困一座城市。这座城市的防守非常坚固,只有他们一起进攻才能攻下来。也就是说,他们要么一起进攻,要么一起撤退,否则都是灾难性后果。但是因为各位将军分处城市不同方向,没法坐在一起讨论,只能通过信使告诉彼此自己投票进攻还是撤退。于是,每位将军都是根据得到的所有别的将军的投票,做出自己进攻还是撤退的决定。

如果所有将军都是忠诚的,当然没有问题,根据大多数将军投票结果就好了。但是问题在于,将军中可能有叛徒。假设9位将军投票,4人投进攻,4人投撤退,剩下1人是叛徒,他选择告诉进攻的4人他投进攻,告诉撤退的4人他投撤退,那么结果就悲惨了。

所以需要有一种算法,以保证即使将军中有叛徒,忠诚的将军们依然能通过多数决来做出决定,也就是拜占庭容错。这并不容易。直到1999年,Miguel Castro和Barbara Liskov提出了实用拜占庭容错算法(PBFT),能够实现只要叛徒不超过三分之一,忠诚的将军们就一定能达成一致结果。这已经是非常好的成绩。

直到中本聪提出比特币,拜占庭将军问题的解决终于有了一种新的思路。我们这里不讨论技术算法和结构,简单来说,中本聪的思路就是,如果要做叛徒,攻击整个网络,需要付出相应的成本,而这个成本在比特币的PoW(Proof of Work)工作量共识机制下,就是要掌握整个网络50%以上的算力——换句话说,有50%以上的叛徒才行,这是比PBFT高得多的容错率,而且大家可以想象一下这是多高的成本。接下来,绝妙的是,如果真的掌握那么大的算力的话,用这些算力维护网络(诚实地挖矿)获得的收益其实会高于破坏网络。

当然PoW机制虽然很健壮,但成本很高,有太多懂区块链不懂区块链的人批评比特币浪费了大量的算力以及产生这些算力的电、计算设备等。因此后来全世界的聪明人们研究出了不少替代PoW的共识机制,不过这些共识机制同样延续的中本聪的思路:作恶有成本,且成本高到还不如为善。

但是后续的这些共识机制也都有各自的问题。比方说,PoW之外最早也是最重要的PoS(Proof of Stake),由Sunny King于2011年提出,它的原则是一个节点持有的币越多,越有机会产生下一个区块,也就是如果想要造假需要持有很大量的币。而既然造假者持有了那么多币,破坏网络的可信度就会造成资产的大量损失,这个损失极有可能是超过造假的收益的。

PoS相比PoW节约了大量的资源,但是对它的批评也很明显:这会造成富者越富,穷者越穷,然后用户会流失,新用户也不愿意加入。

即使在POS和POW之后,诞生了股份授权证明(DPoS)机制、按区块达成的投注共识(Casper)、瑞波共识机制(Ripple Consensus)、秒级共识验证Pool验证池、广泛应用于联盟链共识的实用拜占庭容错机制、小蚁发布的授权拜占庭容错机制等各样共识机制,但是由于它们各自存在的中心化过强、过于依赖代币、容错性过差等缺点,截至目前,依然没有一种共识机制,能让大家都觉得信服。

本文链接:https://www.8btc.com/media/6590201
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册
下载
阅读
分享
评论
点赞
上一篇
下一篇