分布式技术架构原理解析之协调与同步(三)分布式共识

   日期:2020-05-06     浏览:58    评论:0    
核心提示:1、分布式选举与分布式共识之前提到的分布式选举问题,是通过分布式选举算法从多个节点中选出一个主节点。区块链

1、分布式选举与分布式共识

之前提到的分布式选举问题,是通过分布式选举算法从多个节点中选出一个主节点。不管是哪种选举算法,几乎都有一个共同特点:每个节点都有选举权和被选举权,当某个节点得到了大部分节点的同意或认可后成为主节点,然后主节点向其他节点宣告主权。从本质上看,分布式选举问题,其实就是传统的分布式共识方法,主要是基于多数投票策略实现的

2、分布式在线记账场景

分布式在线记账:在没有集中的发行方,也就是没有银行参与的情况下,任意一台接入互联网的电脑都能参与买卖,所有看到该交易的服务器都可以记录这笔交易,并且记录信息最终都是一致的,以保证交易的准确性。而如何保证交易的一致性,就是该场景下的分布式共识问题。
然而如果将基于多数投票策略的分布式选举方法用于分布式在线记账一致性问题中,那么记账权通常会完全掌握到主节点的手里,这使得主节点非常容易造假,且存在性能瓶颈。因此,分布式选举不适用于分布式在线记账的一致性问题
本文介绍的是另外一种用于解决分布式在线记账一致性问题的分布式共识技术。

3、分布式共识

通常传统的方式中账户A给账户B转账,是通过银行来操作并记录的。但分布式在线记账方法中,没有银行这样的一个集中方,而是由多台服务器来记录该笔交易的。但是每一台服务器均是有各自想法的个体,都可以自主操作或记录,那么如何保证记录的交易是一致的呢?这,就是分布式共识技术要解决的问题,即在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。通过共识机制,我们可以使得分布式系统中的多个节点的数据达成一致。
那么分布式共识是如何实现的?有哪些具体的方法?下文会详细给大家介绍。

4、分布式在线记账-区块链

实际上分布式在线记账,就是近几年比较火的区块链技术解决的问题。而分布式共识技术,就是区块链技术共识机制的核心。谈到区块链就不得不说他的一个核心概念:挖矿
在传统的交易方式中,用户 A 给用户 B 转账,需要银行来实行具体的转账操作并记录交易,银行会从中收取相应的手续费。而采用分布式在线记账的话,参与记录这笔交易的服务器,也可以从中获得一些奖励(这些奖励,在区块链技术中可以换成钱)。所有服务器帮助记录交易并达成一致的过程,就是区块链中的“挖矿”
区块链是由包含交易信息的区块从后向前有序链接起来的数据结构,其中区块是指很多交易数据的集合,每个区块包括区块头和区块体,区块头包括前一区块的哈希值、本区块的哈希值和时间戳;区块体用来存储交易数据。

5、分布式共识方法

接下来介绍 3 种主流的解决分布式在线记账一致性问题的共识技术,即:

  • PoW(Proof-of-Work,工作量证明);
  • PoS(Proof-of-Stake,权益证明);
  • DPoS(Delegated Proof of Stake,委托权益证明);

5.1 PoW

在同一轮分布式选举中有且仅有一个节点成为主节点。同理,在分布式在线记账问题中,针对同一笔交易,有且仅有一个节点或服务器可以获得记账权,然后其他节点或服务器同意该节点或服务器的记账结果,达成一致。
也就是说,分布式共识包括两个关键点,获得记账权和所有节点或服务器达成一致
PoW 算法,是以每个节点或服务器的计算能力(即“算力”)来竞争记账权的机制,也就是说,谁的计算力强、工作能力强,谁获得记账权的可能性就越大。

5.1.1 PoW 算法获取记账权的原理

利用区块的 index、前一个区块的哈希值、交易的时间戳、区块数据和 nonce 值,通过 SHA256 哈希算法计算出一个哈希值,并判断前 k 个值是否都为 0。如果不是,则递增 nonce 值,重新按照上述方法计算;如果是,则本次计算的哈希值为要解决的题目的正确答案。谁最先计算出正确答案,谁就获得这个区块的记账权。

请注意:nonce 值是用来找到一个满足哈希值的数字;k 为哈希值前导零的个数,标记了计算的难度,0 越多计算难度越大。

达成共识的过程,就是获得记账权的节点将该区块信息广播给其他节点,其他节点判断该节点找到的区块中的所有交易都是有效且之前未存在过的,则认为该区块有效,并接受该区块,达成一致。

5.1.2 PoW共识记账的过程

以分散在世界各地的 5 台服务器为例,说明基于 PoW 的共识记账过程。假设客户端 A 产生一个新的交易,基于 PoW 的共识记账过程为

  • 客户端 A 产生新的交易,向全网进行广播,要求对交易进行记账。
  • 每个记账节点接收到这个请求后,将收到的交易信息放入一个区块中。
  • 每个节点通过 PoW 算法,计算本节点的区块的哈希值,尝试找到一个具有足够工作量难度的工作量证明。
  • 若节点 D 找到了一个工作量证明向全网广播。当然,当且仅当包含在该区块中的交易都是有效且之前未存在过的,其他节点才会认同该区块的有效性。
  • 其他节点接收到广播信息后,若该区块有效,接受该区块,并跟随在该区块的末尾,制造新区块延长该链条,将被接受的区块的随机哈希值视为新区块的随机哈希值。

    结论:PoW 算法中,谁的计算能力强,获得记账权的可能性就越大。但必须保证其记账的区块是有效的,并在之前未存在过,才能获得其他节点的认可。

5.1.3 PoW应用场景

目前,比特币平台采用了 PoW 算法,属于区块链 1.0 阶段,其重心在于货币,比特币大约 10min 才会产生一个区块,区块的大小也只有 1MB,仅能够包含 3000~4000 笔交易,平均每秒只能够处理 5~7(个位数)笔交易。

5.1.4 PoW 优缺点

优点:较高的容错机制;
缺点:共识达成的周期长、效率低,资源消耗大;

5.2 PoS

5.2.1 PoS 算法的核心原理

POS 算法的核心原理是:由系统权益代替算力来决定区块记账权,拥有的权益越大获得记账权的概率就越大。而所谓的权益,就是每个节点占有货币的数量和时间,而货币就是节点所获得的奖励。PoS 算法充分利用了分布式在线记账中的奖励,鼓励“利滚利”。
基于 PoS 算法获得区块记账权的方法与基于 PoW 的方法类似,不同之处在于:节点计算获取记账权的方法不一样,PoW 是利用区块的 index、前一个区块的哈希值、交易的时间戳、区块数据和 nonce 值,通过 SHA256 哈希算法计算出一个哈希值,并判断前 k 个值是否都为 0,而 PoS 是根据节点拥有的股权或权益进行计算的。

5.2.2 PoS共识记账的过程

假设一个公链网络中,共有 3 个节点,ABC。其中 A 节点拥有 10000 个币,总共持有 30 天,而 B 和 C 节点分别有 1000 和 2000 个币,分别持有 15 和 20 天。通过 PoS 算法决定区块记账权的流程和 PoW 算法类似,唯一不同的就是,每个节点在计算自己记账权的时候,通过计算自己的股权或权益来评估,如果发现自己权益最大,则将自己的区块广播给其他节点,当然必须保证该区块的有效性。

5.2.3 PoS应用场景

以太坊平台属于区块链 2.0 阶段,在区块链 1.0 的基础上进一步强调了合约,采用了 PoS 算法。

5.2.4 PoS优缺点

优点:1、PoS 不需要消耗大量的电力就能够保证区块链网络的安全性;2、缩短了达成共识所需要的时间。
缺点:整个系统的安全性实际上被持币数量较大的一部分人掌握,容易出现垄断现象。

5.3 DPoS

为了解决 PoS 算法的垄断问题,2014 年比特股(BitShares)的首席开发者丹尼尔 · 拉里默(Dan Larimer)提出了委托权益证明法,也就是 DPoS 算法。

5.3.1 DPoS 算法的核心原理


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

5.3.2 DPoS 应用场景

DPoS 在比特股和 Steem 上已运行多年,整个网络中选举出的多个节点能够在 1s 之内对 99.9% 的交易进行确认。此外,DPoS 在 EOS(Enterprise Operation System,为商用分布式应用设计的一款区块链操作系统)中也有广泛应用,被称为区块链 3.0 阶段

5.3.3 DPoS 优缺点

优点:解决了所有节点均参与竞争导致消息量大、达成一致的周期长的问题。即:DPoS 能耗更低,具有更快的交易速度。每隔一定周期会调整受托人,避免受托人造假和独权。
缺点:由于大多数持币人通过受托人参与投票,投票的积极性并不高;且一旦出现故障节点,DPoS 无法及时做出应对,导致安全隐患。

三种分布式共识算法对比分析

一致性与共识的区别

一致性是指,分布式系统中的多个节点之间,给定一系列的操作,在约定协议的保障下,对外界呈现的数据或状态是一致的。共识是指,分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。
也就是说,一致性强调的是结果,共识强调的是达成一致的过程,共识算法是保障系统满足不同程度一致性的核心技术。

总结

本文介绍了分布式在线记账问题中的 3 种常见共识算法,即:PoW、PoS 和 DPoS。

  • PoW 算法:以每个节点或服务器的计算能力,即“算力”,来竞争记账权的机制。类似于按劳分配,谁工作量大,谁拿的多。其实竞争的就是挖矿设备,看谁的挖矿设备的CPU、GPU 等更厉害,缺点就是费电、污染环境。
  • PoS算法:由系统权益代替算力来决定区块记账权,拥有的权益越大,获得记账权的概率就越大。这种方法的优点是节能,不需要挖矿了,但缺点是容易形成垄断。
  • DPoS算法:是一种委托权益证明算法。持有币的人可以通过投票选举出一些节点,来作为代表去记账,类似于全国人民代表大会制度。
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服