Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >区块链主流共识算法

区块链主流共识算法

原创
作者头像
圆方圆学院
修改于 2019-01-08 13:35:01
修改于 2019-01-08 13:35:01
1.1K0
举报

一.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?flowToken=1007371

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从拜占庭将军问题看:区块链「 共识算法 」
而由于地域上特殊原因,你们这10支军队不能集合在一起单点进攻,必须在分开的状态下同时包围攻击敌国。如果是单支军队单独进攻的话是毫无胜算的,除非有至少有6支军队同时调遣一起袭击才能攻下敌国。你们分散在敌国的四周,依靠通信兵相互通信来协商进攻意向和进攻时间。
奎哥
2018/08/31
1.1K0
从拜占庭将军问题看:区块链「 共识算法 」
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
在区块链的交流和学习中,「共识算法」是一个很频繁被提起的词汇,正是因为共识算法的存在,区块链的可信性才能被保证。
区块链大本营
2018/12/20
3.2K0
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
【许晓笛】详解 EOS 的新共识机制 BFT-DPoS
EOS 最新的白皮书中已经将共识机制从 DPoS 升级为了 BFT-DPoS(Byzantine Fault Tolerance - Deligated Proof of Stake,带有拜占庭容错的委托股权证明),本篇文章将详解新共识机制的原理。
圆方圆学院
2018/11/11
1.7K0
【许晓笛】详解 EOS 的新共识机制 BFT-DPoS
公链常用的共识算法
值得注意的是,一些公链会随着时间的推移而改变其共识算法,以适应技术和网络需求的变化。例如,以太坊从工作量证明(PoW)过渡到了权益证明(PoS)。同时,新的公链和共识算法持续出现,推动着区块链技术的边界。
终有链响
2024/07/29
1800
区块链共识机制的演进
FLP 不可能原理(FLP impossibility):在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。1985年 FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成。 科学告诉你什么是不可能的;工程则告诉你,付出一些代价,我可以把它变成可能。
深蓝studyzy
2022/06/16
1.1K0
区块链共识机制的演进
区块链中常用共识算法总结
实际使用过程中,每个节点需要打包的交易数据相同,再从尾部加一个随机数(节点自己选)作为整体输入来求输出值,把结果和当前的挖矿难度对比(要求输出值前x位为0),满足条件则向附近节点广播;不满足则更换随机数继续求解。最快求得解的节点,则可以视为挖矿胜出,取得其他节点的共识。
洞链
2019/03/27
9980
区块链基础知识(下):共识机制 附带图解、超详细教学!看不懂你打死我
共识算法是用于保证分布式系统一致性的机制。这里的一致性可以是交易顺序的一致性、账本一致性、节点状态的一致性等。一般地,我们根据容错类型将共识算法分为两类。
苏泽
2024/03/12
1.6K0
区块链基础知识(下):共识机制 附带图解、超详细教学!看不懂你打死我
区块链基础知识(下):共识机制 附带图解、超详细教学 看不懂你打死我
本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~
苏泽
2024/05/24
9210
区块链基础知识(下):共识机制 附带图解、超详细教学 看不懂你打死我
EKT多链技术谈 | 主流共识机制解析
为了解决拜占庭将军问题,达成去信任的分布式网络中的一致性,区块链技术的几种共识机制陆续被提出,根据选择生成区块节点的方式、节点确认区块的方式等,不同的共识机制在去中心化程度、高效低能耗性、安全性上做出了取舍,对于不同功能的区块链各有其注重的要点,共识机制的选择往往成为决定一个区块链成败的一大因素。当前主流的共识机制主要有PoW、PoS、DPoS、Paxos等,这几种各自又演化改进产生了不同版本。
风中凌乱的靓仔
2019/03/22
5790
EKT多链技术谈 | 主流共识机制解析
共识机制
区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识机制。
用户2909867
2019/03/29
8920
【深度知识】25种区块链共识算法全面详解
本文尽可能列出所有主要的共识算法,评估各自的优劣之处。共识算法是区块链的核心技术,本文会跟随作者的理解,持续更新。如果读者发现有所遗漏,或是存在错误,希望能通过评论指出。
辉哥
2020/07/28
14.9K2
【深度知识】25种区块链共识算法全面详解
区块链是什么(下)?凭什么他可以记账,共识机制有话说
上篇《区块链是什么?读完这篇文章你就掌握70%区块链入门》的末尾有个问题:区块链网络上的陌生人出于什么承认区块的有效性?他们为什么愿意苦哈哈地帮助记账?现在,我们开始学习另外这30%的基础知识。
互链脉搏
2018/05/18
2K0
区块链是什么(下)?凭什么他可以记账,共识机制有话说
【许晓笛】重新理解EOS的系统架构
如果区块链智能合约系统想追求类似比特币的去中心化程度,理论上效率就会大打折扣。现实也是这样的:比特币每秒钟只能处理7笔左右的交易,每一笔交易要用至少30分钟才能确认,这种效率和速度是远远不如银行转账的。作为一个全球资产交易平台,比特币这样的效率或许可以接受,但对于智能合约平台这样的效率是远远不够的。因为在智能合约中,每一个动作都可以看成是一笔交易,例如五子棋游戏合约中,每下一步棋就是一个交易,用户是无法等待半个小时才能确认一步棋的。所以想要实现真正实用的智能合约平台,就要脱离比特币系统的架构,寻找新的系统组织形式。
圆方圆学院
2018/11/11
1.3K0
从原理到实例,他用区块链技术做一了个COIN 客户端
基本原理和设计 2008年初,中本聪团队发布了一篇名为“比特币:一种点对点的电子现金系统”学术论文,之所以选择在金融危机这年发布,也许别有深意。他认为传统货币最根本的问题在于信任,银行必须让人相信,它
CSDN技术头条
2018/03/26
2.6K0
从原理到实例,他用区块链技术做一了个COIN 客户端
百花村区块链山的选民们, 超有趣!
百花村旁有一座山叫区块链山,属村民集体所有。村外的A公司准备开发区块链山的旅游资源。A公司和村民委员会联合成立了百花旅游开发有限公司,签了股份制合作协议。以下是春节假期期间发生在村民李大和柳五之间的对话:
区块链大本营
2019/05/24
6310
DPOS-( 代理权益证明)
DPOS全称是Delegated Proof of Stake,中文翻译过来是代理权益证明。
用户2909867
2019/03/29
2.6K0
DPOS-( 代理权益证明)
共识机制:区块链技术的根基
技术定义是:共识机制是一个群体决策的流程,群体中的个体会执行和支持对群体其他个人最好的决定。这是一个个体需要支持大多数人决定的解决方式,不管他们意愿如何。
cloudchainchina
2018/09/19
4.2K0
共识机制:区块链技术的根基
区块链共识算法之POW(1)
共识机制是区块链的核心基石,是区块链系统安全性的重要保障。区块链是 一个去中心化的系统,共识机制通过数学的方式,让分散在全球各地成千上万的节点就区块的创建达成一致的意见。共识机制中还包含了促使区块链系统有效运 转的激励机制,是区块链建立信任的基础。
随心助手
2019/10/15
2.2K0
谈谈区块链共识机制及其应用场景
最近大火的区块链到底解决了什么问题?其实解决的是建立了一套让一群互不信任的人达成共识的机制。
金融民工小曾
2019/10/30
1.4K0
016 | 漫谈区块链共识机制
并标明原文链接:http://keeganlee.me/post/blockchain/20180425微信订阅号:keeganlee_me写于2018-04-25
Keegan小钢
2018/08/10
1.1K0
推荐阅读
相关推荐
从拜占庭将军问题看:区块链「 共识算法 」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档