zoukankan      html  css  js  c++  java
  • 几种挖矿攻击介绍及应对措施

    一、 双花攻击

    介绍:

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

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

    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协议,支持叔块。

      

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

       

    四、攻击 矿池

      介绍:

      

      

       

       

       

       

       应对措施:

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

      

        

  • 相关阅读:
    iOS:后台定位并实时向服务器发送位置
    iOS:创建Siri 功能
    Cocoa编程开发者手册
    iOS应用开发最佳实践
    Linux Shell编程与编辑器使用详解
    从虚拟化到云计算
    软件集成策略——如何有效率地提升质量
    水色物语:清新水彩手绘插画技法
    易用为王:改进产品设计的10个策略
    iOS Web应用开发:运用HTML5、CSS3与JavaScript
  • 原文地址:https://www.cnblogs.com/w3liu/p/12347118.html
Copyright © 2011-2022 走看看