《BDoS: Blockchain Denial-of-Service Attacks》笔记

                   BDoS: Blockchain Denial-of-Service Attacks

出版时间:Dec 20, 2019

出处:Arxiv论文

下载:https://arxiv.org/pdf/1912.07497.pdf

目录

Abstract

Introduction

Related Work

Dos

多数(51%)攻击

Revenue-seeking deviations

基于收益攻击

非中本聪区块链

Model

挖矿模型

博弈论模型

The BDos Attack

Analysis

博弈论分析

阈值

BDos Attack With SPV Mining

Two-Coin Model

Practical Concerns

Mitigation

Conclusion


注:CSDN博客中的照片不能直接复制粘贴,这篇笔记里面的截图又太多,我实在懒得一个个粘,有需要的可以直接下载附件,也可以通过邮箱问我要。

Abstract

原则上,区块链是拒绝服务(DOS)攻击的有吸引力的目标,因为代币之间有着激烈的竞争,并且短期售卖可以得到利益。然而,典型的Dos只是针对少数服务器,并且不能扩展到多节点系统。目前对于主要的加密货币还没有成功的Dos攻击。

该论文中提出的BDos,是针对POW加密货币的第一个基于激励机制的Dos攻击,它和传统的Dos攻击不同,BDos是针对系统机制设计的:它利用奖励机制阻止挖矿者参与。BDos攻击不同于已知的攻击(比如自私挖矿攻击),它的目标不是增加攻击者的受益,而是破坏系统。尽管它也和那些攻击在算法上有相似之处,但是它提出了新的对抗模型、目标、算法和博弈论分析。BDos提出了一个新的观点:攻击者能操作挖矿者的奖励,通过证明存在最长的秘密链而没有实际发布区块。

 

Introduction

如Bitcoin这样的加密货币,是使用中本聪的区块链协议实现的。它和传统的状态机复制相似,区块链允许参与者同意一种状态(如加密货币的状态余额),但它和传统的一些协议又不同,公有区块链是去中心化的,并且允许任何人加入这个系统。

为了对抗Sybil攻击,中本聪使用激励措施。传统的基于网络的Dos攻击不能扩展到大型的去中心化系统,而基于挖矿的Dos攻击价格高昂,他却要求攻击者的挖矿资源至少等于其他所有挖矿者的集合。BDos是基于激励的Dos攻击—攻击者针对系统的机制设计,并破坏了其激励兼容性。具体的,攻击者花费资源,让合法的矿工去停止挖矿。攻击者只需要使用一部分资源即可。

这个攻击最关键的部分如图所示,

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

如b所示,攻击者生成了区块𝐵A,并且只发布它的头,如此我们说这个攻击是active;挖矿者可以忽略𝐵A头的存在,并在其父级之后生成一个区块,造成分叉,如c所示。

 

Related Work

在这里,主要介绍区块链Dos攻击的一些知识。

Dos

Dos攻击的目的是阻止系统为客户端提供服务,并且作为分布式Dos(DDoS)攻击从多个计算机中安装。然而在区块链网络中,这种攻击不能针对隔离的系统组件,如加密货币交换或矿池中的挖矿协调器。

Elipse攻击中,攻击者可以占用目标节点的所有连接,并且将它从网络中隔离出去。也可以通过路由攻击(如BGP劫持)达到相同的效果。然而,在分布式系统中,这样的攻击除了降低节点的挖矿能力,它还可以正常与网路进行通信。与之不同的是,BDos可以阻止区块链中的所有进程。

多数(51%)攻击

51%攻击是指能控制系统中大多数挖矿能力的矿工可以进行分叉链中的任何部分。这种攻击违反了POW协议的假设,它通过简单的产生空区块并忽略其他区块就可以导致full-fledged Dos攻击,这已经成为一个主要的攻击方式,该链比其他链都扩展的块,使其成为主链,尽管链中的内容为空。具有这种挖矿能力的攻击也可以破坏系统的安全属性,如金手指和贿赂攻击,它利用矿工贿赂来达到类似的效果,只是不需要攻击者直接获得挖矿能力。多数攻击一般发生在小型加密货币中,主要加密货币中还没有出现。与之不同的是,BDos攻击只要求低于50%的挖矿能力,并且不需要持续支出。

Revenue-seeking deviations

中本聪的区块链体系安全性依赖于激励机制。一项研究考虑了区块链协议的激励兼容性。这种攻击可能使挖矿能力的结构发生偏差,导致集中化;或者影响其他的区块链属性(如审查抵抗性)。但是这种攻击只考虑内部系统的收入,而没有考虑外来的恶意动机,因此不能直接用来实现完全的Dos攻击。与BDos攻击不同,这种寻求收益攻击,只要攻击者停止挖矿,他就不能操纵其他矿工的行为。

大多数收益攻击只能影响各自的矿池,而不能在区块链导致直接的宏观影响。

基于收益攻击

另外一项研究发现,可以使用收益(以贿赂的形式)去影响区块链属性。根据他们的目标将收益攻击分为三类:交易修正、交易排序和交易排除。这种攻击不会直接危害协议的安全性,但可以用于强制执行特定顺序的交易或者忽略某个交易。它不影响系统的活性。

非中本聪区块链

BDos攻击是专门为类似中本聪的区块链设计的。使用POW的类似中本聪的协议也一样容易受到攻击。通常BDos攻击对于POS的无效。但是针对POS也有泄气攻击(Discouragement attack),攻击者通过审查受害者的信息来减少其他参与者的收益,导致暂时的Dos攻击。

Model

在这部分,将介绍系统模型,包括参与者、他们的交互和网络假设。还介绍一个博弈模型,包括挖矿者的行为和效能。

挖矿模型

和普通的网络假设相同,只是定义了一个攻击者的额外能力:攻击者可以释放部分区块数据来证明区块是能被挖的,而不需要释放一个常规的区块。

1、区块链数据结构

区块表示B=(H,D),即区块头和区块数据。除了创世区块外,每个区块都包含连接的另外一个区块的hash值。区块链中的每个区块B要么是一个完整的区块,包含整个区块数据(H,D),要么是一个没有块数据的区块头(H, ⫠),⫠表示数据缺失。区块链中只包含部分区块信息是我们这个模型的改进。

2、参与者

定义了矿工、攻击者、挖矿能力𝛼𝑖

矿工可以用自己的私钥证明自己的身份。每一个合法的矿工都有一个本地的区块链视图Li。LiFull是Li的一个子集,包含除了自己的所有区块。

每个矿工也有一个本地的排序方法Oi,

 uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 它表示矿工在Li上所有区块的排序。不同的矿工有不同的排序方法,这依赖于他们本地收到的区块顺序。

3、Rushing

Ѵ(格尔玛)表示攻击者的能力,它是合法矿工预期的比率,采用攻击者的区块,当攻击者在相同高度,和其他矿工竞争产生一个新的区块。

4、调度器

每一轮统筹系统进程的叫做调度器。在每一轮,调度器选择一个矿工生成新块。并且,调度器也作为区块传播的一个中间件。

在每一轮开始的时候,调度器选择一个矿工生成一个新块,并说这个矿工是积极的。并且调度器维护每个积极矿工的记录,从中选择矿工。选择每个矿工和它的挖矿能力是有关系的。区块产生时间的唯一目的就是用来确定积极挖矿者的花费。

之后,调度器添加部分或完整的区块到所有其他矿工的私有账本中。这里有两种情况:(1)如果调度器选择攻击者去挖矿,攻击者会将自己的决定(是发送一个完整的区块,还是只发送区块头)告诉调度器,调度器收到攻击者的决定,将其添加到其他矿工的私有账本中。(2)如果调度器选择合法矿工挖矿,调度器会将它发送给其他合法矿工之前,先通知攻击者。此时,攻击者会决定是否对抗,如果对抗,他会发送完整的区块。否则,攻击者发送一个空的消息。如果消息是空的,调度器发送正常的区块Br和攻击者的对抗区块给不同的矿工以不同的顺序,来仿真连通因子Ѵ。

在这里我们假设调度器是以原子方式添加区块到私有账本中,这就暗示本地区块链Li等同于所有的挖矿者。调度器的伪代码在附录E中。

博弈论模型

提出了一个在合法矿工之间的一个博弈。

1、矿工

每个矿工都知道攻击者的策略,并且参加博弈使用有限的行为:{挖矿,停止}。在这个博弈中,合法矿工的唯一目的就是最大化他们的效益。

2、效益(Utility)

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 ,预期收益=收入-花费

我们假设货币价值不变,每个矿工每秒挖矿的花费为:𝛼𝑖𝑐𝑖

当没有攻击时,预期收益是:uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

通过矿工挖矿能力来形式化预期收益,

收益方法U:uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

在没有攻击的博弈中,合法矿工的收益为:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消                         (1)

定义一个收益因子𝜔ib, 收益因子是每个矿工每笔投资的回报。被定义为:uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消              (2)

3、行为

我们认为矿工是合法的,意味着当没有足够利益时,他们不会参加这场博弈。矿工会尝试着最大化他们的利益。每个合法的矿工都有两个可能的动作;(1)挖矿,在主链上挖矿(2)停止。矿工可以在每一轮的开始选择一个行为,并提交它直到这一轮结束。在这一轮中改变它的行为不会增加矿工的收益,因为她没有产生新的消息。由于无记忆特性,过去的时间不能提供任何新的消息。该定理在附录A中被证明。

如果𝜔ib>1,合法矿工会选择继续挖矿;如果没有攻击,并且𝜔ib<1,会停止。

如果攻击者释放区块头,合法矿工会选择两个动作中的一个。合法矿工可能的行为的伪代码在附录E中。

The BDos Attack

BDos攻击的目的是激励合法矿工去停止挖矿。攻击策略如图fig1所示:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

B*是主链上的最新的块,攻击算法是在B*上挖矿(图b),如果成功,在B*后连接一个新块BA而不是公布BA,它只公布它的头(BA,⫠),它扣留了块的其他部分。此时攻击是活跃的。BA就是攻击的领导块,但BA不是主链的一部分,因为没有发布完整的区块。

BA的头可以证明攻击者能成功挖到BA并且扣留整个区块。直到合法矿工产生一个新块,攻击者完全停止挖矿。此时会发生两件事:

通过挖矿生成区块:如果至少一个矿工挖矿,并且成功产生连接到B*的区块By(图c),攻击者立刻发布完整的BA区块,尝试将他添加到主链中,此时会发生竞争:挖矿能力被两者瓜分(图d)。赢得人成为主链的一部分。

合法矿工停止挖矿:由于没有合法矿工生成新区块,所以攻击者停止挖矿。

攻击在合法矿工的行为影响取决于系统参数𝜔𝑏𝑖(收益因子) ,𝛼𝑖(挖矿能力) and 𝛼A(攻击者的挖矿能力)。BDos的伪代码在附录E中。

Analysis

如果停止挖矿是对所有矿工的响应,我们就说攻击成功了,并且它实现了系统的完全关机。

博弈论分析

比较不同策略下,矿工每秒的预期收益,为了计算这个,构造了一个连续时间的Markov链。我们分析特定策略(如停止挖矿)作为主导策略的条件是什么(通过比较收益函数)

1、策略

评估每个合法矿工的策略。当攻击活跃时,在B*中积极挖矿的矿工集合为:uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

我们的目的是发现矿工在博弈开始时选择的最佳策略,即从私有账本Li和排序函数Oi到最佳行为(挖矿,停止)的一个映射。在这次博弈中,每个策略使用3状态的Markov链。挖矿策略Smine如图2a所示,停止策略Sstop如图2b所示,

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

状态0,每个矿工在B*中的初始状态(图1a)

状态1,攻击者发现新块(图1b)

状态2,竞争条件,(图1c)

在所有策略中,矿工选择挖矿行为当不是状态1时(攻击不是活跃的)。证明该定理在附录B。

2、状态概率

矿工的策略表示为S,uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 表示在状态1,所有矿工在B*中挖矿的所有挖矿能力。在攻击过程中,部分矿工仍保持在B*中挖矿:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消                        (3)

计算两个Markov链中的状态概率:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消                        (4)

注意矿工改变状态概率依赖于它选择哪个策略,即uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 依赖于策略。

3、每个策略的收益

第1步,先计算矿工的花费和收益(revenue),当挖矿时,它的花费是不变的,当停止挖矿时,花费为0。

停止挖矿时,平均花费为:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

挖矿时,它的平均花费不变,为:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

矿工从状态0到0速率为𝛼𝑖𝜆,从状态2到0速率为𝛼𝑖𝜆,矿工获得的利益(profit)为K

对于挖矿策略,矿工获得的利益是uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 ,当他以速率𝛼𝑖𝜆从状态1到2,

因此对于停止策略它的预期收益是:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消        (5)

挖矿策略它的预期收益是:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消      (6)

4、成功攻击的条件

为了让这个攻击使系统强制关机,我们需要让矿工有最大的挖矿能力。使用公式(5)、(6)我们定义uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 ,来形式化表示停止和挖矿策略之间的差异:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消            (7)

我们的目标是寻找什么时候攻击成功,并且所有的矿工都停止。

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 值对于所有的可能的uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 值,此时uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 <0。因此我们计算在uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 下为了让uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 <0的条件:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消   (8)

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 =0,uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 获得最小值,这个结果表示,在攻击阶段,当其他矿工仍在挖矿,矿工保持继续挖矿的动力会下降。即当其他所有矿工都是停止策略,仍可以实现的最小值。

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 =0,根据公式(8),计算可能性,最紧的条件是:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消                    (9)

这是对每个矿工确保停止策略是主导策略的条件。如果公式(9)成立,在系统中,对于所有的矿工,停止策略都是主策略

阈值

对于成功攻击,在uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 上我们已经计算出阈值。

公式(9)中,图3表示攻击在不同值uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 下的最大uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 值。

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

与以往的攻击不同,即使攻击者使用较小的计算量(如uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 ),仍然可以实施攻击阻止所有其他的矿工挖矿。但是,对于大的矿池来说,他有很大可能性抵抗BDos攻击。

同时这里也强调了rushing能力(uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 )的重要性,uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 =1/2是最保守的假设,使攻击者能够控制中继网络。因此uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 应该更接近于1。

 

Fixing uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

如果部分矿工保持挖矿uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 增加,相应的对于矿工来说停止挖矿也会增加。

假设uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 =0,根据公式(8),我们计算的临界值是uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

定义:uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 ,部分合法矿工继续挖矿

图4表示,对于不同的uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 得临界值uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

根据分析得,部分关机的阈值明显高于完全关机的阈值。

BDos Attack With SPV Mining

SPV挖矿,扩展区块头进行挖矿。模型改变,又增加了SPV策略,Sspv。

策略模型如图所示:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

Two-Coin Model

两种币模式中矿工可以选择在两种币的任意一个中挖矿。

策略𝑆 𝑚𝑖𝑛𝑒1表示在C币中的B*中挖矿。

策略𝑆 𝑚𝑖𝑛𝑒2表示在C’币中的诚实设置中挖矿

允许攻击的最小值r我们表示为r*

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

如图为不同的uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 允许攻击的r*图:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

Practical Concerns

p1,在状态1下不是时间花费

攻击花费为uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 ,所有保持挖矿的合法矿工

p1取值如fig 6 所示:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消 =0时,攻击者能够完全控制网络,在状态1Markov链的花费一直是0。

在BDos中,要求攻击者只宣布一个区块头,不能而泄露完整的区块。

攻击者可以发现一个区块,而不用泄露区块的细节,有以下几种方法:

(1)为了传播区块头,攻击者可以宣称他遭到了攻击,并提供一个他的私有web界面,该页面用来发布它的区块头;

(2)代替发送区块头,攻击者也可以使用智能合约去证明区块的发现,而不用泄露它的头。

(3)可以使用零知识证明,攻击者可以在它的网页发布一个非交互的零知识证明,证明他找到了区块头,而不用泄露身份消息(如区块hash值)。

 

在方法(2)(3)中,合法矿工都不能从诚实区块中区分出攻击者的区块。

如图fig8所示,部分合法矿工停止挖矿在Nash中:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

这个仿真说明,对于一个只有20%挖矿能力的攻击者,他能停止超过一半的合法矿工,即使当利率为2。

Mitigation

介绍对BDos攻击的缓解措施

1、叔块

可以通过叔块机制组织BDos攻击。

如果使用了叔块奖励机制,理性的矿工在BDoS攻击中停止挖矿的的机会要低得多,因为即使其输掉了比赛,它也会得到奖励(相当于以太坊完整区块奖励的7/8)。

也可以建议区块必须包括数据结构,这样就可以排除攻击。

2、在竞争期间忽略攻击者的区块

这个方法只能减低这种攻击的可能性,去改变矿工行为,为了产生分叉时,矿工更乐意那个区块不是攻击者产生的。

这个方法的困难是识别攻击者的区块。

提出的建议是根据头收据和区块收据的时间间隔不同进行分类。无攻击的区块时间间隔是有限的。

这个方法仅适用,攻击者证明他的区块是使用区块头生成的。但攻击者可以使用智能合约或零知识(ZK)证明来证明其找到了一个区块(而不是发布区块头)。

Conclusion

BDos破坏了中本聪共识的激励机制,通过攻击者在挖矿中获得了优势,并且没有释放他完整的块。

这个证明了矿工挖矿比不挖矿获得的利益更少,因此,合法的利益驱使的矿工将停止挖矿。

如果没有更有力的缓解措施,中本聪共识区块链的活跃性,就取决于矿工在收入损失的情况下是否愿意遵守协议,即利他主义。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值