×

解密区块链最强心脏 迅雷链共识算法详解

标签: 暂无标签
迅雷链共识算法详解.jpg

11月10日在广州贝塔咖啡举办的迅雷链技术沙龙上,迅雷链底层工程师张骁就迅雷链共识算法的内在细节,向到场的开发者和区块链爱好者做了详细解读。DPoA+PBFT的算法保证了分布式系统中的强一致性和高效率共识,吸引了在场来宾的关注。

什么是共识算法?

张骁认为,区块链建立在分布式系统上,有若干个节点,每个节点都会维护自己的数据,这些数据需要保证一致性。如果不同的节点提供的数据不同,就不是一个能够正常对外工作的分布式系统。所以在区块链中,需要把这些数据通过复制和同步,来保持一致性,这个过程就叫做共识。

共识过程中所使用的算法就叫共识算法。对于区块链来说,共识算法的作用就是制定达成共识的标准,即当数据有所不同时,以谁的为准。张骁深入浅出,用通俗易懂的方式,解释了这个概念。

当前主流共识算法的分类

张骁表示,目前共识算法可分为分为概率一致性共识和绝对一致性共识。

概率一致性共识算法是指在某一个时间点上,允许数据有一些不一致情况的算法。比如比特币采用的算法,就是一种典型的概率一致性算法。比特币达成共识的过程中,如果在同一个时间点有两个不同的节点,都找到了满足这个条件的计算公式,就相当于都可以产生一个区块,然后就产生了分叉。当然,这种分叉是会被下一轮的挖矿和共识过程所修正的,最终还是会达成一致,但在其诞生后的一小段时间里,是无法达成一致的。

绝对一致性共识算法是指数据始终保持一致性的算法,它通过牺牲一定的可用性,保证了数据的一致,其中又可以细分CFT和BFT两个类型。

CFT算法的特点是确定一个固定的节点数量,只要有达到这个数量的节点确认,那么共识就算达成。比如总共有11个节点,确定只要4个节点投票确认某次交易,那么这次交易就算完成。这样做的结果是交易确认速度很快,同时结果永远都是确定的,而且不会出现分叉。

BFT算法是另外一种常见的绝对一致性算法,它达成共识的过程分为三个阶段,分别是预准备、准备还有提交,其共识过程是:

1.预准备阶段:某个节点为从客户端收到的请求分配提案编号,然后发出预准备消息,广播给其它节点;

2.准备阶段:其它节点收到预准备消息后,检查消息合法性,如果检查通过则向其他节点发送准备消息,并带上自己的ID信息,同时接收来自其他节点的准备信息。收到准备消息的节点对消息同样进行合法性检查验证,全网中至少2/3的节点验证过的消息,才会真正进入准备状态;

3.提交阶段:向全网所有节点广播进入准备状态的消息,然后由所有节点进行投票,投票数达2/3后该消息通过。


迅雷链技术沙龙

写了 7 篇文章,拥有财富 37,被 1 人关注

反对反对
回复

使用道具

B Color Link Quote Code Smilies

成为第一个吐槽的人

Archiver|手机版|小黑屋|迅雷链开发者社区
Copyright©2018 onethingcloud.com All Rights Reserved 深圳市网心科技有限公司版权所有 粤ICP备14008884号-23
返回顶部