区块链上的共识机制

前言

区块链上的共识机制有多种,没有一种共识机制是完美无缺的,同时也意味着没有一种共识机制是适合所有应用场景的。

PoW:Proof of Work,工作量证明

依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错1。

优缺点2:

  • 优点:完全去中心化,节点自由进出;
  • 缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长。

使用PoW的项目:

  • 比特币
  • 以太坊前三个阶段:即Frontier(前沿)、Homestead(家园)、Metropolis(大都会)。第四个阶段,即Serenity(宁静),将采用PoS机制。

PoS:Proof of Stake,权益证明

Proof of Stake由Quantum Mechanic 2011年在bitcointalk首先提出,后经Peercoin和NXT以不同思路实现3。

主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。该共识机制容错性和PoW相同4。它是Pow的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度5。

优缺点678:

  • 优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。
  • 缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。例如,以太坊的DAO攻击事件造成以太坊硬分叉,而ETC由此事件出现,事实上证明了此次硬分叉的失败。

Proof of Stake - 股权证明 系列1中对PoS有以下描述:

在POW中,一个用户可能拿1000美元来买计算机,加入网络来挖矿产生新区块,从而得到奖励。而在POS中,用户可以拿1000美元购买等价值的代币,把这些代币当作押金放入POS机制中,这样用户就有机会产生新块而得到奖励。

总体上说,POS算法如下所示。存在一个持币人的集合,他们把手中的代币放入POS机制中,这样他们就变成验证者。假设在区块链最前面一个区块(区块链中最新的块),这时POS算法在这些验证者中随机选取一个(选择验证者的权重依据他们投入的代币多少,比如一个投入押金为10000代币的验证者被选择的概率是一个投入1000代币验证者的10倍),给他们权利产生下一个区块。如果在一定时间内,这个验证者没有产生一个区块,则选出第二个验证者来代替来产生新区块。与POW一样,以最长的链为准。

有什么好处?

简而言之:

不再需要为了安全产生区块而大量消耗电能。

由于不再需要大量能耗,通过发行新币以激励参与者继续参与网络的压力会下降。理论上负总发行量甚至成为可能,由于一部分交易费“被烧”掉因此货币供应随着时间减少。

有可能通过“合作博弈论”减少自私挖矿攻击遭成的系统弱点,虽然POW在一定程度上也可以做到这一点。

随着规模经济(指扩大生产规模引起经济效益增加的现象)的消失,中心化所带来的风险减小了。价值一千万美元的代笔带来的回报不多不少是价值一百万美元代币的10倍,不会有人因为负担得起大规模生产工具得到不成比例的额外回报。

有关PoS的资料:

DPoS:Delegate Proof of Stake,股份授权证明

BitShares社区首先提出了DPoS机制9。

与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似10。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账11。

DPoS的工作原理为12:

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

网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这不太可能发生,因为制造区块的代表可以与制造前后区块的代表建立直接连接。建立这种与你之后的代表(也许也包括其后的那名代表)的直接连接是为了确保你能得到报酬。

该模式可以每30秒产生一个新区块,并且在正常的网络条件下区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。

成为代表:

成为一名代表,你必须在网络上注册你的公钥,然后分配到一个32位的特有标识符。然后该标识符会被每笔交易数据的“头部”引用。

授权选票:

每个钱包有一个参数设置窗口,在该窗口里用户可以选择一个或更多的代表,并将其分级。一经设定,用户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。一般情况下,用户不会创建特别以投票为目的的交易,因为那将耗费他们一笔交易费。但在紧急情况下,某些用户可能觉得通过支付费用这一更积极的方式来改变他们的投票是值得的。

保持代表诚实:

每个钱包将显示一个状态指示器,让用户知道他们的代表表现如何。如果他们错过了太多的区块,那么系统将会推荐用户去换一个新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每个钱包进行更多交易前要求选出一个新代表。

抵抗攻击:

在抵抗攻击上,因为前100名代表所获得的权力权是相同的,每名代表都有一份相等的投票权。因此,无法通过获得超过1%的选票而将权力集中到一个单一代表上。因为只有100名代表,可以想象一个攻击者对每名轮到生产区块的代表依次进行拒绝服务攻击。幸运的是,由于事实上每名代表的标识是其公钥而非IP地址,这种特定攻击的威胁很容易被减轻。这将使确定DDOS攻击目标更为困难。而代表之间的潜在直接连接,将使妨碍他们生产区块变得更为困难。

优缺点13:

  • 优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
  • 缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

DPoS的相关资料:

Casper:投注共识

这是一种以太坊下一代的共识机制,属于PoS。Casper的共识是按块达成的而不是像PoS那样按链达成的14。

为了防止验证人在不同的世界中提供不同的投注,我们还有一个简单严格的条款:如果你有两次投注序号一样,或者说你提交了一个无法让Casper合约处理的投注,你将失去所有保证金15。从这一点我们可以看出,Casper与传统的PoS不同的是Casper有惩罚机制,这样非法节点通过恶意攻击网络不仅得不到交易费,而且还面临着保证金被没收的风险。

Casper协议下的验证人需要完成出块和投注两个活动。具体如下16:

出块是一个独立于其它所有事件而发生的过程:验证人收集交易,当轮到他们的出块时间时,他们就制造一个区块,签名,然后发送到网络上。投注的过程更为复杂一些。目前Casper默认的验证人策略被设计为模仿传统的拜占庭容错共识:观察其他的验证人如何投注,取33%处的值,向0或者1进一步移动。

而客户端的确认当前状态的过程如下所示17:

一开始先下载所有的区块和投注,然后用上面的算法来形成自己的意见,但是不公布意见。它只要简单的按顺序在每个高度进行观察,如果一个块的概率高于0.5就处理它,否则就跳过它。在处理所有的区块之后得到的状态就可以显示为区块链的“当前状态”。客户端还可以给出对于“最终确定”的主观看法:当高度k之前的每个块,意见要么高于99.999%或者低于0.001%,那么客户端就可以认为前k个块已经最终确定。

有关Casper的资料:

  • 理解 Serenity - 第二部分: Casper:这篇文章是翻译自以太坊的博客,里面详细描述了casper的工作原理是什么。同时由于这个是以太坊官方描述,因此,如果想要深入了解Casper,那么这篇文章是必读的。
  • 以太坊紫皮书(中文版):紫皮书发布于2016年在上海举办的以太坊第二届开发者大会。里面详细介绍了以太坊下一代PoS共识机制的相关设想。也可以看紫皮书英文版:Ethereum 2.0 Mauve Paper

Ripple Consensus:瑞波共识机制

瑞波币的共识算法如下18:

瑞波共识算法,使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。与比特币及点点币一样,瑞波系统将股东们与其投票权隔开,并因此比其他系统更中心化。

Pool验证池

基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制。布比特有的?

优缺点19:

  • 优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
  • 缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。

PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错

在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度20。

而拜占庭问题的可能解决方法为21:

在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。

最早由 Castro 和 Liskov 在 1999 年提出的 Practical Byzantine Fault Tolerant(PBFT)是第一个得到广泛应用的 BFT 算法。只要系统中有2/3的节点是正常工作的,则可以保证一致性22。

PBFT算法的总体过程如下23:

  1. 客户端向主节点发送请求调用服务操作:

    • 客户端c向主节点发送

dBFT:delegated BFT,授权拜占庭容错

2016年4月,小蚁发布共识算法白皮书,描述了一种通用的共识机制模块dBFT(delegated BFT),提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统24。dBFT算法在PBFT基础上进行了改进25:

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

优点26:

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

缺点27:

  • 当有1/3或以上记账人停止工作后,系统将无法提供服务;
  • 当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;
  • 以上总结来说,dBFT机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。

有关dBFT的资料:

PoET:Proof of Elapsed Time,消逝时间量证明

它是由英特尔构建在可信执行环境的一种彩票协议28。

Quorum Voting:仲裁投票

它采用了瑞波和恒星的共识协议,用来解决需立即交易定局的需求29。

Paxos

这是一种传统的分布式一致性算法。

是一种基于选举领导者的共识机制,领导者节点拥有绝对权限,并允许强监管节点参与,性能高,资源消耗低。所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性30。

有关Paxos的资料:

Raft

这是一种传统的分布式一致性算法。

Raft相关资料:


  1. 中国区块链技术应用发展白皮书(2016) ?
  2. 知乎-区块链上的共识机制 ?
  3. 共识算法,区块链的引擎 ?
  4. 中国区块链技术应用发展白皮书(2016) ?
  5. 知乎-区块链上的共识机制 ?
  6. 知乎-区块链上的共识机制 ?
  7. 区块链项目的共识之路 ?
  8. 为什么说小蚁是中国唯一发布共识机制的技术领跑者? ?
  9. 共识算法,区块链的引擎 ?
  10. 中国区块链技术应用发展白皮书(2016) ?
  11. 知乎-区块链上的共识机制 ?
  12. 浅谈区块链共识机制与分布式一致性算法 ?
  13. 知乎-区块链上的共识机制 ?
  14. 理解 Serenity - 第二部分: Casper ?
  15. 理解 Serenity - 第二部分: Casper ?
  16. 理解 Serenity - 第二部分: Casper ?
  17. 理解 Serenity - 第二部分: Casper ?
  18. 浅谈区块链共识机制与分布式一致性算法 ?
  19. 知乎-区块链上的共识机制 ?
  20. 维基百科-拜占庭将军问题 ?
  21. 维基百科-拜占庭将军问题 ?
  22. 拜占庭问题与算法 ?
  23. 区块链核心技术:拜占庭共识算法之PBFT ?
  24. 小蚁 ?
  25. Onchain发布小蚁共识算法白皮书 ?
  26. Onchain发布小蚁共识算法白皮书 ?
  27. Onchain发布小蚁共识算法白皮书 ?
  28. 英特尔推出“锯齿湖”(Sawtooth Lake)区块链平台 ?
  29. 英特尔推出“锯齿湖”(Sawtooth Lake)区块链平台 ?
  30. 中国区块链技术应用发展白皮书(2016) ?
时间: 2024-08-04 12:01:24

区块链上的共识机制的相关文章

区块链为什么有共识机制?

区块链中为什么需要一种共识机制呢?我们都知道加密货币大部分是采用去中心化的区块链设计,每个节点都是各处分散且平行的,因此需要有一套制度来维护系统的运作顺序与公平性,这就是共识机制设计的意义所在. 对于一些人来说,可能还不清楚共识机制是什么概念,这里我就简单来讲讲. 区块链中的共识机制简单来说,是由谁取得了一个区块链的打包权(或称记帐权),且可获取打包这个区块的奖励,或是任何人想进行破坏,就会有一定的惩罚. 第二点要讲的是分布式记账及"挖矿" 以前的中心式记账需要一个组委会来记录比分,这

[老k说区块链]区块链中的共识(1)— 免信任的共识机制

老k,柏链道捷CTO.清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统.编译器.虚拟机和符号执行方面都有实战经验.主持开发多个开眼项目,目前主要从事区块链底层系统开发工作. 这个系列的文章主要谈一下我对区块链中的共识机制的理解,欢迎跟大家一起交流.探讨. 前言 当今区块链的概念和产业已经遍布神州大地,创业言必区块链,在各种咖啡厅中你都可以听到周围的人谈论区块链,大部分从业者对区块链技术的一个认识是它是一个分布式账本技术,更有些人说区块链是各种计算机技术的组合,如P2P

区块链2.0-共识机制如何打破互联网信息大爆炸

作者:Melon 如今打开头部流量产品如:QQ.微信.抖音等.总是会收到各种垃圾游戏的推荐广告.头部媒体公司更是用一桩桩的奇闻异事把我吸引进去看了不知真假的新闻,内容穿插不是垃圾游戏,就是壮阳广告,不是壮阳就是贷款投资. 如果高重复性的垃圾广告被如此厚脸皮的不停推送.容易想到,游戏,贷款,壮阳药物正是投入成本如此之低,销售成本如此之高的垃圾产品代表之作.行业已在作死,百姓深处资本套路之中.像我这一样一个95年就开始玩电脑的老司机,也终于有了忍不住想要砸掉电脑,烧了网线的冲动. 人生中没有什么比我

如何建立一个运行在区块链上的世界?

如何建立一个运行在区块链上的世界? 区块链如今还是一个襁褓中的婴儿,在其得到广泛应用.充分发挥潜力之前,有许多事情需要先行解决.比如,我们需要获得政府的认可(这在美国意味着需要逐个州解决政策和监管问题). 对于银行业务.身份识别.记录保存或任何其他需要留存官方记录但如今依然利用老旧政府系统甚至依然靠纸质操作的事项,只有在各种法律和监管障碍扫除后,区块链才能发挥效用. 另外,我们需要统一的区块链行业公开标准.目前在此方面努力的最杰出联盟是Hyperledger项目. Hyperledger是一个致

区块链学习(7) 共识

在之前的文章中已经说过了比特币是一种去中心化的分布式账本,因此各节点之间是相互不信任的.那么比特币网络中的所有参与者如何达成对任意一个所有权的共识呢?这篇文章就会介绍如何解决这个问题. 比特币的共识由所有节点的4个独立过程相互作用而产生: 1.每个节点(挖矿节点)依据标准对每个交易进行独立验证 2.挖矿节点通过完成工作量证明,将交易记录独立打包进新区块 3.每个节点独立的对新区块进行校验并组装进区块链 4.每个节点对区块链进行独立选择,在工作量证明机制下选择累计工作量最大的区块链 同时,挖矿也会

区块链开发公司 什么是区块链共识机制?

区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,各个节点所观察到的交易事务先后顺序不可能完全一致. 因此区块链系统需要设计一种机制对在一定的时间内发生的事务的先后顺序进行共识.这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为"共识机制". 区块链上采用不同的共识机制,在满足一致性和有效性的同时会对系统整体性能产生不同影响.综合考虑各个共识机制的特点,从以下4个维度评价各共识机制的技术水平:1.安全性.即是否可以防止二次支付.自私挖矿等×××,是否有良好

区块链+互联网_区块链金融管理系统开发解决方案

区块链+互联网_区块链互联网金融管理系统开发 你可能听说区块链的概念和互联网的出现一样引人注目,一个比较客观的说法是区块链是一种存储.读取信息的新方法,其重要性就好比是三十年前的客户端 / 服务器数据库模式或者是二十多年以前的互联网概念. 使用区块链记录交易,就好比用一支永久记号笔在城市广场正中心的一卷 Kevlar 胶带上写字.一旦交易被记录下来,就不能修改或删除,系统中的每一台计算机都能看到这笔交易.由于这些特点,它不仅可以成为虚拟货币.支付过程以及的区块链,而且还可以有很多其它应用. 首先

区块链的相关名词有哪些?星光区块链

区块链的相关名词有哪些?随着区块链这个名词越来越火,现在有很多人都去了解区块链技术是怎样的?但有一些人因为不知道它相关名词的意思,陷入一个似懂非懂的状态.为了使大家更加深入的了解区块链技术,下面就让星光区块链来告诉大家一些常用的区块链的相关名词有哪些?它们是什么意思?-:半衰期来源于比特币的激励机制,即为矿工每验证一个区块即可得到的奖励.从最开始的50BTC,每四年减半,目前是12.5BTC,已经历过2次半衰(50BTC-->25BTC-->12.5BTC). 二:.分叉指向同一个父块的2个区

第14讲 | 深入区块链技术(六):DPoS共识机制

上一篇文章里,我们讲解了PoS共识机制,这一篇我们来分享PoS的一个扩展机制,这个机制在业界也非常的流行,它叫做DPoS共识机制.DPoS全称是Delegated Proof of Stake,中文翻译过来是代理权益证明. 从BM开始聊起的故事 我们聊DPoS时,为什么要从BM聊起呢, 其实,这和聊比特币绕不开中本聪一样,DPoS是BM一手创造的.DPoS不是独立提出的共识算法,而是直接被BM应用到比特股项目中,在稳定运行了3年多后,又接着被BM构造成可复用的区块链工具箱:石墨烯. 虽然应用得很