论文部分内容阅读
作为一种新兴技术,区块链的透明可信、防篡改、可追溯、去中心化等多种特性,使其可以为多个不互信参与者建立分布式信任。共识机制作为其中的关键技术,保证了区块链系统中分布式节点数据的一致性,为系统的正常运转提供了支撑。工作量证明(Proof-of-Work,PoW)是共识机制的典型代表,几近完美地整合了交易发起、执行和验证等功能,被广泛应用于比特币、以太坊等加密货币系统。PoW系统中激励机制的引入,使得共识节点最大化自身利益的个体行为与确保区块链系统安全、有效性的整体目标更加吻合,为系统的可持续发展注入了动力。然而,随着PoW区块链系统价值的不断显现,系统遭受着多样化的攻击,为设计安全机制和防御措施以保障PoW区块链系统的安全性,分析研究相关攻击对其安全性影响程度及机理是十分必要的。本文针对PoW区块链共识和激励机制存在的攻击展开了分析。首先本文针对遭受典型攻击的PoW区块链系统构建了更加符合实际的分析模型,研究了关键指标的计算方法,量化评估了几类攻击对系统安全性的危害(以攻击者的收益为评价指标),以及不同PoW方案(采用不同的链选择协议及难度调整算法的共识机制方案)对典型攻击的影响。本文的主要研究内容及贡献包括以下四个方面:(1)针对受到自私挖矿攻击的PoW区块链系统,构建了状态空间分析模型,设计了关键指标的计算公式。相对于双花攻击、平衡攻击等,自私挖矿攻击是一种容易实施的攻击方式,因为攻击者不需要拥有系统大部分算力或将网络分区。但自私挖矿攻击会导致诚实矿工收益降低,从而减少诚实矿工参与到PoW区块链系统的动力,同时还会造成区块链系统的中心化。相对于现有工作,在研究自私挖矿攻击时,本工作面向实际应用场景,考虑了更全面的系统指标,本工作具体有如下贡献:1)系统中考虑了(由网络延迟引起的)自然分叉;2)考虑和比较了分别用于比特币和以太坊的两种激励机制;3)除了从矿工收益的角度分析攻击,还从系统吞吐量和抵抗双花攻击能力的角度研究了攻击对系统的影响。(2)针对遭受顽固挖矿攻击的PoW区块链系统,建立了状态空间分析模型,提出了关键指标计算公式,比较分析了攻击者利用不同策略的收益情况。顽固挖矿攻击是自私挖矿攻击的一种变种攻击,包含三种基础攻击策略和四种组合攻击策略共七种攻击策略。该变种攻击可以在许多场景下帮助攻击者获得更高的收益。相对于现有的基于模型的分析工作,本工作考虑了更全面的攻击策略和分析指标,具体贡献如下:1)提出的模型可以描述原始自私挖矿和七种顽固挖矿攻击策略;2)提出的公式可以计算攻击者在(用于比特币和以太坊的)两类激励机制系统中,使用自私和顽固挖矿策略的收益情况。实现了对不同激励机制、对不同挖矿策略收益情况的对比;3)通过模型和公式量化评估了顽固挖矿攻击策略对PoW区块链系统吞吐量和抗攻击能力的影响。(3)针对遭受自持攻击的PoW区块链系统,提出了状态空间分析模型和相应指标的计算方法。自持攻击是块扣留攻击和自私挖矿攻击的组合攻击,攻击者在发动自持攻击时分为两部分,一部分攻击者实行自私挖矿策略,其余攻击者潜入诚实矿池发动块扣留攻击。通过该攻击方式,攻击者可依据比自私挖矿更少的算力获得额外的收益,降低了攻击成本。在现有工作基础上,本部分工作具有如下四个贡献:1)考虑了系统中存在自然分叉现象;2)考虑了比特币和以太坊两种激励机制;3)考虑了攻击者可以潜入到任意数量的矿池中发动攻击的场景;4)由于一部分攻击者发动块扣留攻击,本工作依据“有效算力”指标评估了存在这类攻击的系统吞吐量和抗攻击能力。此外,与现有工作相比,本工作所提出的模型更具通用性和扩展性,这使得本工作的模型可较轻易地扩展到应用分析类似的组合攻击中。(4)针对使用GHOST(Greedy Heaviest-Observed Sub-Tree)链选择协议的PoW区块链系统,研究了攻击者在系统中的行为,提出了状态空间分析模型,推导了指标公式并计算了相应的指标,量化对比了不同PoW方案对自私挖矿攻击的影响。提出的模型可以刻画区块链系统存在攻击时的动态变化过程。本工作基于模型还研究了使用包含协议(inclusive protocol)与否对攻击的影响。此外,本工作还考虑了两种难度调整算法,分析了难度调整算法对“矿工单位时间收益”以及“系统吞吐量”这两个指标的量化关系。本工作具有下列贡献:1)设计了基于GHOST协议区块链系统的自私挖矿攻击策略,该策略与原始自私挖矿策略具有可比性;2)考虑了PoW共识机制中的多个协议和算法(包括链选择协议、包含协议和难度调整算法)对攻击的影响;3)设计的公式可以计算本工作考虑的复杂系统场景中的关键指标。本文的分析工作有如下目标和意义:1)在未来开发者设计和开发区块链系统时,为其技术选型提供指导和参考;2)通过对分叉率、矿工算力等参数与共识和激励机制安全性关系的量化分析,为区块链维护者如何设置关键参数提供参考和建议;3)为针对典型攻击设计检测和防御措施时,提供理论支持和验证方法。