区块链主流共识算法

一.POW(Proof Of Work)

Proof Of Work,也就是工作量证明。工作量证明系统(或者说协议、函数),是一种应对拒绝服务攻击和其他服务滥用的经济对策。它要求发起者进行一定量的运算,也就意味着需要消耗计算机一定的时间。这种系统要求得到证明的过程是低效且漫长的,可是校验则是高效且迅速,概括起来就是求解难,验证容易。

比特币是第一个区块链应用,同时也是最著名的应用之一,它所使用的共识机制就是POW。那么具体是怎么实现的呢?

在比特币中,使用了SHA256这种哈希函数作为求解手段。SHA256有以下特征:

  1. 是一种散列函数,即相邻的x1和x2,求得的f(x1)和f(x2)差别极大。
  2. 不可逆推,给定了f(x)的值,推断不出输入值。
  3. 不存在比穷举更好的方法,可以使f(x)落在特定的范围。

实际使用过程中,每个节点需要打包的交易数据相同,再从尾部加一个随机数(节点自己选)作为整体输入来求输出值,把结果和当前的挖矿难度对比(要求输出值前x位为0),满足条件则向附近节点广播;不满足则更换随机数继续求解。最快求得解的节点,则可以视为挖矿胜出,取得其他节点的共识。

目前比特币已经吸引了全球大部分的运算能力,其他再使用PoW共识机制的区块链应用很难获得相同的计算能力来保障自身的安全,从而无法复制比特币的辉煌;同时由于挖矿造成大量的资源被浪费,共识达成的周期很长,导致了比特币的TPS(transaction per second,每秒执行事务数量)极低,只有个位数。

二.POS(Proof of Stake)

POS通过区块链系统内部的虚拟资产来管理安全性,根据节点持有的通证数量或者时长来决定节点享有的权利大小。区块链系统的参与者锁定他们在该区块链上持有的虚拟资产(Coin或Token),他们会签署消息以达成一致意见。只有那些已经成为系统一部分的参与者才能够决定下一个区块的内容。

PoW共识算法从经济角度,可以自然做到防止区块链分叉(区块链分叉的本质就是网络各节点对区块链的生成产生分歧,无法达成共识)。但是PoS则需要精心设计好相应的规则来防止分叉,例如PoS可以设定惩罚机制,参与挖矿的矿工被要求锁定一定数量的虚拟资产。如果他们被侦测到了存在不当的行为,则系统会没收全部或部分被锁定的虚拟资产。

三.DPOS(Delegated Proof of Stake)

DPoS机制,中文名叫做股份授权证明机制(又称受托人机制),它的原理是让每一个通证的节点进行投票,选出集中多数票的节点,例如100个,然后这些节点会行使类似POS的权力。

DPOS利用利益相关方批准投票的权力以公平和民主的方式解决共识问题,所有网络参数,从费用估算到块间隔和交易规模,都可以通过选定的代表进行调整。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。

四.PBFT(Practical Byzantine Fault Tolerance)

Practical Byzantine Fault Tolerance,实用拜占庭容错算法。

拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。很多经典算法问题只有在t小于n/3时才有解,如拜占庭将军问题,其中n是系统中进程的总数。

五.BFT-DPoS

BFT-DPoS,Byzantine Fault Tolerance - Deligated Proof of Stake,带有拜占庭容错的委托股权证明。

EOS的白皮书中,每个见证人出块时全网广播,其他见证人收到新区块后,立即对此区块进行验证,并将验证签名完成的区块立即返回出块见证人,不需等待其他见证人自己出块时再确认。从当前的出块见证人看来,他生产了一个区块,并全网广播,然后陆续收到了其他见证人对此区块的确认,在收到 2/3 见证人确认的瞬间,区块(包括其中的交易)就不可逆了。交易确认时间大大缩短,从 45 秒缩短至 3 秒左右(主要为等待生产区块的时间)。

EOS原来是采用DPoS,为了效率采用PBFT 和 DPOS结合的BFT-DPoS,理论确认速度大大提升。因为EOS在设计之初就提出了选出21个超级节点作为见证人,并负责全网的出块,所以被人诟病缺失了区块链的去中心化精神。实际上,比特币、以太坊这些前辈,经过了前期的发展后,大部分算力已经集中在各大矿池和机构手上了,所以EOS只是提前把这个生态确定下来,并写在台面上,才会有这样的非议。

EOS的这种妥协,其实是兼顾了中心化和效率,是区块链上一个有益的尝试。


相关文章和视频推荐

【许晓笛】详解 EOS 的新共识机制 BFT-DPoS

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。

公开课地址:https://ke.qq.com/course/345101

原文地址:https://www.cnblogs.com/yuanfangyuan/p/10035616.html

时间: 2024-10-07 22:11:48

区块链主流共识算法的相关文章

区块链的共识算法 及 分叉 的通俗讲解 (一)

作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: https://cloud.tencent.com/developer/user/1148436/activities 本文不做一般入门的区块链描述讲解.着重简述讲解: 区块链的分叉 共识算法 目录

区块链共识算法实现

最近对区块链的共识算法比较感兴趣,也在尝试着使用JAVA实现它.进度不是很快,日积月累吧,目前在写POW,RAFT. POW还有一小块部分没有搞明白,还在搜索资料中. RAFT实现了第一个阶段:LEADER选举,使用了JAVA,MAVEN,DOCKER实现.虽然还有一些小瑕疵,慢慢来吧. 附上GitHub地址,希望各位大佬可以指点迷津(主要还是自学进度太慢了). 原文地址:https://www.cnblogs.com/cbkj-xd/p/11614027.html

比特币与区块链

早上看到一则新闻,说比特币可能要分裂比特币现金,很多持有者可能会凭空多出很多财富,又联想到前端时间微信群中讨论的很火热的区块链的话题,记得当时有人曾说这可能是影响未来几年最重要的技术之一,觉得为看懂未来趋势,有必要再深入的了解一下区块链. 印象中区块链就是一个去中心化的分布式数据库,没有中心权威代理,就要解决信息点对点传递的真实有效性问题.下面转载一下刚看到的一篇不错的解释. 作者:maxdeath 代尔夫特理工大学 (TU Delft) 博士后区块链博士后,共识算法专家 链接:https://

区块链和比特币

何为区块链 ? 何为比特币? 比特币采用区块链技术, 但不等于比特币就是区块链 如果用一句通俗的话来概括:区块链,是一种(去中心化)技术,它解决的是市场经济中最核心的"信任"问题,把陌生人之间的信任成本降到极低的水平,对于中介成本很高或者缺乏信任场景的领域很适用区块链技术. 市场经济体制下,有一个很重要的问题就是信任, 如果没有信任, 任何交易都不可能成立. 曾经有一度我经常在想, 比如在初中 高中 大学的食堂, 如果有丧心病狂的人在饭菜里下毒那可怎么办? 困惑了我很久, 还好我没有遇

说信任区块链时究竟在信任什么?

FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行.亦笔科技和越秀金科等金链盟成员机构. 代码仓库:https://github.com/FISCO-BCOS 大家好,我是张开翔. 如你所见,[FISCO BCOS开源社区]开通了,很高兴和你在此以文相会.这个号将由你,由我,由FISCO BCOS背后117家成员单位的工程师们,乃至社区沉淀下来的数千

解密区块链最强心脏 迅雷链共识算法详解

11月10日在广州贝塔咖啡举办的迅雷链技术沙龙上,迅雷链底层工程师张骁就迅雷链共识算法的内在细节,向到场的开发者和区块链爱好者做了详细解读.DPoA+PBFT的算法保证了分布式系统中的强一致性和高效率共识,吸引了在场来宾的关注. 什么是共识算法? 张骁认为,区块链建立在分布式系统上,有若干个节点,每个节点都会维护自己的数据,这些数据需要保证一致性.如果不同的节点提供的数据不同,就不是一个能够正常对外工作的分布式系统.所以在区块链中,需要把这些数据通过复制和同步,来保持一致性,这个过程就叫做共识.

区块链共识机制及其迭代

共识,Consensus,故名思义,共同的认识,共识问题研究的就是多个成员如何达成一致,典型的比如投票选举. 区块链是一种去中心化的分布式账本系统,区块链的共识问题实际上来源于分布式系统的一致性问题. 分布式一致性问题 区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,各个节点所观察到的交易事务先后顺序不可能完全一致. 因此区块链系统需要设计一种机制对在一定的时间内发生的事务的先后顺序进行共识.这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”. 共识机

区块链项目的分类和共识机制介绍

从目前主流的区块链项目来看,区块链项目主要分为四类:①币类②平台类③应用类④资产代币化. 币类主要充当区块链资产领域的"交换媒介",交换媒介指一般等价物,比如以前的黄金.银票等:平台项目类是指建立技术平台,用于满足各种区块链应用开发,可以降低在区块链上开发应用的门槛:应用类项目范围比较广泛,涵盖金融.社交.游戏.产权保护等诸多领域,也是目前区块链资产增长最快的领域:资产代币化项目是指是实物资产的区块链映射,也就是实物资产上链,目前不超过10个品种. 区块链的共识机制是什么? 在区块链系

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

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