分布式4 - 分布式共识

160 阅读5分钟

存异求同 - 分布式共识的本质
每个节点在选出主节点之前都可以认为自己会成为主节点,也就是说集群节点“存异”;而通过选举的过程选出主节点,让所有的节点都认可该主节点,这叫“求同”。由此可见,分布式共识的本质就是“存异求同”。

从本质上看,分布式选举问题,其实就是传统的分布式共识方法,主要是基于多数投票策略实现的。 但是分布式记账系统的副节点很容易造假,且容易造成性能瓶颈

分布式共识
分布式共识就是在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。通过共识机制,我们可以使得分布式系统中的多个节点的数据达成一致。

案例
现在有 5 台服务器,分散在美国华盛顿、英国伦敦、法国巴黎、中国北京、中国上海,分别对应着用户{A,B,C,D,E}。现在,用户 A 给用户 B 转了 100 元。

在传统方法中,我们通过银行进行转账并记录该笔交易。但分布式在线记账方法中,没有银行这样的一个集中方,而是由上述 5 台服务器来记录该笔交易。但是,这 5 台服务器均是有各自想法的个体,都可以自主操作或记录,那么如何保证记录的交易是一致的呢?

两个关键点
布式共识包括两个关键点,获得记账权所有节点或服务器达成一致

常见分布式共识的方法
分布式共识机制常用于区块链技术,下面我们来看一下3种区块链中常见的分布式共识算法的优缺点。

1. PoW(Proof-of-Work,工作量证明)
是以每个节点或服务器的计算能力(即“算力”)来竞争记账权的机制,因此是一种使用工作量证明机制的共识算法。也就是说,谁的计算力强、工作能力强,谁获得记账权的可能性就越大

特性
PoW 机制每次达成共识需要全网共同参与运算增加了每个节点的计算量,并且如果题目过难,会导致计算时间长、资源消耗多;而如果题目过于简单,会导致大量节点同时获得记账权,冲突多。这些问题,都会增加达成共识的时间

缺点
共识达成的周期长、效率低,资源消耗大

2. PoS(Proof-of-Stake,权益证明)
PoS 算法的核心原理是,由系统权益代替算力来决定区块记账权,拥有的权益越大获得记账权的概率就越大。 这里所谓的权益,就是每个节点占有货币的数量和时间,而货币就是节点所获得的奖励

PoW 算法充分利用了分布式在线记账中的奖励,鼓励“利滚利”。 而PoS算力竞争转变成权益竞争。与 PoW 相比,PoS 不需要消耗大量的电力就能够保证区块链网络的安全性,同时也不需要在每个区块中创建新的货币来激励记账者参与当前网络的运行,这也就在一定程度上缩短了达成共识所需要的时间

缺点
百分之99的财富集中在百分之一的人手上
PoS 算法中持币越多或持币越久,币龄就会越高,持币人就越容易挖到区块并得到激励,而持币少的人基本没有机会,这样整个系统的安全性实际上会被持币数量较大的一部分人掌握,容易出现垄断现象。

3. DPoS 委托权益证明法
DPoS 算法的原理,类似股份制公司的董事会制度普通股民虽然拥有股权,但进不了董事会,他们可以投票选举代表(受托人)代他们做决策。DPoS 是由被社区选举的可信帐户(受托人,比如得票数排行前 101 位)来拥有记账权

在 DPos 算法中,通常会选出k(比如 101) 个受托节点,它们的权利完全相等的。受托节点之间争取记账权也是根据算力进行竞争的。只要受托节点提供的算力不稳定,计算机宕机或者利用手中的权力作恶,随时可以被握着货币的普通节点投票踢出整个系统,而后备的受托节点可以随时顶上去

DPoS受托结点选举、竞争记账权过程图

Image.png

优点
投票选举出的若干信誉度更高的受托人记账,解决了所有节点均参与竞争导致消息量大、达成一致的周期长问题。也就是说,DPoS 能耗更低,具有更快的交易速度。每隔一定周期会调整受托人,避免受托人造假和独权

缺点
在 DPoS 中,由于大多数持币人通过受托人参与投票,投票的积极性不高;且一旦出现故障节点,DPoS 无法及时做出应对,导致安全隐患

几种分布式共识的对比 Image.png