区块链共识算法是区块链技术的核心,是区块链网络中分布式节点达成共识的一系列机制。它最初是作为比特币的安全机制出现的,但它的应用广泛,可应用于智能合约、投票、第三方仲裁和信任协议中。数字货币的共识算法有很多种,主要有工作量证明、股份证明和权益证明三类算法。在区块链应用领域,共识机制被用来执行成员之间的交互和达成一致的决定,以替代传统的中心化机制,使得数据更加可靠和安全。
工作量证明协议称为Proof of Work,也称为PoW。它可以低成本地实现可靠性和信任,日常使用中用于社交媒体和互联网的P2P网络。在PoW算法中,节点比较以前创建的块hash值,只有当找到的hash值在特定范围内时,才能将新块添加到链中。比特币是最常用的PoW共识算法,它在每个节点之间建立了去中心化的网络,以解决双花攻击问题。
股份证明算法称为Proof of Stake(PoS),也称为权益证明算法。POs是一种常见的分布式共识算法,强调的是网络成员的股份,而不是分发新的代币。节点能够使用自己的金额来参与网络交易,并按照自己的投入金额和持有的代币个数计算投票比例。当有新的交易需要确认时,矿工必须提交到区块链上,并使用加密技术进行签名证明他们有权参加投票。PoS算法的优点是低能耗,可以有效防止51%攻击,并大大减少挖矿的费用。
权益证明算法又称Delegated Proof-of-Stake,也称DPoS。它专门为了解决PoS算法中,权利集中在少数几个矿工身上的问题而设计的。在这种算法中,节点根据他们持有的代币数量进行投票决定用于验证交易的几个节点。每个节点可以提出自己的建议,同时也可以是想要参与确认交易的其他节点的承认者。DPoS算法被广泛应用于EOS、Stellar和NEO等项目中。
通过以上介绍,可以看出区块链共识算法具有安全性、可靠性和可扩展性等优点,且它的不同类型算法都有各自的独特优势。它不仅在数字货币领域广泛应用,而且在各种金融应用领域,如智能合约、投票、第三方仲裁和信任协议等方面都有着巨大的发展潜力。
在区块链系统当中,没有一个像银行一样的中心化记账机构,保证每一笔交易在所有记账节点上的一致性,即让全网达成共识至关重要。共识机制解决的就是这个问题。
一般而言,在介绍区块链时经常会提到两个例子:一是由古老的记账模式延伸到分布式账本,二是拜占庭将军问题(Byzantine Generals Problem)。使用分布式账本目的是让每个节点都能够验证交易,而拜占庭将军问题与账本的一致性有关,即本文要讨论的共识机制(Consensus)。
区块链的核心是参与者之间的共识。共识之所以是关键,是因为在没有中央机构的情况下,参与者必须就规则及其应用方法达成一致;并同意使用这些规则来接受及记录拟定交易。
共识一开始是作为社会运作的一个概念,但如今已成为计算机科学的重要组成部分。在过去30多年,电脑世界中的共识机制已从一个抽象概念发展成分布式账本技术的重要支柱。在分布式账本中,共识机制是大部分(或全部)网络成员就某条数据或拟定交易的价值达成一致,并就此对账本进行更新的机制。换言之,共识机制是在参与节点之间管理一系列连贯事实的规则和程序。共识算法允许关联机器连接起来进行工作,并在某些成员失效的情况下,工作仍能正常进行。这种容错能力是区块链和分布式账本的另一主要优势,并有内置冗余余量以作备用。
目前主要几类共识算法如下:PoW、PoS、DPos、Ripple Consensus、PBFT
1、PoW(工作量证明)
通过运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
优点:易实现,节点间无需交换额外的信息即可达成共识,破坏系统需要投入极大的成本。
缺点:浪费能源,区块的确认时间难以缩短;共识达成的周期较长,不适合商业应用
2、PoS(权益证明)
PoW的一种升级共识机制,本质上是采用权益证明来代替PoW的算力证明,记账权由最高权益的节点获得,而不是最高算力的节点。根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。
优点:,解决了PoW 消耗算力的问题,在一定程度上缩短了共识达成的时间
缺点:拥有权益的参与者未必希望参与记账,还是需要挖矿。
3、DPos(股份授权证明机制)
类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。
4、Ripple Consensus(瑞波共识算法)
使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。
5、PBFT:Practical Byzantine Fault Tolerance(实用拜占庭容错算法)
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。
PBFT算法主要特点如下:客户端向主节点发送请求调用服务操作;主节点通过广播将请求发送给其他副本;所有副本都执行请求并将结果发回客户端;客户端需要等待f+1个不同副本节点发回相同的结果,作为整个操作的最终结果。
区块链的共识机制一定会越来越清晰,在现实当中起到的作用也会越来越大,并受到众多机构的支持,从而让区块链在现实当中的普及进入到一个全新的应用阶段。