单元六 区块链中的共识算法_第1页
单元六 区块链中的共识算法_第2页
单元六 区块链中的共识算法_第3页
单元六 区块链中的共识算法_第4页
单元六 区块链中的共识算法_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

区块链共识算法ConsensusalgorithminblockchainCONTENTS目录共识算法的基本概念共识算法的基本原理三.

共识算法的分类PART1共识算法的基本概念共识算法的定义区块链中的一个核心概念是去中心化,在区块链中没有和传统数据库系统一样的中心数据库,每个节点都是对等的如何让每个节点通过一定的规则将各自的记账保持一致是非常关键的问题,这个问题的解决方案就是共识算法。共识算法的存在可以有效保证各个节点之间按照既定的原则共同维护账本。其本质上是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。PART2共识算法的基本原理共识算法的基本原理从应用角度出发,共识算法是区块链网络采用分布式账本以及P2P数据传输方法的有效补充。基于分布式账本技术,新数据的产生往往不能被所有节点获取并存储,而P2P数据传输采用的通信协议仅仅只能提高数据的传输稳定性,并不能保证节点间数据的一致性。在区块链中引入共识算法就是为了实现区块链网络中所有节点数据的“一致性”。共识算法的作用共识算法的具体流程共识算法的具体流程PART3共识算法的分类基于选主策略的分类选举类共识:矿工节点在每一轮选举过程中通过投票的方式选出本轮的记账节点,(因此也叫投票类共识,)获得半数以上选票的矿工获得记账权。常见于传统式分布式一致性算法,例如Paxos和Raft。常用拜占庭容错共识算法也是一种选举类共识证明类共识:矿工节点需要证明自己具有某种特定的能力,证明的方式通常是竞争性地完成某项难度很高的任务,在竞争中胜出的矿工节点将获得记账权。例如PoW工作量证明和PoS权益证明分别是基于矿工的算力和权益来完成随机数搜索任务。随机类共识:矿工节点随机决定每一轮的记账节点。此类算法现在的应用比较少见,例子有Algorand和PoET。联盟类共识:矿工节点基于某种特定方式首先选出一组代表节点(Delegates),然后代表节点轮流或抽签作记账节点。例如DPoS共识算法。混合类共识:即采用多于一种共识算法来选择记账节点,例如PoW+PoS混合共识,DPoS+BFT混合共识。基于部署方式的分类公有链共识:适用于如比特币系统的公有链系统,这类共识去中心化程度高,人人都可参与,因此需要能解决包括恶意攻击在内的拜占庭故障,技术效率偏低。联盟类共识:适用于联盟链,去中心化程度低于公有链共识,但技术效率远高于之。譬如超级账本Fabric使用的PBFT共识算法。私有链共识:适用于私有链的共识算法,通常是完全中心化的,即有一个中心节点来提出共识建议,其他节点按照这个主意执行。常见例子有经典的Paxos和Raft共识算法。基于容错类型的分类拜占庭容错共识:能够处理拜占庭故障的共识算法,例如最典型的建立在拜占庭将军问题上的PBFT算法,和PoW算法。非拜占庭容错共识:不能容忍或处理拜占庭故障的共识算法,这类算法只能容忍故障-停止或者故障-恢复等普通的崩溃故障。例如最著名的Paxos和Raft。基于容错类型拜占庭容错共识费拜占庭容错共识感谢观看单元六区块链中的共识算法CommunicaitoninNodesCONTENTS目录共识算法的基本原理工作量证明共识算法(PoW)三.实战练习PART1共识算法的基本原理共识算法的作用共识算法的具体流程共识算法的具体流程PART2工作量证明共识算法(PoW)共识算法的定义工作量证明(ProofofWork,PoW)算法是目前公有链中最常用的区块链算法,其本质是基于区块头进行多次哈希运算后得出符合相应目标值要求(区块难度Difficult)的值,以此方式确保区块链中新区块的准确性和一致性。共识算法的实现过程(1)取出目标区块的区块头摘要信息,整合摘要信息后加上“随机数(Nonce)”;(2)将获得的值通过哈希算法计算得到哈希值;(3)将得到的哈希值与目标值比对;(4)若哈希值小于区块难度则“挖矿”成功,否则将“随机数(Nonce)”加1,重复执行步骤1。共识算法的实现过程目标值的生成方式PoW算法需要反复通过哈希函数得到新的哈希值并与目标值比较。这个过程将占用大量的计算机资源,目标值的设计决定区块生成的难度。一般地,目标值以区块难度(Difficultbits)存储于区块头中,以4个字节存储。在这4个字节中,其中1个字节表示指数(exponent),后3个字节表示系数(coefficient)。由于1个字节有8位并且1个16进制的数表示4位,区块难度可以表示为0x1e11ffff,如下为以0x1e11ffff为区块难度的组成。目标值的生成方式但是,区块难度并不能直接运用于PoW算法中作为目标值,需要按如下公式作数据值的变化:将示例的区块难

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论