区块链原理与应用 课件 第5章 工作量证明共识协议_第1页
区块链原理与应用 课件 第5章 工作量证明共识协议_第2页
区块链原理与应用 课件 第5章 工作量证明共识协议_第3页
区块链原理与应用 课件 第5章 工作量证明共识协议_第4页
区块链原理与应用 课件 第5章 工作量证明共识协议_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

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

文档简介

工作量证明共识协议BitcoinBackbone模型Garay,Kiayias,Leonardosin[GKL14]

/2014/765第一个Bitcoin协议的正式抽象模型BitcoinBackbone正式定义了账本协议以及安全特性第一次正式分析了比特币实现的共识特性

系统模型为了便于分析,采用同步模型,时间分割为Round。每个参与者(矿工)具有相同的计算能力(flatmodel)。每个Round,每个参与者可以访问q次哈希函数,哈希函数抽象为随机寓言机(RandomOracle)消息通过广播方式传播给其他参与者攻击者可以随时访问网络(rushing)并且可以

重发、插入、记录消息

不能阻断诚实用户的消息

参与者模型系统总共有n个参与者其中t个参与者是

攻击者,攻击者可以协同工作诚实参与者互相独立,仅通过广播信道传播消息恶意参与者与诚实参与者的能力在证明部分描述

轮次结构为了便于分析,采用同步模型,时间分割为Round每轮中,参与者通过访问hash函数尝试生成新块并广播出去下一轮所有用户收到广播传播的新块Roundi结束Roundi+1开始Backbone协议(1)区块通过哈希值形成链式结构,结构的生成包括两个哈希函数G(),H(),分别用于内部数据压缩与工作量证明挖矿三个虚化函数为上层应用提供服务: I()-接受应用层输入 R()-接受网络数据 V()-检验交易数据Backbone协议(2)新区块产生:诚实用户采集输入信息生成:通过改变𝑐𝑡𝑟=0,1,2……,访问RO尝试新块如果满足下面条件即可生成一个有效新块:Backbone协议(3)网络广播:诚实用户如果产生了一个有效的新块,将扩展后的区块链通过广播传播给其他用户广播信道是匿名且无认证的Backbone协议(4)最长区块链原则:诚实用户选择本地的最长链作为输出PoW函数Validate函数Maxvalid函数主函数协议三个安全特性(非正式)CommonPrefix任意两个诚实用户除了最后少量区块,他们的最长区块链的前缀相同ChainQuality在任意足够长的连续区块中,一定有常数比例的区块由诚实用户生成ChainGrowth诚实用户的区块链长度保持增长,并且增长速度不会过低符号与假设n:矿工总数(按照flatmodel假设每个人的计算能力都一样)

t:恶意矿工总数δ:诚实矿工所占的优势

t=(n-t)(1-δ),0<δ<1q:每个矿工每轮可以做的RO查询数量p:每次查询成功出块的概率

简单推论在任意连续的s轮中X(s)是诚实节点成功的轮次Y(s)是恶意节点成功的总次数在任意连续的s轮中,大多数轮次没有新块产生因此,假设网络传播没有延迟,在大多数轮中,所有的诚实节点均在尝试延长同一条最长链

ChainGrowth证明准备几个观察:恶意节点无法缩短诚实节点最长链的长度任何诚实节点最长链的长度是随着时间单调递增的大多数轮次所有诚实节点具有相同的最长链推论:大多数诚实节点成功轮次将带来诚实节点最长链的增长ChainGrowth证明概要

ChainQuality证明准备几个观察:恶意节点无法阻止诚实节点产生区块并传播给其他节点恶意节点可以并仅可以通过竞争使得诚实节点产生的区块失效链的增长速度满足前述ChainGrowth特性推论:如果不是因为竞争失败,诚实节点所产生的区块将留存在最长链上ChainQuality证明概要

CommonPrefix证明准备令r0是C1,C2的最后一个公共区块产生的时间,s=r1-r0,考虑k是一个较大的参数如果C2在r1轮时C’2,长度显著小于C1,则在r2-r1轮内,C2反超C1的概率很小,与C2是P2的最长链矛盾如果C2在r1轮时C’2,与C1几乎长度相同(或者长于C1),那么在s轮内,产生了两个满足ChainGrowth的区块链,与前面的分析矛盾从一般情况到极端情况的转换AverageCase:按照统计概率积累足够时间得到的结果WorstCase:在最坏情况下可能出现的特例如:诚实用户算力是恶意用户的2倍,在统计概率下,一段时间内诚实用户生成的区块数量是恶意用户的2倍。在某个较短时期,恶意用户有概率生成的区块数量超过诚实用户。安全性分析应保证在WorstCase下的安全性切诺夫不等式对于二项式分布在前述定理讨论中,如果s足够大,则μ足够大。WorstCase偏离AverageCase的概率小于

网络延迟对于PoW安全性的影响

挖矿难度调整直觉:为了保证系统的安全性需要将每个轮次区块的出块概率设置为较小的值,也就是出块的时间间隔设置为一个较长的值。在比特币系统中,区块的出块间隔设置为10分钟。由于工作量证明系统中的算力是不断变化的,为了保证出块间隔的稳定需要对挖矿的难度动态调整。调整周期为2016个块,目标生成时间为2周。

自私挖矿攻击直觉:恶意矿工拥有一定比例的算力,当其成功挖出一个区块后,不公布该区块,而是试图在其后继续挖块诚实节点生成一个区块,则恶意矿工尝试用先挖优势与诚实区块竞争假设恶意节点所占算力为a,诚实节点所占算力为1-a竞争情况描述收益结果发生概率1恶意矿工在诚实节点出块前生成一个新块2a2恶意节点在诚实新块之前没有生成一个区块但是竞争成功1(1-a)/23恶意节点在诚实新块之前没有生成一个区块但是竞争失败0(1-a)/2

降低出块延迟后的树状结构降低出块延迟将带来更多的分叉简单的消减分叉将影响诚实节点的算力,降低系统的安全性GHOST(GreedyHeaviest-ObservedSub-Tree)协议综合统计可见分支的累积算力,可提高系统的安全性改进的GHOST协议以太坊通过奖励叔父区块鼓励节点广播转发分叉区块,引用叔父区块以及叔父区块本身都可以获得额外的奖励Conflux项目提出的GHAST协议改进了GHOST协议的权重计算方法,抵抗可能存在的平衡攻击DAG共识协议SPECTRE基于有向无环图(DirectedAcyclicGraph,DAG)的分布式账本

动机:PoW共识中,提高出块速度将带来更多分叉,DAG可能带来更高的吞吐率,适用于弱同步网络构造:每个区块(交易)引用不止一个前序区块,形成有向无环图问题:如何对交易做唯一的确认与排序?解决:通过最重子图等图算法计算确定区块顺序,算法复杂度较高

SPECTRE投票规则如果一个区块Z是X的后代而不是Y的后代,则意味着Z投票X≺Y。6-11如果一个区块Z既是X的后代也是Y的后代,则其投票是由其所有的祖先节点已完成的投票决定

温馨提示

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

评论

0/150

提交评论