区块链中的共识机制
2019-03-30李福涛
李福涛
【摘要】 共识机制作为区块链中的关键技术,是区块链系统中的所有参与节点达成一致的策略和方法,决定了区块链能在多个节点中达到一种相对平衡的状态。随着区块链技术发展和不断成熟,区块链的共识机制也在不断发展与完善。本文介绍了几种主流共识机制的特点,具体为PoW、PoS、DPoS、PBFT等共识机制。
【关键词】 区块链 共识机制 去中心化
一、前言
2008 年,学者中本聪(Nakamoto)发表论文《比特币:一种点对点的电子现金系统》,在该文中首次提出区块链概念。作为一种近几年逐渐兴起的前沿性、基础性技术,区块链(Blockchain)是一种全新的去中心的分布式系统,其整合了共识机制、密码学技术、分布式数据存储、P2P技术等关键技术。该系统是按照时间顺序将各个数据区块以顺序相连,从而组合成一种链式数据结构,使用非对称加密算法来保证链中的数据区块不可篡改和不可伪造。区块链的这种去中心化、去信任化的链式数据结构具有广阔的应用前景和重要的应用价值,其应用已延伸到当前网络环境下的各类商品的交易和数据的传输中。
二、共识机制
区块链作为一种分布式记账系统,其中的节点无需互相信任,各节点通过统一的共识机制共同维护一份账本。区块链建立的是一种去中心化的共识机制,区块链的共识机制是区块链系统中的所有参与节点达成一致的策略和方法。共识机制作为区块链中的关键技术,直接影响到区块链应用的有效性和适用性。
当前区块链主要有四大类共识机制:工作量证明(Proof Of Work,PoW)机制、权益证明(Proof of Stake,PoS)机制、股份授权证明(Delegate Proof of Stake,DPoS)机制和实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)机制。
2.1工作量证明(PoW)
作为一种现今较为成熟的共识技术,PoW共识过程为:触发交易的节点向区块链网络广播交易请求后,网络中的所有节点竞争获得创建新区块的权利,竞争成功的节点执行智能合约后向网络广播生成的新区块,然后所有节点验证该新区块的正确性。PoW依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高,同时每次达成共识需要全网节点共同参与运算,性能效率比较低,容错性方面允许全网一半节点出错。虽然PoW可以达到完全去中心化,节点自由进出,但是目前比特币已经吸引全球大部分的算力。且由于依赖机器进行数学运算来获取记账权,资源消耗相比其它共识机制高、可监管性弱。
2.2权益证明(PoS)
PoS的主要思想是节点记账权的获得难度与节点持有的权益成反比,其出发点在于解决工作量证明的能源浪费问题。作为Pow的一种升级共识机制,PoS根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,且该共识机制容错性和PoW相同。相对于PoW,PoS一定程度减少了数学运算带来的资源消耗,性能也得到了一定的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。PoS共识过程仅仅靠内部币龄和权益,而不需要消耗外部算力和资源,解决了算力浪费问题,但是算力却大打折扣。
2.3股份授权证明(DPoS)
随着对PoS研究的深入,基于PoS产生了DPoS,意为股份授权证明机制,DPoS与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,股东们投出一定数量的节点,作為代理人,代理他们进行验证和记账,并负责维护货币系统运行,其合法性验证性能也与PoS相似。由于大幅缩小参与验证和记账节点的数量,其共识验证的时间就更短。DPoS整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的,普适性较差。
2.4实用拜占庭容错(PBFT)
PBFT是一种基于消息传递的一致性算法,算法经过三个阶段达成一致性,每个阶段可能因为失败而重复进行,其解决了原始拜占庭容错算法效率不高的问题,使得拜占庭容错算法在实际系统应用中变得可行。PBFT算法是假定攻击者数量在容错条件下,预设的大多数节点通过依赖一个选举过程达成节点共识,然后由选举的节点按照约定生成区块。PBFT的缺点在于:网络资源消耗较高,网络开销较大,且容错率低、灵活性差,超过1/3的节点作恶就会导致系统崩溃,以及只适用联盟链或私链场景。
三、结语
区块链的去中心化、防篡改、可追溯等特性使其具有良好的应用潜力和前景。共识机制作为区块链中的关键技术,解决了区块链如何在分布式场景下达成一致性的问题。如何降低共识算法的复杂度,将是未来区块链领域中的主要研究趋势。
参 考 文 献
[1]沈鑫, 等. 区块链技术综述[J]. 网络与信息安全学报,2016,2(11).
[2]北京航空航天大学. 一种基于P2P金融的区块链机制与共识算法:中国, 106920167[P].2017-07-04.
[3]Cryptape.共识算法,区块链的引擎.http://cryptape.com/ consensus-the-engine-of-blockchain.html, 2016.