web3:区块链常见的几大共识机制及优缺点

什么是共识

我们所说的共识是指达成了广泛的一致。 比如一群人去吃晚饭 如果他们对于提议“吃某火锅”没有任何异议那么就可以说共识达成了。 如果存在异议那么他们就必须通过某种方法决定吃什么。 在极端情况下这群人就会分开。


什么是共识机制

区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆提供一个最坚实且去中心化的系统。共识机制在区块链中成为了重要的因素之一。

区块链分布式记账的方式使得每个人手上都有一本完整的账本全网共有。但是随着节点的不断增多数据越多账本也越安全难以摧毁。除此之外任意一个或者部分节点的账本被篡改都不可能被全网认同除非你能控制51%的节点即51%攻击但是这耗能巨大几乎是不可能的。同时随着节点不断增加谁来记账如何选择合适的人来记账成为一个问题而制定一个记账人的选择方式以及规定让大家来遵守这个规定达成共识这就是区块链里面的共识机制。

共识机制是区块链节点就区块信息达成全网一致共识的机制说得更直白一些就是要解决所谓去中心化的信任问题因为每个节点之间默认是不认识且不可靠的同时每个节点都不能知道其他节点是否宕机或者背叛的情况下尽可能的保证记录信息的准确性以及安全性。同时节点越分散效率越低网络对于信息的满意度越高越安全。


共识机制的目标

区块链作为一种按时间顺序存储数据的数据结构可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图同时满足两个性质
1一致性所有诚实节点保存的区块链的前缀部分完全相同。
2有效性由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。


为什么需要共识机制?

在分布式系统中各个不同的主机通过异步通信方式组成网络集群。为了保证每个主机达成一致的状态共识就需要在主机之间进行状态复制。异步系统中可能会出现各样的问题例如主机出现故障无法通信或者性能下降而网络也可能发生拥堵延迟类似的种种故障有可能会发生错误信息在系统内传播。因此需要在默认不可靠的异步网络中定义容错协议以确保各主机达成安全可靠的状态共识。所以利用区块链构造基于互联网的去中心化账本需要解决的首要问题是如何实现不同账本节点上的账本数据的一致性和正确性。

这就需要借鉴已有的在分布式系统中实现状态共识的算法确定网络中选择记账节点的机制以及如何保障账本数据在全网中形成正确、一致的共识。


如何评价一个共识机制的优劣:

  1. 安全性:能否有效防止二次支付私自挖矿
  2. 扩展性:当系统成员和待确认交易数量增加时所带来的系统负载和网络通信量的变化通常以网络吞吐量来衡量
  3. 性能效率:每秒可以处理的交易数量
  4. 资源消耗:达成共识过程中所要消耗的CPU、内存等计算资源

共识机制分类

没有一种共识机制是完美无缺的各共识机制都有其优缺点有些共识机制是为解决一些特定的问题而生。

BTC作为区块链的第一个应用它的共识机制PoW共识机制曾经一枝独秀但是随着区块链技术的不断发展各类不同的共识机制开始不断涌现各有千秋各有拥趸。

常见的共识就机制包括POW工作量证明机制、POS权益证明机制、POW+POS混合共识机制、DPOS股份授权证明等等另外还有Pool验证池、Ripple瑞波共识协议、PBFT使用拜占庭容错算法等等

PoW( Proof of Work)工作量证明多劳多得

在这里插入图片描述

最早也是第一个被应用的共识机制最先被BTC采用并且获取了巨大成功它支撑了BTC系统长达 10 多年无重大故障使其平稳运行。而且 PoW 构想也符合创始人中本聪最初的设想人人皆可挖矿、按劳分配、公平公正。

PoW 属于按劳分配多劳多得就如同大家在BTC系统中一起进行数学运算最先运算出的才能获得奖励。是一种衡量计算机工作量的共识机制。BTC使用的就是工作量证明机制。

工作量证明主要通过哈希计算找出合理数据的步骤来完成将区块头数据带入哈希函数计算公式不断调整区块头数据中的随机数直到计算出满足特定标准的哈希值工作量证明就会完成。

简单来说就是多劳多得谁的算力强计算得就更快获得记账权的概率就越高算力竞争的胜者将获得相应区块记账权和BTC奖励。 因此,矿机芯片的算力越高,挖矿的时间更长,就可以获得更多的数字货币。进行运算获得奖励的过程称之为挖矿参与挖矿的人们称之为矿工。这种证明方式决定了其验证过程需要大量的数据计算而其他节点却很容易验证计算结果是否正确因此 区块链系统无法被恶意节点所欺骗。但是这种证明方式需要消耗大量能源(电力及计算硬件损耗)很不 环保。并且在理论上如果集合了全网51%的算力即可对区块链网络进行有效攻击因此许多基于比特币 代码产生的、市值较小的山寨币很容易遭受攻击。

代表tokenBTC、BCH、LTC等。

优点

  • 公平公正去中心化程度高人人都可以参与获得记账权
  • 安全系数高全网算力越高其安全程度也越高如破坏该系统需要投入巨大成本
  • 算法简单容易实现

缺点

  • 资源浪费因每一笔交易都需要通过多数矿工的确认在这些矿工进行运算的过程中消耗大量的电力资源等。
  • 效率低下区块的确认时间难以缩短容易产生分叉需要等待多个确认。
  • 算力集中根据往年数据显示在资本大量进入的情况下过去一年矿池算力份额排名前五位的矿池占据了BTC总算力份额的 65%马太效应逐渐显现而算力过度集中还存在着 51% 攻击的风险。
  • 永远没有最终性需要检查点机制来弥补最终性。

PoS(Proof of Stake)股权证明算法持有越多获得越多

在这里插入图片描述

因 PoW 存在的问题PoS 在主流算法一路畅通的“杀了出来”成为了最具有挑战者。近几年基于 PoS共识打造的区块链项目越来越多如目前市值保持第二的ETH也加入了 PoS。“Staking经济”在 2019年成为了热门词语同时也被交易所和钱包大力追捧。

POS机制采用类似股权证明与投票的机制选出记帐人由它来创建区块。持有股权愈多则有较大的特权且需负担更多的责任来产生区块同时也获得更多收益的权力。 POS 机制中一般用币龄来计算记账权每个币持有一天算一个币龄,比如 持有 100 个币,总共持有了 30 天,那么此时的币龄就为 3000。在 POS机制下,如果记账人发现一个 POS 区块, 他的币龄就会被清空为 0,每被清空 365 币龄,将会从区块中获得 0.05 个币的利息(可理解为年利率 5%)。

PoS权益证明同样需要通过计算找出合理的哈希值来完成。 但不同的是权益证明机制通过节点持有加密货币的时间和数量来判断节点的权益大小。根据权益大小不同用户之间看到的计算目标值也不同。权益大的节点获得目标值更加简单更容易获得下一个区块的记账权。 这种方式不需要每个节点都进行大量的运算节省了电力能源。同时全网51%的算力攻击在权益证明机制下是无效的因为发起这种攻击反而会损害自身的利益。但是可能会出现币种持有数量大的节点权力过 大对区块链记账享有绝对支配权的情况容易引发信任问题。

在 PoS 机制中是不需要消耗电力来进行运算而是通过抵押 token 来获得打包区块的权利。当一笔交易发生时系统会对打包区块和验证区块的节点来进行奖励奖励则是增发或者解锁的 token。

代表tokenADA、ONT、ATOM等。

优点

  • 不浪费资源、效率高因其不需要拼算力挖矿同时缩短了共识达成的时间转账效率提高了
  • 弱化了中心矿池规模经济的需求算力集中垄断的情形也得到了缓解个体竞争力差别相对减小

缺点

  • 被动形成中心化因去中心化程度容易出现强者恒强的情况会导致富者越富资源越来越集中的情况。
  • 安全隐患PoS机制实现较为复杂容易产生安全漏洞。
  • 无权益问题Nothing at Stake用户在PoS中可以同时在两个分叉上面下注无论哪一个分叉后面被公认为主链该用户都可以获得奖励而没有机会成本的损失。这样也在事实上会干扰共识的形成。
  • 还是需要挖矿本质上没有解决商业应用的痛点。

DPOS(Delegated Proof-of-Stake)股份授权证明

在这里插入图片描述

DPoS 机制是在 PoS 的基础上进行了改良举例来说就是大家公认的投出选票选举出一定数量的代表让这些代表进行验证和记账等可以理解为PoS 的升级版。与PoS的主要区别在于持币者投出一定数量的节点代理他们进行验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。

DPoS的工作原理为每个股东按其持股比例拥有影响力51%股东投票的结果将是不可逆且有约束力的。其挑战是通过及时而高效的方法达到51%批准。为达到这个目标每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块含有100股作为交易费一名代表将获得1股作为报酬。DPoS的投票模式可以每30秒产生一个新区块。

简单点说DPoS 委托权益证明通过由持币人投票选举出一定数量的代表来达成共识。 每个持币人的投票所占的比重 与他持有的币种数量有关持有的越多所占的比重越大。被选出的代表可拥有记账权轮流进行记账;未能很好履行职责的代表还会被投票除名。这一任期结束后新的代表会再次通过投票产生。

代表tokenEOS、TRX等。

优点

  • 比 PoS 机制拥有更高的效率和性能相比于 PoS 机制DPoS 大幅缩小了参与验证和记账的节点数量可以达到秒级的共识验证。

缺点

  • 整个共识机制还是依赖于token很多商业应用是不需要代币存在的。
  • 去中心化程度低相比较于只能说是弱中心化
  • 安全问题严重类 PoS 机制的通病相信大家都看到过报道如被黑客攻击等等。

PoC(Proof of Capacity)容量证明机制

在这里插入图片描述

PoC 机制早在 2014年存在了但只是一直处于“落魄阶段”简单说就是没火无人问津。2019年随着POC一大公链Yottachain的崛起越来越多的矿工加入了POC硬盘挖矿这个行业大军了。它是POW共识机制的一种以硬盘作为共识参与者它的特点是牺牲性能获得安全可信相对POW减少了非常多的安全和信任成本更低成本解决了全局信任和安全几乎不耗电力资源并且可共享和复用的信任生态。

PoC 机制是通过普通硬盘挖矿的共识机制。简单来说就是利用计算机硬盘中的闲置空间来进行存储进行挖矿获取收益硬盘空间越大存储的内容越多获得的收益就越大。 它更多地关注内存而不是处理能力。 从某种意义上说这是对PoW的改进即使在挖掘开始之前容量证明也要求节点将预先计算的哈希值存储在其硬盘驱动器和其他内存单元上这个过程称为绘图绘图使容量证明成为比工作证明更快的机制。这种方法的另一个优点是它可以节省大量能源这与工作量证明机制不同。更不用说硬盘存储更多哈希值的任何技术改进也将为不在区块链中的人改进技术这与许多制造商制造的专用芯片不同后者除了采矿之外什么都不做。

IPFS 也类似但不同的是 IPFS 衍生的区块链项目激励层Filecoin是一种去中心化存储服务的 Marketplace撮合交易的市场它的重点在于如何在系统参与者互不信任的条件下实现存储和检索工作的量化PoC 是一种底层共识机制与 PoW、PoS一样都是去中心化网络达成一致性状态的算法。由此来看两者是完全不同的概念唯一的共同点就是都可以使用硬盘向网络贡献价值来换取收益。

代表tokenBTT、BHD等。

优点

  • 挖矿门槛较低只要有硬盘就可以进行挖矿大大降低了挖矿门槛PoC的矿机耗电量低、噪音小、成本低适合家庭挖矿和人人挖矿。
  • 去中心化程度较高抵押机制提高了算力集中化的门槛即便有超级矿工出现普通散户也可以继续获得收益。
  • 能源消耗低节能相比于PoWPOC挖矿将算力替换成硬盘空间在很大程度的杜绝了POW挖矿造成的资源浪费以及对环境不友好等问题同时降低了挖矿成本让矿工从挖矿中赚取更多的利润。
  • 反垄断用硬盘容量替代了算力天然具有抗ASIC的属性

缺点

  • 未来发展的局限性可能较大
  • 可能会有政策性风险
  • PoC并没有实现真正的平等

DAG(Directed acyclic graph)有向无环图无区块链概念

在这里插入图片描述

有向无环图是计算机科学中众所周知的数据结构。事实上区块链也是DAG的一个例子因为它有一个明确的方向没有任何循环并且是一个图。1OTA使用的Tangle也是DAG共识机制的一种形式。在这种机制中每个块必须有两个父块。所以为了通过DAG共识机制完成一笔交易用户需要验证自己之前的两笔交易。这种机制的最大优势是它可以减少延迟和交易费用。然而这种共识模型对提高可扩展性几乎没有任何作用而且极易受到攻击因为任何攻击只需要34%的哈希算力就可以破坏系统。

DAG最初出现就是为了解决区块链的效率问题。其通过改变区块的链式存储结构通过DAG的拓扑结构来存储区块。在区块打包时间不变的情况下网络中可以并行的打包N个区块网络中的交易就可以容纳N倍。

之后DAG发展成为脱离区块链提出了blockless无区块的概念。新交易发起时只需要选择网络中已经存在的并且比较新的交易作为链接确认这一做法解决了网络宽度问题大大加快了交易速度。

代表tokenIOTA、byteball等。
前段时间国内首个基于DAG的物联网区块链项目ITC万物链也取得了不小的涨幅。

优点

  • 交易速度快;
  • 无需挖矿;
  • 极低的手续费

缺点

  • 网络规模不大导致极易成为中心化;
  • 安全性低于PoW机制

PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错分布式一致性算法

实用拜占庭容错在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。
在分布式计算上不同的计算机透过讯息交换尝试达成共识;但有时候系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错误并交换错的讯息导致影响最终的系统一致性。拜占庭将军问题就根据错误计算机的数量寻找可能的解决办法这无法找到一个绝对的答案但只可以用来验证一个机制的有效程度。而拜占庭问题的可能解决方法为在 N ≥ 3F + 1 的情况下一致性是可能解决。其中N为计算机总数F为有问题计算机总数。信息在计算机间互相交换后各计算机列出所有得到的信息以大多数的结果作为解决办法。

优点

  • 系统运转可以脱离币的存在pbft算法共识各节点由业务的参与方或者监管方组成安全性与稳定性由业务相关方保证。
  • 共识的时延大约在2~5秒钟基本达到商用实时处理的要求。
  • 共识效率高可满足高频交易量的需求。

缺点

  • 当有1/3或以上记账人停止工作后系统将无法提供服务
  • 当有1/3或以上记账人联合作恶且其它所有的记账人被恰好分割为两个网络孤岛时恶意记账人可以使系统出现分叉但是会留下密码学证据

实用拜占庭容错主要应用于央行的数字货币以及布萌区块链。


dBFT(delegated BFT)授权拜占庭容错算法

小蚁采用的dBFT机制是由权益来选出记账人然后记账人之间通过拜占庭容错算法来达成共识。dBFT和PBFT的关系类似于PoS和DPoS的关系。

dBFT在PBFT基础上进行了以下改进

  1. 将C/S架构的请求响应模式改进为适合P2P网络的对等节点模式
  2. 将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点
  3. 为共识参与节点的产生设计了一套基于持有权益比例的投票机制通过投票决定共识参与节点记账节点
  4. 在区块链中引入数字证书解决了投票中对记账节点真实身份的认证问题。

优点

  • 专业化的记账人
  • 可以容忍任何类型的错误
  • 记账由多人协同完成每一个区块都有最终性不会分叉
  • 算法的可靠性有严格的数学证明

缺点

  • 当有1/3或以上记账人停止工作后系统将无法提供服务
  • 当有1/3或以上记账人联合作恶且其它所有的记账人被恰好分割为两个网络孤岛时恶意记账人可以使系统出现分叉但是会留下密码学证据

以上总结来说dBFT机制最核心的一点就是最大限度地确保系统的最终性使区块链能够适用于真正的金融应用场景。


Pool验证池——私有链专用

基于传统的分布式一致性技术加上数据验证机制;之前曾是行业链大范围在使用的共识机制但是随着私有链项目的逐渐减少渐渐开始势微。

优点

不需要token也可以工作在成熟的分布式一致性算法Pasox、Raft基础上实现秒级共识验证。

缺点

去中心化程度不如bictoin更适合多方参与的多中心商业模式。

参考

拜占庭将军问题

拜占庭将军问题是一个协议问题拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的并且将军中存在叛徒。叛徒可以任意行动以达到以下目标欺骗某些将军采取进攻行动促成一个不是所有将军都同意的决定如当将军们不希望进攻时促成进攻行动或者迷惑某些将军使他们无法做出决定。如果叛徒达到了这些目的之一则任何攻击行动的结果都是注定要失败的只有完全达成一致的努力才能获得胜利。

这一问题是一种对现实世界的模型化尤指网络当中由于软硬件错误、网络阻塞及恶意攻击导致的各种未知行为。
显然在此处默认了将军们在达成一致的过程中正确的传递出了自己的决定也就是说叛徒只存在于将军当中不存在于传令兵当中。故要让拜占庭将军问题有解必须要具备一个重要前提即信道必须是安全可靠的。关于信道可靠问题会引出两军问题。两军问题的结论是在一个不可靠的通信链路上试图通过通信以达成一致是基本不可能或者十分困难的。

拜占庭容错

拜占庭将军问题提出后有很多的算法被提出用于解决这个问题。这类算法统称拜占庭容错算法BFT: Byzantine Fault Tolerance。简略来说拜占庭容错BFT不是某一个具体算法而是能够抵抗拜占庭将军问题导致的一系列失利的系统特点。 这意味着即使某些节点出现缺点或恶意行为拜占庭容错系统也能够继续运转。本质上来说拜占庭容错方案就是少数服从多数。

拜占庭将军问题的原始论文给出了一些解决思路但其更注重理论上的可行性。算法效率不高算法复杂度为指数级且文中明确指出时间成本及消息传递数量很大。因此不具备太大的实用价值。

拜占庭容错系统需要达成如下两个指标
安全性任何已经完成的请求都不会被更改它可以在以后请求看到。在区块链系统中可以理解为已经生成的账本不可篡改并且可以被节点随时查看。
活性可以接受并且执行非拜占庭客户端的请求不会被任何因素影响而导致非拜占庭客户端的请求不能执行。在区块链系统中可以理解为系统需要持续生成区块为用户记账这主要靠挖矿的激励机制来保证。

拜占庭系统目前普遍采用的假设条件包括:
● 拜占庭节点的行为可以是任意的拜占庭节点之间可以共谋
● 节点之间的错误是不相关的
● 节点之间通过异步网络连接网络中的消息可能丢失、乱序、延时到达
● 服务器之间传递的信息,第三方可以知晓 ,但是不能窜改、伪造信息的内容和验证信息的完整性

科普 | 什么是共识机制

详解区块链中常见的八大共识机制

区块链的几大共识机制及优缺点

请大家达成共识

给我一键三连谢谢🙇
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 区块链