位置:编程技术网 > 区块链 > 正文 >

深入剖析迅雷链共识算法 直抵区块链技术灵魂

2019年04月16日 15:33来源:未知手机版

购物打折,招生办公室,四级,邪鸦魅影 乐芙兰,微波杀菌机,爱问知识的人,谷歌信箱,武口寻慈

共识算法是所有区块链的基础,它们构成了区块链平台中的最重要部分。迅雷链采用独创的同构多链框架,而且通过优化的DPoA+PBFT共识算法实现了秒级确认。本文从技术层面深度剖析共识算法的背景、原理及分类,以及迅雷链PBFT算法的详细解读。

区块链是一种由多节点共同维护,共同信任的分布式存储系统,它可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。

区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。

由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。

因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为 共识算法 。

共识算法在区块链系统中的位置图

共识算法通常被应用在分布式系统中,区块链系统从广义上也可以被看做一个分布式系统。

共识算法保证区块链系统中每一个节点之间事务记录的一致性,同时起到防范系统遭受诸多种类的安全攻击,包括拜占庭攻击、女巫攻击、51% 攻击等。

共识算法背景

CAP定律

CAP 定律(Consistency,Availability,Partition Tolerance theorem),说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。

其中,分区容错性指的是在网络中断,消息丢失的情况下,系统照样能够工作;一致性说的是分布式系统中,所有节点在同一时刻看到同一个值;可用性说的是每个请求都会收到一个应答,无论该应答是成功还是失败。

而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此分布式数据系统在一致性和可用性之间取一个平衡,不可能二者同时达到。

对于迅雷链而言,数据在任何时刻的不一致都是一种不好的用户体验,因此迅雷链选择保证数据绝对一致性,并以提高强一致性算法的可用性为努力的方向。

FLP 不可能原理

在网络可靠,存在节点失效(即使只有一个)的最小异步模型系统中,不存在一个可以解决一致性问题的确定性算法。即:

异步分布式系统不存在任意场景下都能实现共识的算法。在异步网络环境中只要有一个故障节点, 任何共识算法都无法保证正确结束。

因此,在迅雷链中,选用了实用拜占庭容错算法(PBFT),一方面通过容错性,降低节点失效对整个分布式系统的影响,另一方面采用多次重试和更换失效节点机制,降低节点间长时间失效的概率,保证系统的可用性。

状态机复制

状态机复制是一项很有效的容错技术。

在这个模型中,程序(比如一个 apache server)被视为一个一致性状态机,意思就是给程序一定顺序的输入请求 ,程序执行后相关处理数据结果就会在多个节点中达成一致的状态。

也就是说如果给予每个节点的输入请求序列顺序一致,在执行相同操作的前提下,这些节点就会达成相同的状态。

每个节点都包含一个状态机,在节点间共识数据的结果将在状态机中体现。状态机中的数据将是外界获取数据的来源。

共识算法分类

在区块链系统中,共识算法作为保证分布式节点间数据一致性的算法,可以被分为两大类,即概率一致性算法和绝对一致性算法。

本文地址:http://www.reviewcode.cn/qukuailian/44294.html 转载请注明出处!

今日热点资讯