几种挖矿攻击介绍及应对措施

一、 双花攻击

介绍:

双花攻击顾名思义,同一笔钱给了不同的人消费了多次,如下图所示:

攻击的方式主要包含以下几种:

1) Finney攻击

  矿工挖到了一个区块(这个区块中包含一个交易 : 张三向李四转1BTC,其中张三和李四都是自己的地址),他先不广播这个区块,先找一个愿意接受未确认交易的商家向他购买一个物品,向商家发一笔交易:张三向王五转1BTC,其中王五是商家的地址,付款后向网络中广播刚刚挖到的区块,由于区块中包含一个向自己付款的交易,所以他实现了一次双花。

2) Race攻击

  张三同时向网络中发送两笔交易,一笔交易发给自己(为了提高攻击成功率,他给这笔交易增加足够的小费),一笔交易发给商家。由于发送给自己的交易中含有较高的费,会被矿工打包成区块的概率比较高。

3) 51% attack

  攻击者占有超过全网50%的算力,所以他可以创造一条高度大于原来链的新链。那么旧链中的交易会被回滚。攻击者可以发送一笔新的交易到新链上。如下图所示:

  

应对措施:

  首先看下双花攻击成功的概率:

  

    如果当矿工的算力超过50%的时候,网络被完全控制,无法阻止双花攻击。但是掌握50%算力的成本还是比较高的,如下图所示:

    

    因此,在攻击者算力不够高的时候,增大确认数N可以有效防止双花攻击。

    除此之外,还可以对交易进行监控,发现有双花攻击的情况及时报警。

二、 跳币攻击

  首先看一下,比特币难度调整算法:

  

  跳币攻击的思路就是,有两种币A和B,两种币都有诚实的矿工,比如攻击者的算力是诚实矿工的5倍,那么攻击者就可以在两个币之间切换着挖,导致普通矿工很难挖到币,如下图:

  

   BCH被跳币攻击的案例:

  

   这种情况,会导致算力不平均,时高时低,诚实的矿工挖不到矿会选择离开,导致整个网络更加不安全。

应对措施:

  变种DAA算法:

     Zawy算法

    Digsheild算法

    Dark Gravity Wave算法

    MIDAS算法

  困难点:

    1. 抵抗多种攻击技巧

    2. 数学上消除攻击者优势

    3. 常数出块时间

  DAA攻击仿真:

  https://github.com/edwardz246003/DAA_simulator

三、自私挖矿 

  介绍:

  

 应对措施:

  类似于以太坊,运用GHOST协议,支持叔块。

  

  当然,以太坊的解决方案同样也有漏洞,矿工可以隐藏自己的算力,使得自己和其他矿工的获益更大,如下图:

   

四、攻击 矿池

  介绍:

  

  

   

   

   

   

   应对措施:

   暂时没有特别好的应对措施。

  

    

猜你喜欢

转载自www.cnblogs.com/w3liu/p/12347118.html