共识机制作为区块链的关键技术之一,在业务吞吐量、交易速度、不可篡改性、准入门槛等等方面发挥重要的作用。

区块链是去中心化的,没有中心记账节点,所以需要全网对账本达成共识。目前有POW、POS、DPOS、POOL四种共识机制。

首先从“拜占庭将军问题”开始(简书:中本聪与拜占庭将军问题),

用区块链技术中非对称加密可信的分布式网络解决拜占庭将军问题中的共识问题。

非对称加密

可以解决古代难以解决的签名问题:

  • 消息传送的私密性
  • 能够确认身份
  • 签名不可伪造、篡改

作用:保护消息内容, 并且让消息接收方确定发送方的身份

分布式记账场景

入门经典共识机制:

PoW(Proof of Work,工作量证明)

“解决一道数学难题”

“电脑性能越好,挖矿时间越长,获得的回报也越多。”

概念:工作量证明,引入了对一个特定值的计算工作。

POW共识算法应用场景:比特币(BTC)及其引申出来的BCH、BCD等

算法工作描述:

  1. 矿工们在挖一个新的区块时,必须对SHA-256密码散列函数进行运算,区块中的随机散列值以一个或多个0开始。
  2. 随着0数目的上升,找到这个解所需要的工作量将呈指数增长,矿工通过反复尝试找到这个解。

解决问题:

  1. 谁有权记账
  2. 如何避免记账者作弊

优点:

算法简单,采用大家认可的数学逻辑(找寻随机数),容易实现。安全系数最高,破坏整个系统,需要投入巨大成本。

缺点:

  1. 大量消耗能源。
  2. 它的价值回路必须要通过外部输入。也就是说,采用POW的数字货币仍旧不是理想状态的数字货币,因为它们的安全性不直接与使用者相关,而是要通过矿工这个媒介。

POS(Proof of Stake,权益证明)

“拥有的币越多,有记账权的概率就越大?”

因为POW大量消耗能源和安全性不与使用者相关的问题,POS的出现可以解决这些问题:

  1. 采用POS的货币的安全性直接与使用者相关,省去了矿工这个媒介。
  2. POS简单说就是,每当发表一条消息的时候,不用证明你付出了什么代价,而要证明你拥有一定数量的钱。而拥有钱代表着,如果你作弊损害了这个系统的安全性,你的钱会贬值,这变相地让你付出了代价。
  3. 这东西更好的一点是,如果采用POS,实际上连挖矿奖励都不需要,因为POS实际上不需要付出任何代价。

概念:

试图解决POW机制中大量资源被浪费的情况。这种机制通过计算你持有占总币数的百分比,包括你占有币数的时间来决定记账权。

POS应用场景:...

优点:不需要拼算力挖矿,不会浪费电力。缩短了共识达成的时间,效率提高。

缺点:

  1. 拥有权益的参与者因为可以持币吃利息,所以卖币意愿不强烈,容易产生垄断。
  2. 所有的确认都只是概率上的表达,存在其他攻击的可能性。挖矿成本低,硬分叉十分容易。

DPOS(Delegated Proof of Stake,委任权益证明)

PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)

POOL(验证池)

学习资料:

POW、POS共识机制

知乎POW、POS问答

区块链共识机制:POW、POS、DPOS、PBFT、POOL的更多相关文章

  1. (转)区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点

    近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...

  2. [转帖][区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得

    [区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得 置顶 2017-03-12 18:31:19 乐扣老师lekkoliu 阅读数 127953  收藏 更多 分类专栏: 技术管理 区 ...

  3. [区块链] 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)

    近几天对区块链中几种常见的共识机制(PBFT,Raft,PoW,PoS,DPoS,Ripple)进行了总结.尽量使用简单易懂语言,篇幅较大,想了解的可以只读每个算法介绍中前边的原理.本篇文章主要参考& ...

  4. 区块链共识机制(POW、POS、DPOS等)的优缺点

    一.POW:工作量证明机制 基本原理: 第一代共识机制,比特币的基础.理解起来,很简单,就是“按劳取酬”,你付出多少工作量,就会获得多少报酬(比特币等加密货币).在网络世界里,这里的劳动就是你为网络提 ...

  5. 区块链共识机制之工作量证明(POW)

    像比特币.以太坊.NXT.Bitshares等这些区块链系统,其本质上是一种加密经济组织,它建立在点对点网络上,是去中心化.无管辖的,由密码学.经济学和社会共识来共同维护.这些加密网络因各种原因有着多 ...

  6. 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网

    任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技 ...

  7. 老K漫谈区块链的共识(3)——分布式系统和区块链共识

    1. 啥是分布式系统 当我们评价一个新的事物或者介绍一个新的技术的时候,我们不能架空历史和环境,新的事物不可能脱离历史和环境凭空诞生.任何新的事物和新的技术总是或多或少的,与旧的事件以及过去的技术有所 ...

  8. 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述

    共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今PO ...

  9. 区块链共识算法|RAFT和PBFT的区别

    这里有个很形象的比喻: 一个团队一定会有一个老大和普通成员.对于 raft 算法,共识过程就是:只要老大还没挂,老大说什么,我们(团队普通成员)就做什么,坚决执行.那什么时候重新老大呢?只有当老大挂了 ...

随机推荐

  1. WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足

    现象监控发现sysaux表空间使用不断增加,导致表空间不足 查看过程 查看版本: SQL> select * from v$version; BANNER CON_ID ------------ ...

  2. WPF显示图片

    1.WPF显示图片内部一部分 <Rectangle Height="> <Rectangle.Fill > <ImageBrush ImageSource=&q ...

  3. asp.net C# int 类型在32/64位环境下取值范围无变化

    最近在学习中突然想到,我在64位环境下,int取值范围是否有变化?为了检测这个结果,我做了以下这个测试:1.环境:win7旗舰版64位+vs2010 sp1(版本号:10.0.40219.1SP1Re ...

  4. 在Vue项目中使用vw实现移动端适配

    有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越 ...

  5. linux下zip包处理

    先来看例子: zip命令可以用来将文件压缩成为常用的zip格式.unzip命令则用来解压缩zip文件. 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip: # zip - ...

  6. 针对个别utf8编码站点在iis7上浏览器编码不能自动识别的解决方法

    个别utf8编码站点在iis7上客户端浏览器编码不能自动识别的编号,输入仍为gbk2312,而不是utf-8,这样导致我们看到的网站为乱码. 要解决这个问题,有两个方法,一为打开网站以后,右键,选择编 ...

  7. TCP/IP协议理解

    TCP/IP协议理解 一.    协议分层 由于ISO标准中的网络模型是个7层模型,但是由于7层模型对于当时的网络厂商来说太过复杂,很多厂家采用了简化的4层模型来实现网络设备,4层模型也就成了事实的网 ...

  8. 推荐几个Windows工具软件: ASuite - 便携的程序启动器

    主页: http://asuite.sourceforge.net 下载: http://sourceforge.net/projects/asuite/ ASuite is a lightweigh ...

  9. Java知多少(27)继承的概念与实现

    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...

  10. Java知多少(86)文本框和文本区的输入输出

    在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...