工作量证明(ProofofWork)最常见的区块链共识算法是比特币的工作量证明机制,其主要作用有两个:一是确保区块链的下一个区块是唯一的正确的区块,二是防止强大的对手干扰区块链系统,导致区块链分叉。在工作量证明中,矿工通过竞争解决密码学问题来完成下一个区块的添加和区块链的扩容,如图1所示是比特币工作量证明的简化图;区块的哈希与随机比特串结合计算出一个哈希值。如果输出的哈希值满足前几位为0,则问题已经解决。第一个解开谜题的人有机会扩展一个区块,并可以获得一定数量的新开采的比特币和少量交易费作为他工作的奖励。比特币的工作量证明机制虽然是一个优秀的共识设计,但并不完美。对工作量证明最普遍的质疑有两点:一是消耗大量算力,不适合大型系统,交易确认时间需要10-16分钟,不能满足真实-时间要求;二是大部分挖矿活动集中在电力成本较低的地区,形成了局部中心化的趋势。图1比特币系统中的工作量证明示意图比特币的创造者中本聪让人们初步意识到区块链改变未来世界的巨大潜力,但要落实具体应用,进一步探索更快、更多仍然需要分散的方法和更节省资源的共识算法。为此,互联网、计算机科学、金融、工业等行业的众多学者和人士进行了不断探索,提出了几种可供选择的区块链共识解决方案,其中最具影响力的是股权证明(ProofofInterest)。Stake)共识算法。权益证明(ProofofStake)权益证明共识是目前最完善的取代工作量证明的共识机制,受到的关注最多。它的共识不需要参与者投资昂贵的计算机设备来参与挖矿竞争。与以比特币为代表的工作量证明共识体系中的矿工相比,在基于权益证明共识的区块链体系中,参与者的角色是验证者Validator,他们只需要投入系统并在一定时间内验证你是否是下一个区块的创建者,你可以完成下一个区块的创建。图2是权益证明的简要示意图。下一个区块的创建者以某种确定性的方式被选中,被选中的验证者将合适的交易打包成区块并发布在区块链上。验证者被选为下一个区块的创建者的概率与其拥有的系统中的代币数量成正比。简单来说,拥有300个代币的验证者被选为下一个区块的创建者的概率是拥有100个代币验证者的3倍。由于在权益证明中创建区块不需要算力资源等高成本,因此区块创建者不会获得区块奖励,但可以获得一定数量的交易打包费。权益证明共识产生区块和扩展区块链的方式也比比特币中工作量证明的共识效率高数千倍,并且大大节省了资源。图2Proof-of-Stake共识的共识图一旦验证者在Proof-of-Stake共识中创建了一个块,该块也需要提交给区块链。不同的权益证明系统处理提交过程的方式不同。一个典型的例子是Tendermint,系统中的每个节点都必须对每个块进行签名(这个过程中的角色称为“签名者”),直到大多数节点验证并记录该块。链上共识;在其他一些系统中,共识是通过选择一组随机节点进行签名来实现的。权益证明具有高效、节约资源等优点,但也面临着一些潜在的现实风险。业内研究人员通常将其表述为无风险问题,即区块创建者和区块验证者完成各自工作所投入的成本极低,因此违反系统协议作恶的损失为也很小。基于理性人的利己假设,参与者难免会做坏事,比如区块创建者同时创建2个区块并收取两笔交易费,或者签名者同时签署2个区块获得2份工作奖励。这些都违反了同一时间段内只能产生一个合法区块,签名者不能签署非法区块的系统约定。在新兴的“加密经济学”领域,区块链工程师正在探索解决这些问题的方法。解决方案之一是要求验证者将他们拥有的系统令牌锁定在一种虚拟保险库中。如果验证者试图对系统进行双重签名或同时分叉多个区块,这些代币将被全部或部分削减。类似的改进机制也被提出并在使用权益证明的不同区块链系统中实践。Peercoin是第一个实施股权证明的代币,其次是blackcoin和NXT。此外,以太坊最初依赖工作量证明共识,但计划在2018年初迁移到权益证明,建议Casper尝试解决工作量证明和权益证明中的问题。Decred采用工作量证明和权益证明的混合共识方案。其他共识算法包括ProofofWork和ProofofStake,区块链相关研究人员也提出了DelegatedProofofStake(DPOS)、PracticalByzantineFaultTolerance(PBFT)和ProofofConceptsDPOS和PBFT,下面简单介绍一下。(1)委托权益证明DPOSDPOS是权益共识的改进版。共识过程不再需要所有参与节点的多数通过,而是委托部分代表进行,可以进一步提高共识效率,更好地处理系统节点不在线的情况。比特股(Bitshare)系统采用的DPOS共识的原理是让每个持有比特股的人进行投票,产生101个代表,他们的权利完全平等,可以理解为101个超级节点或者一个矿池.从某种角度看,DPOS与议会制或人民代表大会制有相似之处。如果代表不能履行职责,例如轮到他们时未能按时出块,他们将被除名,然后网络将选举一个新的超级节点来取代他们。使用DPOS共识的系统通常会使用经济激励和惩罚机制来达成更稳定的共识。(2)实用拜占庭容错共识PBFTPBFT是一种基于严格数学证明的算法,需要经过信息交互和局部共识三个阶段才能达到最终的一致性输出。可以证明,只要系统中有超过三分之二的正常节点,就可以保证最终输出一致的共识结果,虽然达成共识的时间不确定。实用的拜占庭容错协议的缺点是不适合大规模节点共识,因为随??着节点规模的增加,达成共识所需的时间大大增加,不符合效率要求。许多相关研究人员正在讨论改进拜占庭协议以解决不同应用场景下的效率问题。总结共识算法的性能直接影响分布式系统的性能,如安全性、健壮性、共识成本和效率等,如何在兼顾安全性和健壮性的同时提高效率,是需要不断讨论和研究的重点。目前,关于区块链共识的各种研究也在根据具体的应用场景进行多方面的改进。除了技术方案的完善外,还需要结合经济和社会因素,寻找更有针对性、更完善的解决方案。.总的来说,区块链共识方案的研究为分布式系统中的一致性问题提供了较好的解决方案。目前已经有一些算法可以较好地解决分布式系统中的共识问题。在EUROCRYPT、ACM、CryptologyePrintArchive等高水平会议和期刊上也有高质量的文章发表,对上述问题进行了更深入和前瞻性的讨论,但仍有许多问题有待解决该领域尚待解决,仍有很大的研究价值和发展空间。【本文为《中国保密协会科学技术分会》专栏作者原创稿件,转载请联系原作者】点此查看该作者更多好文
