区块链共识算法知多少?(POW、POS、DPOS、PBFT区块链共识算法)

2018-1-31 18:01 来源: 拓朴区块链

区块链 共识算法 
POW、POS、DPOS、PBFT区块链共识算法

区块链

区块链是一种去中心化的分布式账本系统,它可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方

由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。

在区块链这样一个分布式数据库中,保障整个系统的安全性和适应性是非常重要的,这也是共识算法出现的根本原因,那么在区块链中有多少种共识算法呢?

1
POW:Proof of Work,工作量证明

POW工作量证明是比特币在Block的生成过程中使用的,可以说是最原始的区块链共识算法了。POW算法不难理解,就是通过工作量的大小来统计数据,比如一块矿石含铁量有5%,那么你要得到数量为5的铁时,就需要100个这样的矿石。你的铁越多就说明你用于提炼铁矿石越多。你的铁越多,这个证明就越可靠。

据一个简单的例子,选举投票画“正”字方法,“正”字越多就说明你在选民中的选票越高,你更容易选中或排名靠前。比如有三个“正”以上的的可以晋级,那么超过三个“正”字的全部都可以晋级。

再比如有个在美国待了10年的中国人,回来之后几乎不用对他英语进行考察,因为他在美国待了10年,我们相信他英文是肯定没有问题的。也就是说他在美国的这10年大多数是用英文交流的,他已经投入了足够的工作量。这个工作量与他的英文熟练程度是成正相关的。

考英语六级为什么要做很多题目的原理也是这样,是一种工作量的证明,只有多做题,工作量才会提升,通过六级的概率才会大,反过来看,如果他有英语过了8级,那么我们相信他有英语8级的实力。

当然,POW算法也应用于我们生活中的其他场合,比如格斗类游戏和FPS类游戏的K/D比和胜率,越高就说明你越强。


2
POS:Proof of Stake,股权证明

PPC是从中本聪所创造的BTC衍生出来的一种P2P的电子密码货币,以股权证明(Proof of Stake,以下简称POS)取代工作量证明(Proof of Work,以下简称POW)来维护网络安全。POS实际上可以取代POW的大部分功能。这主要是因为,和工作量证明POW一样,POS权益证明也不可能被轻易伪造。当然,这也是货币系统中的一个关键特性-防止伪造。从哲学角度而言,货币在过去就是一种“工作量证明”,因此其本身可以代替工作量的证明。

在这里我们需要引入一个概念:币龄。

至少早在 2010年,中本聪就在BTC设计中提出并使用了币龄这一概念,用于给交易排出优先次序,但这个概念在其安全模式中没有起来很重要的作用。币龄只是简单地定义为货币的持有时间段。简单举例说明一下:如果A从B那里收到了10个币,并且持有30天,那么A就收集到了300币天的币龄。

如果A使用了从B收到的这10个币,我们就认为A从这10个币上积累的币龄被消耗(销毁)了。

为简化币龄的计算,我们为每个交易引入了时间戳的概念。区块时间戳及交易时间戳相关联的协议得以强化,以便确定对币龄的运算。

这有点像我们现在放在银行法币里面的利息,在交易中,区块持有人可以消耗他的币龄获得利息,同时获得为网络产生一个区块和用POS造币的优先权。

由此POS区块的产生具有随机性,这一过程与POW相似。但有一个重要的区别在于,(POS)随机散列运算是在一个有限制的空间里完成的(具体来说为1 hash/未消费钱包的输出*秒),而不是象POW那样在无限制的空间里寻找,因此无需大量的能源消耗。

3
DPoS–Delegated Proof of Stake授权权益证明

又称受托人机制,它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。

由于使用了去中心化的投票机制,DPoS相比其他的系统更加民主化。DPoS并没有完全去除对于信任的要求,代表整个网络对区块进行签名的被信任主体在保护机制下确保行为正确而没有偏见。另外,每个被签名的区块都有先前区块被可信任节点签名的证明。DPoS消除了交易需要等待一定数量区块被非信任节点验证的时间消耗。通过减少确认的要求,DPoS算法大大提高了交易的速度。通过信任少量的诚信节点,可以去除区块签名过程中不必要的步骤。

DPOS引人注目的安全性来自于其选择块生产者和验证节点质量的算法。运用赞成投票的过程可以确保一个人即使拥有50%的有效投票权也不能独自挑选哪怕一个生产者。DPOS旨在优化拥有强壮网络连接的诚实节点100%参与(共识过程)的名义条件。这使得DPOS有能力在平均只有1.5秒的时间内以99.9%的确定性确认交易,同时以优雅和可检测的方式降级 – 从降级中恢复正常也不过是小事一桩。

4
PBFT–Practical Byzantine FaultTolerance实用拜占庭容错

PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。

PBFT能够保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。在分布式计算上,不同的计算机透过讯息交换,尝试达成共识。拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。

而拜占庭问题的可能解决方法为:

在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。

小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

此算法由小蚁独创,在PBFT基础上进行了以下改进:

将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;

将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;

为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);

在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。

上述是目前主要的区块链共识算法,当然还有其他的算法,比如PoET–Proof of Elapsed Time流逝时间量证明等。这几种算法大多是按该共识算法从诞生到热门的顺序来定的,无论是技术上,还是业务上,每种算法都在特定的时间段中有各自的考虑和意义。优缺点当然各有千秋。共识算法的选择主要与应用场景高度相关。网上也有很多这样的帖子,日后有时间我也会大家一同分享。

最新评论

碳市场行情进入碳行情频道
返回顶部