在蜂巢学院公开课第二课上,导师郝玉琨(万向区块链新链空间负责人)用通俗易懂的例子讲解了了解区块链必须要掌握的10个核心关键词,其中有一个是“共识”。在课上,导师解释了什么是共识,并提到PoW、PoS、DPoS是目前公有链常见的共识算法。
在区块链共识机制这片江湖里,除了PoW、PoS、DPoS“三秀”外,还有数个小弟隐于其中,他们虽然没有那么大的名声,但也有公链在用。这篇文章,将简单介绍10种共识机制,让大家更多地了解区块链的共识。
首先,我们再来复习下什么是共识。
什么是共识
举个例子,你约了一帮人玩游戏,玩游戏之前要定下游戏规则,规定好输赢的奖惩措施。游戏规则需要每个参与游戏的人同意并达成一致,这样才能保证整个游戏的公平性,让每个参与者都玩得开开心心。这个游戏规则就是一个“共识协议”。
在区块链中也一样,共识是一个决策过程,它的目标是确保所有参与者在添加新数据块后,能就其当前状态达成一致。换言之,共识协议确保了一条链的正确性,并为做出贡献的参与者提供了激励措施。共识协议对区块链来说是非常重要的,它可以防止一个人单独控制整个系统,并确保每个人都遵守网络规则。以比特币区块链为例,虽然中本聪创造了比特币区块链,但TA对这条链并没有所有权,比特币区块链完全是透明和开放的,网络中的每个节点都是平等的。
总结来说,一个协议就是一套规则,它有助于:
· 确保在线交易的可行性;
· 消除双重损毁的可能性;
· 确保参与者不作弊。
区块链协议还包含:
· 确定性的逻辑规则;
· 以加密技术和密码学作为安全基础;
· 使网络协议得以延续的激励措施。
目前行业里有多种区块链协议,其中PoW(工作量证明)和PoS(权益证明)是最早的协议,通常也是其它共识协议的原型。让我们来看看它们各自有什么优缺点。
Proof-of-Work(PoW)
工作原理:很难找到解决方案,但很容易检测结果的正确性。
使用范围:公有链
使用案例:比特币、以太坊、莱特币。
要添加一个新块,参与者必须证明TA已经完成了多少量的工作。更准确地来说,要证明TA解决了一个非常困难的任务,即找到了符合特定规则的哈希值。第一个找到正确哈希值的人即可获得在链上添加新块的机会。
因此,参与PoW意味需要大量的计算资源成本,如电费、CPU等。尽管点对点的可扩展性不错,但PoW处理交易的效率很低。它的另一个问题是,参与者的动机通常是为了致富而不是为了维护“正义”。随着时间的推移,降低挖矿费用和佣金,会极大地影响网络安全。
PoW的优势在于,能确保两个互不信任的参与者在一个网络中工作。任何人都可以加入网络,而不需要任何许。尽管点对点的可伸缩性很高,但是事务处理率仍然很低。
Proof-of-Stake (PoS)
工作原理:网络信任验证者,验证者抵押自己的资源作为创建块的能力保障。抵押的资源越大,网络允许这个验证者创建块的概率就越高。
使用范围:公共/私有区块链。
使用案例:Cosmos、Tezos、Ethereum也正准备从PoW转向PoS。
PoS的技术特点是没有复杂和不必要的计算。网络参与者不与其他人竞争,而是抵押他们的资源,如在以太坊区块链中的抵押以太币,并等待他们被选中来创建一个新的块。
参与者对网络安全很看重,因为他们自己手里持有网络中的TOKEN。系统根据参与者所拥有的 “股权”来选择验证者,如参与者拥有5%的股份,那么将验证网络中5%的交易。PoS的想法是验证者持有的“股份”比例越高,TA操纵验证程序的兴趣就越低。
与PoW算法一样,PoS中交易的完成是概率性的。尽管与PoW相比,PoS的交易速度相对较快,但它仍然需要TOKEN。有人指出,拥有大量股份的验证者将会有更大概率被选中,因此会导致“富者更富”。
Delegated-Proof-of-Stake (DPoS)
工作原理:参与者将新块的生产委托给一小群被选出来的、数量固定的验证者。竞争激烈,但回报丰厚。
使用范围:公共/私有区块链。
使用案例:Eos、Bitshares
DPoS通过减少验证者的数量来提高交易速度以及创建块的速度。验证者是TOKEN持有者通过投票选出来的,新块由验证者而不是TOKEN持有者创建。每票的权重由投票人的资产总和决定。投票人可以在任何时候投票给验证者。这决定了网络的高度灵活性,如果大多数验证者失败或出现问题,那么社区将立即投票选出新的验证人来替代他们。
每个新块的产生需要1-2秒的时间。与PoS相比,DPoS更快更公平,因为被委托的验证人将会与为他们投票的人共享获得的奖励。
Proof-of-Activity (PoA)
工作原理:PoW和PoS的混合。
使用范围:公共区块链。
使用案例:Decred。
活动证明(PoA)结合了PoW和PoS协议,这意味着参与者可以挖矿或抵押权益来验证区块。因此,PoA协议在矿工和普通网络成员之间提供了平衡。
Proof-of-Location (PoL)
工作原理:信标用于查看处于同步状态的节点,然后用临时标记来标记其存在。
使用范围:公共区块链。
使用案例:FOAM、Platin。
位置证明(PoL)允许用户保护特定的GPS位置,从而在网络上进行身份验证。这个区块链协议依赖于BFT信标,它在区块链中记录地理位置和时间标记,从而防止系统中断和欺诈。
Proof-of-Importance (PoI)
工作原理:和PoS类似,但是有影响排名的附加条件。
使用范围:公共区块链。
使用案例:NEM。
算法和PoS类似,但包含三个部分:账户内的TOKEN数量;账户活跃度;帐户持有人在网络上花费的时间。
第一个参数在验证交易的评级中起着至关重要的作用;第二个和第三个参数只是帮助建立账户的“价值”。TOKEN的数量越小,其他参数的影响越大。
因此,一个拥有数十万TOKEN的账户,由于其活跃性和上网时间,可以将重要性系数提高近3倍。反之,拥有数亿TOKEN的人,如果不够活跃以及上网时长不够,其重要性将降低。
Proof-of-Elapsed-Time (PoET)
工作原理:块是在相同的时间里以及受信任的环境中创建的。
使用范围:私有/联盟区块链。
使用案例:Intel。
英特尔开发了自己的区块链协议,IntelLedger。
该系统类似于工作证明,但使用的电力较少。该算法不是参与者解决密码难题,而是在受信任的执行环境环境中工作,如Intel Software Guard Extensions(SGX)。PoET协议保证这些块是随机生成的,不受其它因素干扰。
Proof-of-Authority (PoA)
工作原理:用于银行和保险公司的半中心化区块链协议。
使用范围:联盟/私有区块链。
使用案例:Kovan、Rinkeby、Giveth、Tomochain、Rublix、Swarm City、Colony、Go-Chain。
与PoS和DPoS类似,在POA中,验证人节点保护区块链并生成新的区块。区块链上的新块只有在验证器达到最大值时才会创建。区块链上的新块,只有当验证人节点达到最大值时才会被创建。
通过预先选定验证人,Proof of Authority并没有那么去中心化。因此,这种共识协议更适合私有或者联盟区块链,如银行和保险公司。所有验证人的身份都是公开的,可由任何第三方进行验证。因此,验证人的行为是为了使网络利益最大化。
Proof of Capacity (PoC) or Proof of Space (PoS)
工作原理:矿工可执行的工作量取决于其磁盘可用空间量。
使用范围:公共区块链。
使用案例:Burstcoin、Bitcoin Ore。
PoC类似PoW,但两者有个显著区别,在PoC中,不需要做大量的工作来验证每个区块,这些工作在”Plotting”(绘图)的过程中提前完成了,此过程的结果用于后面验证每个块。Plotting是生成称为“plotting file”的特殊文件的过程,该文件存储大量预先计算好的哈希值。最短的解决方案被授予挖掘下一个块的权限。PoC具有高效、成本低和分布式的优点。
Proof-of-Concept (PoC)
PoC可用于任何领域,括投票追踪、记录存储、法律文件等。PoC可以是没有任何支持代码的原型,也可以是具有基本功能集的最小可行产品(MVP)。PoC是组织内部用来更好地理解特定项目的模型。
共识协议是区块链不可分割的一部分。它们有助于实现公正,也能避免当一个或部分参与者节点失败时,系统出现故障。其次,也有助于互不信任的参与者在去中心化的环境中达成“共识”。
上文只简单介绍了部分共识协议,还有很多协议未囊括其中,如Practical Byzantine Fault Tolerance(PBFT)、Proof-of-Brain (PoB)、Proof-of-Physical-Address (PoPA)、Proof-of-Bank-Account (PoBA)等。在蜂巢学院公开课第三课上,将详细介绍比特币的共识协议(PoW)。导师吴为龙(趣派科技CTO),是行业早期参与者和第一批区块链开发者,他将会结合自己多年的行业经验,为大家通俗易懂地讲授比特币的起源、发展、治理等各种知识,让大家离区块链更近一步。