加密经济回溯与展望——共识机制的发展与演变(二)| 号精选

节点

前言

共识机制是区块链的重要要素之一,也是分布式账本正常运行的核心规则,主要用于解决人与人之间的信任问题,以及在区块链系统中决定谁负责生成新区块并维护系统的有效统一,因此成为了区块链领域恒久不变的研究热点。 

本文从共识机制的概念和作用入手,首先让读者对共识机制整体有一个初步的认识;然后从两军问题和拜占庭将军问题出发,按照共识机制提出时间的先后顺序介绍了共识机制的发展沿革;接着对目前主流的共识机制从概念、工作原理和代表项目三个方面进行了简单的介绍,并对主流共识机制的优势和劣势进行对比;最后对区块链项目如何选择共识机制给出了建议,并指出了共识机制未来发展的可能性趋势。

目录

一、共识机制的概念和作用

1.1 概念:分布式账本正常运行的核心规则

1.2 作用:解决信任问题,决定新区块的生成和维护

1.2.1 用于解决人与人间的信任问题

1.2.2 用于决定在区块链系统中谁负责生成新区块并维护有效统一

1.3 共识算法的主流模型

二、共识机制的缘起

2.1 两军问题与拜占庭将军问题

2.1.1 两军问题

2.1.2 拜占庭将军问题

2.2 共识机制发展史

2.2.1 共识机制分类

2.2.2共识机制发展前沿

三、常见共识体制

四、共识机制的选择与现状总结

4.1 如何挑选一个适合自己的共识机制

4.1.1 判断最终结果是否很重要

4.1.2 判断申请流程需要有多快

4.1.2 判断应用对去中心化的需求程度

4.1.3 判断系统是否可以终止

4.1.4 优劣权衡后选择适合的共识算法

4.2 共识机制的未来发展

上期回顾:第一章共识机制的概念和作用+第二章共识机制的缘起

第三章 常见共识机制(上)

 相对主流的共识机制归纳

节点

来源:Hasib Anwar, “Consensus Algorithms:The Root Of The Blockchain Technology”

上图为一名极客Hasib Anwar归纳的其中14种相对主流的共识机制,包括PoW工作量证明)、PoS(权益证明)、DPoS(委托权益证明)、LPoS(租用权益证明)、PoET(过去时间证明)、PBFT(实用拜占庭容错)、SBFT(简单拜占庭容错)、DBFT(委托拜占庭容错)、DAG (有向非循环图)、Proof-of-Activity(活动量证明)、Proof-of-Importance(重要性证明)、Proof-of-Capacity(容量证明)、Proof-of-Burn (燃烧证明)、Proof-of-Weight (重量证明)。

接下来,我们主要针对目前区块链最主流的十大共识机制进行介绍分析。

》POW

– 概念:

工作量证明机制。即对于工作量的证明,意味着消耗一定的计算机时间来确认做过的工作量。

– 实现原理:

 PoW工作量证明原理

节点

以比特币为代表的PoW使用的是SHA-256算法函数,是密码哈希函数家族中输出为256位的哈希算法:

工作量证明的输出=SHA256(SHA256(区块头));

if(工作量证明的输出<目标值),证明工作量完成;

if(工作量证明的输出>=目标值),变更随机数,递归i的逻辑,继续与目标值比对。

新难度值=旧难度值*(过去2016个区块花费时长/20160分钟)

目标值=最大目标值/难度值

最大目标值为一个固定数,若过去2016个区块花费时长少于20160分,那么这个系数会小,目标值将会被调大些,反之,目标值会被调小,因此,比特币的难度和出块速度将成反比列适当调整出块速度。 

– 代表应用:BTC等

》 POS

– 概念:

权益证明。即依据各人持币权益来达成共识的机制,持币越多越久,获得奖励的概率越大。

– 实现原理:

PoS实现算法公式:hash(block_header) =<target * coinage

币龄计算公式:coinage = 币的个数*币的剩余使用时间

其中,coinage表示币龄,这将意味着,币龄越大,越容易得到答案。而其中币龄的计算是通过挖矿者拥有的币乘以每个币的剩下使用时间得到,这也将意味着拥有的币越多,也越容易得到答案。这样,pos解决了pow中浪费资源的问题,同时挖矿者不可能拥有全网51%的币,所以也解决了51%攻击的问题。

– 代表应用:ETH等

》DPoS

– 概念:

委托权益证明。即持有币种的投资者通过投票选举超级节点来运营整个网络,类似于人民代表大会制度。

– 实现原理:

DPOS算法被分为了两部分。选举一组区块生产者和调度生产。

选举:只有拥有被选举权的永久节点才能够被选举,最终只有前N名见证人可以被选举出来。这N个人都要获得50%以上的票数才能够顺利当选,除此之外,这个名单会按照固定的时间间隔进行重新选举。

调度生产:在正常情况下,区块生产者轮流每3秒产生一个区块。假设没有生产者错过自己顺序,那么他们生产的链条势必是最长的链条。见证人生产区块时,每2s需要产生一个区块,如果超过了规定的时间,那么当前见证人就会失去生产权利而转交给下一个人。那么见证人不仅没有报酬,还可能会失去见证人身份。

– 代表应用:EOS等

DPoW

– 概念:

延迟工作量证明。建立在PoB与DPoS基础上的新一代共识机制。矿工使用自己的算力,通过哈希算法,最终证明自己的工作量之后,获取对应的wood,wood不可交易。当wood积攒到一定量之后,可以前往燃烧场地燃烧wood。这样可以让算力和出矿权利达到一个平衡。

– 实现原理:

在基于DPoW的区块链中,矿工mining所获得的不再是奖励的代币,而是可以焚烧的“wood”,燃木。矿工使用自己的算力,通过哈希算法,最终证明自己的工作量之后,获取对应的wood,wood不可交易。当wood积攒到一定量之后,可以前往燃烧场地燃烧wood。通过一组算法,燃烧较多wood的人或者BP或者一组BP可以获取下个事件段出块的权利,成功出块后获取奖励(代币)。由于一个时间段内可能会有多人燃烧wood,下一个时间段出块的概率由自己燃烧wood数量决定。焚烧的越多,下一段时间可以获得出块权利的概率越高。 

两个节点类型:公证人节点和正常节点。

64 个公证人节点是由 dPoW 区块链的权益持有者选举产生,可从 dPoW 区块链向所附加的 PoW 区块链添加经公证确认的块。一旦添加了一个块,该块的哈希值将被添加到由 33 个公证人节点签署的 Bitcoin 交易中,并创建一个哈希到 Bitcoin 区块链的 dPow 块记录。该记录已被网络中的大多数公证人节点公证。为避免公证人节点间在挖矿上产生战争,进而降低网络的效率,Komodo 设计了一种采用轮询机制的挖矿方法,该方法具有两种运行模式。在“无公证人”(No Notary)模式下,支持所有网络节点参与挖矿,这类似于传统 PoW 共识机制。而在“公证人激活”(Notaries Active)模式下,网络公证人使用一种显著降低的网络难度率挖矿。“公证人激活”模式下,允许每位公证人使用其当前的难度挖掘一个区块,而其它公证人节点必须采用 10 倍难度挖矿,所有正常节点使用公证人节点难度的 100 倍挖矿。 

 DPoW在没有公证人节点的运工作流程

节点 

– 代表应用CelesOS、Komodo等

CelesOS研究院丨DPoW共识机制-可燃烧的挖矿与投票

PBFT

– 概念

实用拜占庭容错算法。即将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。

– 实现原理

 PBFT的算法原理

节点 

首先,客户端向主节点发送请求调用服务操作,然后主节点通过广播将请求发送的其他副本。所有副本都执行请求并将结果发回客户端。客户端需要等待f+1个不同副本节点返回相同的结果,作为整个操作的最终结果。

两个限定条件:1、所有节点必须是确定性的。也就是说,在给定状态和参数相同的情况下操作执行的结果必须相同。2、所有节点必须从相同的状态开始执行。在这两个限定条件下,即使有失效的副本节点存在,PBFT算法对所有非失效副本节点的请求执行总顺序达成一致,从而保证安全性。

– 代表应用:Tendermint Consensus等

下期预告:第三章常见共识机制(下)+第四章 共识机制的选择与现状总结

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2020年6月11日 下午3:56
下一篇 2020年6月11日 下午3:57

相关推荐

加密经济回溯与展望——共识机制的发展与演变(二)| 号精选

星期四 2020-06-11 15:57:00

节点

前言

共识机制是区块链的重要要素之一,也是分布式账本正常运行的核心规则,主要用于解决人与人之间的信任问题,以及在区块链系统中决定谁负责生成新区块并维护系统的有效统一,因此成为了区块链领域恒久不变的研究热点。 

本文从共识机制的概念和作用入手,首先让读者对共识机制整体有一个初步的认识;然后从两军问题和拜占庭将军问题出发,按照共识机制提出时间的先后顺序介绍了共识机制的发展沿革;接着对目前主流的共识机制从概念、工作原理和代表项目三个方面进行了简单的介绍,并对主流共识机制的优势和劣势进行对比;最后对区块链项目如何选择共识机制给出了建议,并指出了共识机制未来发展的可能性趋势。

目录

一、共识机制的概念和作用

1.1 概念:分布式账本正常运行的核心规则

1.2 作用:解决信任问题,决定新区块的生成和维护

1.2.1 用于解决人与人间的信任问题

1.2.2 用于决定在区块链系统中谁负责生成新区块并维护有效统一

1.3 共识算法的主流模型

二、共识机制的缘起

2.1 两军问题与拜占庭将军问题

2.1.1 两军问题

2.1.2 拜占庭将军问题

2.2 共识机制发展史

2.2.1 共识机制分类

2.2.2共识机制发展前沿

三、常见共识体制

四、共识机制的选择与现状总结

4.1 如何挑选一个适合自己的共识机制

4.1.1 判断最终结果是否很重要

4.1.2 判断申请流程需要有多快

4.1.2 判断应用对去中心化的需求程度

4.1.3 判断系统是否可以终止

4.1.4 优劣权衡后选择适合的共识算法

4.2 共识机制的未来发展

上期回顾:第一章共识机制的概念和作用+第二章共识机制的缘起

第三章 常见共识机制(上)

 相对主流的共识机制归纳

节点

来源:Hasib Anwar, “Consensus Algorithms:The Root Of The Blockchain Technology”

上图为一名极客Hasib Anwar归纳的其中14种相对主流的共识机制,包括PoW工作量证明)、PoS(权益证明)、DPoS(委托权益证明)、LPoS(租用权益证明)、PoET(过去时间证明)、PBFT(实用拜占庭容错)、SBFT(简单拜占庭容错)、DBFT(委托拜占庭容错)、DAG (有向非循环图)、Proof-of-Activity(活动量证明)、Proof-of-Importance(重要性证明)、Proof-of-Capacity(容量证明)、Proof-of-Burn (燃烧证明)、Proof-of-Weight (重量证明)。

接下来,我们主要针对目前区块链最主流的十大共识机制进行介绍分析。

》POW

– 概念:

工作量证明机制。即对于工作量的证明,意味着消耗一定的计算机时间来确认做过的工作量。

– 实现原理:

 PoW工作量证明原理

节点

以比特币为代表的PoW使用的是SHA-256算法函数,是密码哈希函数家族中输出为256位的哈希算法:

工作量证明的输出=SHA256(SHA256(区块头));

if(工作量证明的输出<目标值),证明工作量完成;

if(工作量证明的输出>=目标值),变更随机数,递归i的逻辑,继续与目标值比对。

新难度值=旧难度值*(过去2016个区块花费时长/20160分钟)

目标值=最大目标值/难度值

最大目标值为一个固定数,若过去2016个区块花费时长少于20160分,那么这个系数会小,目标值将会被调大些,反之,目标值会被调小,因此,比特币的难度和出块速度将成反比列适当调整出块速度。 

– 代表应用:BTC等

》 POS

– 概念:

权益证明。即依据各人持币权益来达成共识的机制,持币越多越久,获得奖励的概率越大。

– 实现原理:

PoS实现算法公式:hash(block_header) =<target * coinage

币龄计算公式:coinage = 币的个数*币的剩余使用时间

其中,coinage表示币龄,这将意味着,币龄越大,越容易得到答案。而其中币龄的计算是通过挖矿者拥有的币乘以每个币的剩下使用时间得到,这也将意味着拥有的币越多,也越容易得到答案。这样,pos解决了pow中浪费资源的问题,同时挖矿者不可能拥有全网51%的币,所以也解决了51%攻击的问题。

– 代表应用:ETH等

》DPoS

– 概念:

委托权益证明。即持有币种的投资者通过投票选举超级节点来运营整个网络,类似于人民代表大会制度。

– 实现原理:

DPOS算法被分为了两部分。选举一组区块生产者和调度生产。

选举:只有拥有被选举权的永久节点才能够被选举,最终只有前N名见证人可以被选举出来。这N个人都要获得50%以上的票数才能够顺利当选,除此之外,这个名单会按照固定的时间间隔进行重新选举。

调度生产:在正常情况下,区块生产者轮流每3秒产生一个区块。假设没有生产者错过自己顺序,那么他们生产的链条势必是最长的链条。见证人生产区块时,每2s需要产生一个区块,如果超过了规定的时间,那么当前见证人就会失去生产权利而转交给下一个人。那么见证人不仅没有报酬,还可能会失去见证人身份。

– 代表应用:EOS等

DPoW

– 概念:

延迟工作量证明。建立在PoB与DPoS基础上的新一代共识机制。矿工使用自己的算力,通过哈希算法,最终证明自己的工作量之后,获取对应的wood,wood不可交易。当wood积攒到一定量之后,可以前往燃烧场地燃烧wood。这样可以让算力和出矿权利达到一个平衡。

– 实现原理:

在基于DPoW的区块链中,矿工mining所获得的不再是奖励的代币,而是可以焚烧的“wood”,燃木。矿工使用自己的算力,通过哈希算法,最终证明自己的工作量之后,获取对应的wood,wood不可交易。当wood积攒到一定量之后,可以前往燃烧场地燃烧wood。通过一组算法,燃烧较多wood的人或者BP或者一组BP可以获取下个事件段出块的权利,成功出块后获取奖励(代币)。由于一个时间段内可能会有多人燃烧wood,下一个时间段出块的概率由自己燃烧wood数量决定。焚烧的越多,下一段时间可以获得出块权利的概率越高。 

两个节点类型:公证人节点和正常节点。

64 个公证人节点是由 dPoW 区块链的权益持有者选举产生,可从 dPoW 区块链向所附加的 PoW 区块链添加经公证确认的块。一旦添加了一个块,该块的哈希值将被添加到由 33 个公证人节点签署的 Bitcoin 交易中,并创建一个哈希到 Bitcoin 区块链的 dPow 块记录。该记录已被网络中的大多数公证人节点公证。为避免公证人节点间在挖矿上产生战争,进而降低网络的效率,Komodo 设计了一种采用轮询机制的挖矿方法,该方法具有两种运行模式。在“无公证人”(No Notary)模式下,支持所有网络节点参与挖矿,这类似于传统 PoW 共识机制。而在“公证人激活”(Notaries Active)模式下,网络公证人使用一种显著降低的网络难度率挖矿。“公证人激活”模式下,允许每位公证人使用其当前的难度挖掘一个区块,而其它公证人节点必须采用 10 倍难度挖矿,所有正常节点使用公证人节点难度的 100 倍挖矿。 

 DPoW在没有公证人节点的运工作流程

节点 

– 代表应用CelesOS、Komodo等

CelesOS研究院丨DPoW共识机制-可燃烧的挖矿与投票

PBFT

– 概念

实用拜占庭容错算法。即将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。

– 实现原理

 PBFT的算法原理

节点 

首先,客户端向主节点发送请求调用服务操作,然后主节点通过广播将请求发送的其他副本。所有副本都执行请求并将结果发回客户端。客户端需要等待f+1个不同副本节点返回相同的结果,作为整个操作的最终结果。

两个限定条件:1、所有节点必须是确定性的。也就是说,在给定状态和参数相同的情况下操作执行的结果必须相同。2、所有节点必须从相同的状态开始执行。在这两个限定条件下,即使有失效的副本节点存在,PBFT算法对所有非失效副本节点的请求执行总顺序达成一致,从而保证安全性。

– 代表应用:Tendermint Consensus等

下期预告:第三章常见共识机制(下)+第四章 共识机制的选择与现状总结