区块链主流共识算法的浅析

作者:网友投稿 时间:2018-02-21 16:00

字号

工作量证明(Proof of Work)

区块链共识算法中最常见的是比特币的工作量证明机制,它主要有两个功能:一是保证区块链的下一区块是唯一正确的块,二是防止强大的敌手干扰区块链系统从而导致区块链分叉。

工作量证明中,矿工通过竞争解决密码学难题来完成下一个块的增加和区块链的扩展,如图1所示为比特币工作量证明的简图;参与挖矿的矿工竞争将前一区块的hash与一个随机的比特串一起来计算出一个hash值,若输出的hash值满足前若干比特为0,即为解出了该难题。第一个解出难题的人获得扩展一个块的机会,并且能够获得一定量新挖出的比特币以及一小笔交易费作为其工作量的奖励。

区块链主流共识算法的浅析

尽管比特币的工作量证明机制是个非常杰出的共识设计,但并不是完美的。最常见的对工作量证明的质疑有两点:一是消耗算力巨大,不适合大规模系统,并且交易的确认时间需要10-16分钟,不能满足实时性需求;二是大多数挖矿活动集中在电力成本较低的区域,形成了局部中心化的趋势。

区块链主流共识算法的浅析

图1  比特币系统中工作量证明示意图

比特币的创造者Satoshi Nakamoto让人们初步认识到区块链改变未来世界的巨大潜力,但落实到具体应用,仍需要进一步探索更快速的、更加去中心化以及资源效率更高的共识算法。为此,许多互联网、计算机科学、金融、工业等行业的学者和业界人士进行了不断的探索,并提出了若干代替性的区块链共识方案,其中最有影响力的是权益证明(Proof of Stake)共识算法。

权益证明(Proof of Stake)

权益证明共识是代替工作量证明的共识机制中最完善和受到最多关注的,其共识的达成不需要参与者投入昂贵的计算机设备来参与挖矿竞争。相对于以比特币为代表的工作量证明共识系统中的矿工而言,基于权益证明共识的区块链系统中,参与者的角色是验证者Validator,他们只需要投资系统的代币并在特定时间内验证自己是否为下一区块创造者,即可完成下一区块的创建。如图2所示为权益证明的简要示意图。下一区块创造者是以某种确定的方式来选择,被选中的验证者将合适的交易打包成块并发布到区块链上。验证者被选中为下一区块创造者的概率与其所拥有的系统中代币的数量成正比例,简单来说即拥有300个代币的验证者被选中为下一区块创造者的概率是即拥有100个代币验证者的3倍。

由于权益证明中创造区块不需要算力资源等高成本,区块创造者不会获得区块奖励,但可以获得一定数额的交易打包费用。用权益证明共识产生区块和扩展区块链的方式也比比特币中用工作量证明的共识效率提高上千倍,并且大大节约了资源。

区块链主流共识算法的浅析

图2 权益证明共识简图

权益证明共识中一旦验证者创建了一个块,该块也需要提交到区块链上。不同的权益证明系统对提交过程的处理方式不同。

一个典型的例子是Tendermint,其系统中的每个节点都必须在每一个块上签名(在此过程中的角色称为“签名者”),直至达成了大多数节点对区块验证和记录到链上的共识;在其他一些系统中,选择一组随机的节点进行签名即可达成共识。

权益证明有效率高、节约资源的优点,但同时也面临着一些潜在的现实风险,业内研究者通常将其表述为nothing-at-stake问题,意即区块创造者和区块验证者完成各自的工作所投入的成本都极低,因而违背系统协议作恶的损失也很小。基于理性人的自利假设,参与者难免会出现做恶的情况,例如区块创造者同时创造2个块并收取两笔交易费,或者签名者同时签名2个块以获得2笔工作报酬。这些都与系统协议中同一时间段只能产生一个合法的区块且签名者不可对不合法的区块签名的规范相违背。

在新兴的“加密经济学”领域,区块链工程师们正在探索解决这些问题的方法。其中一个解决方案是要求验证者将其拥有的系统代币锁定在一种虚拟保险库中。如果验证者试图对系统进行双重签名或同时产生多个块进行分叉,那么这些代币就会被全部或部分罚没。类似的改进机制也在不同的采用权益证明的区块链系统被提出并进行了许多实践。

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >>区块链 算法 主流
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接