一.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=1007330

【船长】区块链主流共识算法相关推荐

  1. 六、区块链主流共识算法浅析

    转自:http://www.cocoachina.com/cms/wap.php?action=article&id=22240. 一.概述: 1.工作量证明(Proof of Work): ...

  2. 投票选举 算法_区块链主流共识算法一文全通

    在每种伟大的加密货币背后,都有着一个伟大的共识算法.没有共识算法是完美的,但是它们各有千秋.在加密世界中,需要共识算法来防止重支付.这是迄今为止一些最流行的共识算法的简要介绍,从区块链到DAG以及介于 ...

  3. 第十一课 区块链常用共识算法介绍

    上一节课我们学习了共识算法理论基础,今天我们继续深入学习区块链共识算法,通过这节课我们将了解工作量证明.权威证明.权威授权证明.实用拜占庭容错等相关内容. 在学习课程的时候,你也可以领取BaaS平台为 ...

  4. 区块链开发公司:区块链技术共识算法的新玩法

    共识算法是什么? 共识机制就是用来解决分布式系统的一致性问题,其核心为在某个协议(共识算法)保障下,在有限的时间内,使得指定操作在分布式网络中是一致的.被承认的.不可篡改的.在区块链系统中,特定的共识 ...

  5. 区块链常见共识算法总结

    这两年,区块链的技术可以说是非常的火爆,不了解点什么都不好说自己是在互联网混的,有人将区块链称之为互联网2.0,可以说区块链将对现有的互联网技术进行改造升级.那么,就让我们一起来了解下什么是区块链吧. ...

  6. 区块链常见共识算法(consensus)

    什么是共识(consensus)? 共识一词在区块链中尤为重要,并且与更广泛的问题有关在分布式系统中同步状态,使得分布式系统中的不同参与者都(最终)就一个系统范围的状态达成一致,这被称为"达 ...

  7. 区块链新一代共识算法:VRF分布式可验证随机函数

    背景 共识分代 假设一个小岛,没有法币,由101个对等的没有隶属关系的记账人来记录小岛的经济活动(也就是所谓去中心化记账).这样的设计,冗余性应该非常好,某个记账人出问题了不影响整个系统,最大的麻烦是 ...

  8. BC之CM:区块链之共识机制——深入浅出以及国内外当下主流区块链平台共识机制纵向、横向比较相关配图

    BC之CM:区块链之共识机制--深入浅出以及国内外当下主流区块链平台共识机制纵向.横向比较相关配图 目录 区块链共识机制的深入浅出 国内外当下主流区块链平台共识机制纵向.横向比较 区块链共识机制的深入 ...

  9. 《迅雷链精品课》第三课:区块链主流框架分析

    上一节课我们学习了区块链的技术架构,系统地分析了区块链平台的6个层次:数据层.网络层.共识层.合约层.应用层.接口层.这节课我们将结合实际看看现在主流区块链项目的技术架构:思考我们在设计具体的业务架构 ...

最新文章

  1. idea上实现github代码同步
  2. linux 串口minicom配置使用
  3. Ovirt 安装部署方法
  4. Java8的集合:LinkedList的实现原理
  5. 蓝桥杯【介绍】和【如何准备才可以拿奖】
  6. rabbitmq进阶一
  7. 洛谷P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
  8. 有东西,可以倚老卖老,可以倚少卖少
  9. 1.分布式服务架构:原理、设计与实战 --- 分布式微服务架构设计原理
  10. 《追风筝的人》的寓意读后感3200字:
  11. cad计算机绘图实操视频,CAD电脑绘图教程视频
  12. Unity语音合成-初识有道语音合成
  13. 【CDN加速】项目前端性能优化之开启CDN加速
  14. PHP编程中 @符号的作用
  15. Java开发需要学什么!中原银行java面试题目
  16. YAML Syntax Error Duplicated mapping key at line 62, column 24: description: 城市主键
  17. mx550和锐炬xe显卡差距大 锐炬xe显卡和mx550区别哪个好
  18. 杭州电子科技大学研究生计算机专业目录,杭州电子科技大学2017年硕士计算机学院招生目录.pdf...
  19. 2021-10-13爬虫requests总结
  20. Checkboxes(复选框)

热门文章

  1. word自动生成章节标题
  2. cool-admin框架前端使用-vue3版本,useUpsert使用
  3. Android定时器Timer简单使用
  4. 外媒披露斯诺登如何从香港逃脱:接受难民庇护
  5. 计算机主机可以有几块硬盘,系统显示几个硬盘真的代表主机里有几块硬盘吗?...
  6. 写python脚本管理_如何用python脚本控制TPLINK路由器
  7. python中until的用法_Shell脚本中循环语句for,while,until用法
  8. tomcat网站测试linux,【实战演练】Linux操作系统07-用tomcat搭建网站
  9. n1 openwrt 挂载u盘_openwrt 挂载U盘/硬盘+交换分区
  10. 【星界探索——通信卫星】铱星:从“星光坠落”到“涅槃重生”,万字长文分析铱星卫星系统市场