您当前的位置:主页 > 区块链 >

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

2019-04-16 12:55 来源:互联网 编辑:运营003
摘要: 
共识算法是所有区块链的基础,它们构成了区块链平台中的最重要部分。迅雷链采用独创的同构多链框架,而且通过

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

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

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

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

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

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

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

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

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

共识算法背景

CAP定律

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

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

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

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

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

FLP 不可能原理

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

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

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

状态机复制

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

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

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

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

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

共识算法分类

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

概率一致性算法指在不同分布式节点之间,有较大概率保证节点间数据达到一致,但仍存在一定概率使得某些节点间数据不一致。

对于某一个数据点而言,数据在节点间不一致的概率会随时间的推移逐渐降低至趋近于零,从而最终达到一致性。

例如工作量证明算法(Proof of Work, PoW)、股份证明算法(Proof of Stake, PoS)和委托股权证明算法(Delegated Proof of Stake, DPoS)都属于概率一致性算法。

而绝对一致性算法则指在任意时间点,不同分布式节点之间的数据都会保持绝对一致,不存在不同节点间数据不一致的情况。

例如分布式系统中常用的 PAXOS 算法及其衍生出的 RAFT 算法等,以及拜占庭容错类算法(类 BFT 算法)。

一般而言,回顾上面所述 CAP 原理,概率一致性算法保证了系统的可用性而牺牲了系统的一致性,绝对一致性算法则与之相反,保证了系统的一致性而牺牲了系统的可用性。

[ 编辑: 运营BX01 ]

中国金融领域第一媒体

更多服务
友情链接

京ICP备11011451号-1

举报热线:(010)12377

举报邮箱:xinhua_ljzjr#ljzjr.cn(#替换@)

合作QQ:1447260813

中国金融时报网 版权所有 Copyright © 2010 - 2018 ljzjr.cn All Rights Reserved.