区块链技术的伟大之处在于去中心化和去信任(或降低信用成本),如何在一个完全陌生的网络环境里,通过代码撮合交易?言外之意,这些代码究竟发挥了何种神奇的魔力,让买卖双方产生信任呢?这就是共识。
共识(Consensus)是一切交易的基础,达成共识越分散(参与度越高),其效率就越低,但满意度越高,因此也越稳定;相反,达成共识越集中(参与度越低),效率越高,也越容易出现独裁和腐败现象。区块链的共识算法构建了一个相对平衡稳定的交易网络系统。
下面介绍几种常见的共识算法。
一.共识算法
1.工作量证明(PoW)
工作量证明是大多数人所熟悉的,因为它是当今比特币区块链生态系统最大用途的核心。
基本概念是提供一个机制,需要努力添加一个块,但最小的努力来验证工作已经完成。在这个共识的解决方案中,有“矿工”。矿工寻找下一个建议的块添加到链中。为了增加这个区块,矿工们面临一个数学问题的挑战。解决这个难题需要大量的资源,包括时间,计算能力和电力。一旦矿工解决了这个难题,他们可以将下一个块添加到链中,为其他参与者提供适当的散列信息,以便轻松验证已完成的工作以及该块的属性。矿工的努力会得到回报,这是消耗资源的动力。
2.股权证明(PoS)
由于需要大量的计算能力,PoW成本高且耗能大。整个行业已经成长起来,创造专为采矿而设计的定制芯片。利益证明(PoS)是近年来受欢迎的另一种方法,不需要专门的硬件。
在PoS中,参与者的投币权决定了他们的可能性。也就是说,每个网络节点都链接到一个地址,并且所寻址的硬币越多,它们就越有可能在下一个块中挖掘(或称为“利益”)。
PoS的新增机制是“利息”,即持有一定的PoS币一定时间,当然得开着客户端,将获得一定量的固定“利息”。这部分“利息”是新增的PoS币。只要你持有PoS币并开机,你就能获得一定比例的“利息”。在现实世界中股权证明很普遍,最简单的就是股票。股票是用来记录股权的证明,同时代表着投票权和收益权。股票被创造出来以后,除了增发外,不能增加股权数量,要获得股票只能转让。
3.委托权益证明(DPoS)
基于PoS衍生出的更专业的解决方案,类似于董事会的投票机制,选举出n个记账节点,在节点中提案者提交的提案被这些记账节点投票决定谁是正确的。
4.实用拜占庭容错共识(PBFT)
PBFT是一种基于严格数学证明的算法,需要经过三个阶段的信息交互和局部共识来达成最终的一致输出。可以证明,系统中只要有三分之二以上比例的正常节点,就能保证最终一定可以输出一致的共识结果,尽管达成共识的时间不确定。
实用拜占庭容错协议的缺点在于不适用于大规模的节点共识,因为随着节点规模的增大,达成共识需要的时间大大增加,不符合效率需求。许多相关研究人员在探讨改进拜占庭协议,以解决不同应用场景下的效率问题。
当然还有其他的共识算法,类似LPoS、DPoS、PoI。在所有情况下,共识方法的目的都是为了确保网络,主要是通过经济手段:对网络进行攻击应该是非常昂贵的,而且有利于保护网络。
二.共识算法的评判标准
怎么评判共识算法的好坏呢,主要有以下评判标准:
1.去中心化
区块链共识算法必须包含去中心化,有时也有程度的不同。
2.网络成本
共识算法在考虑网络成本时,不仅仅要考虑交易成本和维护成本,也要考虑挖矿成本。昂贵费时的算法只能优化再优化,简化再简化, 以满足平台和应用需求。
3.扩展性
从当前现实部署看,单一的区块链负载严重,每秒钟处理能力有限,所以在扩展性指标方面,我们需要考量这种共识算法是否在技术上能够运行数千区块链的可行性。 而且在运行数量庞大的区块链后,消耗的网络成本也是可控的。
4.交易确认的速度
在区块链共识算法的设计架构中,需要一个精准范围内的交易确认速度。比如Bitcoin上的区块链现在出力能力是平均每秒4笔交易左右,而Ethereum也是15笔每秒,这与实际应用场景需求差距颇大。
5.强大的安全机制和容错能力
安全机制首要防止可能的攻击、攻击使用的成本多大、攻击的范围和目标的损害程度、攻击的持续性和网络修复反应的速度,最后一点就是算法机制的总体攻击的可能性。
对于区块链共识方案的研究,为分布式系统中的一致性问题提供了较好的解决方案,目前的一些共识算法能较好地解决分布式系统中的共识等问题,但仍然由许多问题有待解决,仍有很大的研究价值和发展空间。
网友评论