什么是共识机制
区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识机制。

为什么需要共识机制?
在分布式系统中,各个不同的主机通过异步通信方式组成网络集群。为了保证每个主机达成一致的状态共识,就需要在主机之间进行状态复制。异步系统中,可能会出现各样的问题,例如主机出现故障无法通信,或者新能下降,而网络也可能发生拥堵延迟,类似的种种故障有可能会发生错误信息在系统内传播。因此需要在默认不可靠的异步网络中定义容错协议,以确保各主机达成安全可靠的状态共识。所以,利用区块链构造基于互联网的去中心化账本,需要解决的首要问题是如何实现不同账本节点上的账本数据的一致性和正确性。

共识机制有哪些?
常见的共识就机制包括:POW(工作量证明机制)、POS(权益证明机制)、DPOS(股份授权证明)POW+POS(混合共识机制)等等,另外还有Pool验证池、Ripple瑞波共识协议等等

比特币的去中心网络采用的是工作量证明共识机制。

去中心网络之所以需要共识机制,是因为这是一个非基于信任(non-trust-based)的网络,任何人无须许可都可以接入这个网络。并且,这些节点分散在网络条件差异非常大的全球互联网之中。在完全无中心的情况下,这些节点要同步一致,共识机制即为这些节点达成一致的机制。

关于分布式网络的共识机制,有著名的“Fisher-Lynch-Paterson 不可能结果”,即在一定条件下达成共识是不可能的。而比特币的工作量证明共识机制在实践中被验证是有效的。这是因为它采用了一个实用主义的解决方案。

POW(工作量证明机制)
PoW(工作量证明机制) 共识机制
PoW(Proof of Work),即工作量证明,闻名于比特币,俗称“挖矿”。PoW是指系统为达到某一目标而设置的度量方法。简单理解就是一份证明,用来确认你做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。PoW是按劳分配,算力决定一起,谁的算力多谁记账的概率就越大,可理解为力量型比较。以下内容基于比特币的PoW机制。
工作量证明( PoW )通过计算一个数值( nonce ),使得拼揍上交易数据后内容的 Hash 值满足规定的上限。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。
如何才能创建一个新区块呢?通过解决一个问题:即找到一个nonce值,使得新区块头的哈希值小于某个指定的值,即区块头结构中的“难度目标”。
如果验证通过,则表明已经有节点成功解迷,自己就不再竞争当前区块打包,而是选择接受这个区块,记录到自己的账本中,然后进行下一个区块的竞争猜谜。网络中只有最快解谜的区块,才会添加的账本中,其他的节点进行复制,这样就保证了整个账本的唯一性。

假如节点有任何的作弊行为,都会导致网络的节点验证不通过,直接丢弃其打包的区块,这个区块就无法记录到总账本中,作弊的节点耗费的成本就白费了,因此在巨大的挖矿成本下,也使得矿工自觉自愿的遵守比特币系统的共识协议,也就确保了整个系统的安全。

工作机制
为了使区块链交易数据记录在区块链上并在一定时间内达到一致(共识),PoW提供了一种思路,即所有区块链的网络节点参与者进行竞争记账,所谓竞争记账是指,如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明谜题,谁先解出答案,谁就获得记账权利,然后开始记账并将将解出的答案和交易记录广播给其他节点进行验证,自己则开始下一轮挖矿。如果区块的交易被其他节点参与者验证有效并且谜题的答案正确,就意味着这个答案是可信的,新的节点将被写入验证者的节点区块链,同时验证者进入下一轮的竞争挖矿。
这道题关键的三个要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块决定了这道题的输入数据,难度值决定了这道题的所需要的计算量。

首先看一下这道题到底是什么?这道题的目的在于算出一个值,且这个值小于目标值即可,这个值就是上图中的上一个区块的哈希值。

目标值 = 最大目标值 / 难度值(最大目标值恒定:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 )
tips:难度值是随网络变动的,目的是为了在不同的网络环境下,确保每10分钟能生成一个块。

那如何计算呢?SHA256(SHA256(Block_Header)),即只需要对区块头进行两次SHA256运算即可,得到的值和目标值进行比较,小于目标值即可。区块头结构如下:

区块头中有一个重要的东西叫MerkleRoot的hash值。这个东西的意义在于:为了使区块头能体现区块所包含的所有交易,在区块的构造过程中,需要将该区块要包含的交易列表,通过Merkle Tree算法生成Merkle Root Hash,并以此作为交易列表的摘要存到区块头中。

至此,我们发现区块头中除过nonce以外,其余的数据都是明确的,解题的核心就在于不停的调整nonce的值,对区块头进行双重SHA256运算。整个工作量证明过程如下:

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

PoW的优点:完全去中心化,节点自由进出。

PoW的缺点:目前比特币已经吸引全球大部分的算力,其他再使用PoW共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长。

使用PoW的项目有:比特币、以太坊前三个阶段——Frontier(前沿)、Homestead(家园)、Metropolis(大都会)。以太坊的第4个阶段,即Serenity(宁静),将采用权益证明机制。

比特币的工作量证明的关键特点是,它巧妙地融合技术和经济因素,不只是纯粹通过技术本身来达到这一点,而是纳入了与自身作为一个数字现金系统相关的挖矿奖励。按《比特币:技术驱动金融》一书的分析,比特币的共识机制有两个与过去不同的特点,我们略做引申讨论。

一、它引入了奖励机制
在这样一个加密数字货币应用中引入了经济激励,维护网络的节点就可以得到有价值的比特币作为奖励。

为什么比特币网络中的节点们愿意打包交易、维护账本?它们并非出于“善意”,而是因为,它们能因这些挖矿行为获得比特币形式的经济激励。这是一个自行发行的电子现金系统的独特优势,如果所开发的是其他没有自行发行代币的 IT 系统,我们就无法设计矿工挖矿奖励这样的经济激励机制。

激励挖矿节点参与挖矿的,除了与新区块相关的奖励之外,挖矿节点还可以得到区块中包含的所有交易付出的交易费。但到目前为止这个数值还较小,大概为新区块奖励的 1%。

二、它包含了随机性的概念
比特币系统形成的共识不是完全可靠的,但是在等待了 6 个区块约 1 个小时之后,出问题的概率呈指数级下降。在 6 个区块之后,一个交易发生双花情况的概率可被认为是零。从纯理论上看,完美的共识不可能达成,但从实用的角度看,这个共识是可信的。

06.工作量证明共识机制 pow相关推荐

  1. 区块链共识机制技术一——POW(工作量证明)共识机制

    什么是共识机制 所谓"共识机制",是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认:对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共 ...

  2. 区块链共识机制技术一--POW(工作量证明)共识机制

    什么是共识机制 所谓"共识机制",是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认:对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共 ...

  3. 四-1,区块链共识机制---POW

    共识是区块链中非常重要的一环,从技术上来讲,共识的目的是为了使得交易达成一致,避免"双花"等问题的出现,而从社会治理角度来讲,共识其实决定了区块链社会当中的经济形态,解决的是我为什 ...

  4. 共识机制:区块链技术的根基

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. Chapter-1:什么是共识机制? 技术定义是:共识机制是一个群体决策的流程,群体中的个体会执行和支持对群体其他个人最 ...

  5. 区块链技术之共识机制

    "共识机制"一词通常通俗地用于指代"股权证明"."工作证明"或"权威证明"协议.然而,这些只是防止女巫攻击的共识机制的组 ...

  6. 张晓论币:以太坊完成最终升级,为何要换共识机制?

    2013年年末,以太坊创始人Vitalik Buterin发布了以太坊初版白皮书,这个有着智能合约功能的公共区块链平台走入大众的视野.作为区块链底层开发平台,为了能够让自身网络更好的满足DApp开发需 ...

  7. 第四章 区块链共识机制

    第四章 区块链共识机制 1.概述 2.工作量证明共识机制 2.2 交易优先级 2.3 数学难题 2.3.1 数学难题 2.3.2 动态调整难度 2.4 最长链原则 2.5 作用 2.6 缺点 3.其它 ...

  8. 多币种钱包开发:什么是工作量证明(POW)?

    2019独角兽企业重金招聘Python工程师标准>>> 任何区块链网络中最重要的组成部分之一是它用于就其分类账的状态达成共识的机制.这些机制被称为一致性算法,今天的加密数字资产使用的 ...

  9. 从工作量证明(POW)到高阶工作量证明(HPOW)

    1 介绍 工作量证明机制作为抗女巫攻击的重要手段,已成为区块链和加密货币领域的主流机制之一,目前已广泛使用于一些主流的数字货币系统如比特币.以太币等.这一机制最早由Cynthia Dwork和Moni ...

最新文章

  1. Android之使用Jsoup抓取网络数据
  2. 【Git】git的基本使用
  3. 1、leetcode704 二分查找*
  4. 为什么将表格的method改为post后就无法工作_用Python将Keras深度学习模型部署为Web应用程序...
  5. Relu神经网络输出预测全为0或1,对所有输入样本的预测概率也相同
  6. Cloud一分钟 | 阿里云将在英国大区设立数据中心
  7. linux批量执行一个脚本文件,shell脚本示例:批量比较多个文件的内容是否相同...
  8. [数据结构与算法] : 栈的链式实现
  9. 的谐音非诚勿扰_《菲诚勿扰》全网通缉24位女嘉宾
  10. 不加载任何包,手撕一个R语言版BP神经网络模型
  11. c语言语法分析常见问题,C语言语法提要与常见错误分析.doc
  12. 由一次NoHttpResponseException异常,追究到Http长连接和短连接
  13. Google 开通免费主机服务,如果你有email帐户,你就可以注册,目前最多只能存放40页面...
  14. 自动售货机软件工程课设_饮料自动售货机系统实验.docx
  15. java xml解析 jdom_Java语言中XML的JDom解析方式
  16. 桥接、交换机、路由器、网桥、网关
  17. 试用新版Windows Home Server 2011 (Vail)
  18. 谷歌地图 图片保存_Google如何在地图上跟踪并保存您的一举一动
  19. 文件类型关联的文件图标
  20. JavaWeb开发与代码的编写(一)

热门文章

  1. android 标题导航栏,NavigationBar
  2. Sequelize使用
  3. 往事随风 ——记我的OI生涯
  4. 10年市场经验总结:最适合中国人的十大销售策略
  5. 2023最新Python阅读书籍推荐
  6. 游历魔法王国——网易校招
  7. Linux - centos7下安装was8.5
  8. 基于ffmpeg与nvidia-video-sdk-8.1.24视频硬解与软解多路rtsp,支持Qt的QOpenglWidget与qml接口显示
  9. SpringBoot高级教程(转)
  10. 正则表达式是如何让你的网页卡住的(优化100ms到2ms)