区块链科普指南:什么是51%攻击?

2024-05-04 18:15

1. 区块链科普指南:什么是51%攻击?

 在加密世界中,当一个人或一群人控制了50% + 1的网络单元时,就会发生51% 的攻击。没有人说50% + 1单位,所以简称为51%攻击。
   当一个团队设法控制链接到一个特定区块链的网络的大部分,它被认为对它有绝对的权力控制整个区块链,这意味着交易的完整性和安全性不能再得到保证。
       区块链如何抵御51% 的攻击? 
   加密货币有不同的方式可以保护自己免受51% 的攻击。毫无疑问,最为人所知的是,全球拥有庞大的矿商网络,其中包括数万甚至数十万人,这使得控制这一网络极为昂贵。
   在这种情况下,区块链通常是自动保护的,因为接管加密货币所需的资源要重要得多,而且一旦网络得到控制,攻击不一定涵盖费用。
   不需要太多的细节,我们只想说,可以添加额外的安全机制,目的是使这种攻击不可能发生。这可以通过使用一个具有多个控件的系统来实现,这有时会将这种攻击的需求从计算能力的51% 提高到75% 、90% ,有时甚至是99% 。
   在其他情况下,一些区块链已经选择授权交易验证的有信誉的集中参与者,以避免这种攻击。然而,一些纯粹主义者不喜欢这个想法,因为它违背了区块链的宗旨,即分散交易。
       我们真的应该担心51% 的攻击吗? 
   比特币自诞生以来从未遭受过51% 的攻击,也不太可能遭受这样的攻击。这个网络如此庞大,以至于做这件事的成本会高得惊人。
   此外,当一个区块链正在经历一个51% 的攻击变得清晰时,几乎可以肯定的是,所有令牌持有者将决定立即出售他们的资产,这将导致资产的价值损失。所以,从数学上来说,一群人试图控制一种加密货币是没有多大意义的。
   为了了解实施51% 攻击所需的资源,有一个不错的小网站叫做 Crypto51,它可以让你找出实施这种攻击所需的散列速率和每小时的美元成本。
       对51%攻击的结论 
   我们希望您现在有一个更好的理解的概念,51% 的攻击和他们如何工作。正如你所看到的,他们需要巨大的资源,可能仍然不值得麻烦。
   51% 的攻击,理论上,是工作证明(PoW)系统的一个主要问题。然而,在实践中,一旦一个区块链已经足够发达,风险接近于零。
   对于新的或小盘数字货币,再一次,没有真正的利益为黑客进行这样的攻击,因为加密货币的价格可以下降到0非常快,防止该组收获经济利益。

区块链科普指南:什么是51%攻击?

2. 什么是比特币51%攻击

一提到对比特币的攻击,大部分人想到的就是51%攻击。所谓51%攻击,就是利用比特币使用算力作为竞争条件的特点,使用算力优势撤销自己已经发生的付款交易。比特币发动51%攻击具体思路, 大致如下:
准备工作:
1. 既然是51%攻击,就必须首先掌握足够的算力,无论是控制矿池,还是利用其它计算资源,总之必须使你的算力领先与现在网络总算力,领先的幅度越大,成功的可能性越高;
2. 拿到足够的BTC作为筹码,无论是自己挖到的,还是从任何渠道买的,都可以;
攻击步骤:
1. 将手中的BTC充值各大交易所,然后卖掉,提现;或者也可以直接卖给某人或某一群人;
2. 运用手中的算力,从自己对外付款交易之前的区块开始,忽略自己所有对外的付款交易,重新构造后面的区块,利用算力优势与全网赛跑,当最终创建的区块长度超过原主分支区块,成为新的主分支,至此,攻击完成;
攻击结果: 由于撤销了所有对外付款交易,等于收回来所以已卖掉的比特币。
可行性评估: 现在比特币全网算力差不多90T,而且还会快速增长,现在看来只有现在的几大矿池联合,才具有发动51%攻击的实力,普通个人或机构实施此攻击的可能性越来越小。
过去几年比特币网络的算力悄无声息的增长到了无比之大,这大大增加了比特币成功的可能性。反之也可以解释为什么山寨币不靠谱,太容易被51%攻击啦。在依赖密码学的数字货币领域,先发优秀是非常明显的。

3. 什么是51%算力攻击?

关注比特币的朋友,想必听过51%算力攻击这个词,它到底是什么意思呢,发起这种攻击之后能做哪些“坏事”呢?
  
   01  
  
 什么是51%算力攻击?
                                          
 在比特币网络中,采用PoW共识机制来解决如何获得记账权的问题,采用“最长链共识”解决如何记账的问题。
  
 所谓51%的攻击,就是利用比特币网络采用PoW竞争记账权和“最长链共识”的特点,使用算力优势生成一条更长的链“回滚”已经发生的“交易行为”。
  
 51%是指算力占全网算力的51%,比特币网络需要通过哈希碰撞来匹配随机数从而获得记账权,算力衡量的是一台计算机每秒钟能进行哈希碰撞的次数。
  
 算力越高,意味着每秒钟能进行越多次的哈希碰撞,即获得记账权的几率越高。
  
 在理论上,如果掌握了50%以上的算力,就拥有了获得记账权的绝对优势,可以更快地生成区块,也拥有了篡改区块链数据的权利。
  
   02  
  
 这种攻击能做哪些坏事?
                                          
 在了解了51%算力攻击之后,你肯定好奇,这种攻击能做哪些坏事。
  
 实际上,当恶意攻击者持有比特币全网占比比较高的算力时,即使尚未达到51%的比例,也可以制造相应的攻击,比较典型的就是双花问题。
  
 假设A拥有51%的算力,在区块高度1127时,A转给B一个比特币的记录被矿工打包。
  
 待交易确认后,A依靠51%的算力优势在区块高度1126后重新生成了一条“更长的链”,并在区块高度1127处又将该BTC转给C且该交易记录被打包,即该链包含了A将一个比特币转给C的记录。
  
 根据“最长链共识”,包含给C转账记录的链成为主链,则A转给B的一个比特币则为“无效支付“。
  
 若掌握了51%的算力,除了可以修改自己的交易记录外,还可以阻止区块确认部分交易,以及阻止部分矿工获得有效的记账权。
  
 但是,拥有51%的算力也不是万能的,无法修改其他人的交易记录,也不能阻止交易的发出,更不能凭空产生BTC。
  
   03  
  
 实例分析
  
 我们可以用一笔虚拟交易来说明51%算力攻击问题:
  
 1.攻击者拥有私钥privKey0001,私钥拥有对应可花费比特币10000个
  
 2.当前区块的高度是88888
  
 3.攻击者与商户交易了10000个比特币,在商户看到88889区块中包含了此次交易后,坐上飞机驾驶员位置,开走了商户一架飞机。
  
 4.攻击者因为拥有较高算例,从88888区块再次计算区块(此时,排除自己的10000个比特币买飞机的交易),迅速的计算出了88889/88890/88891/88892......区块,其它节点拉取最长链节点的区块,同步了攻击者的含有恶意攻击的区块信息。
  
 5.因为攻击者买飞机的交易没有被区块包含,因此,可以再次到商户那里买上一架飞机开走。
  
 上面这个例子就是典型的51%算力攻击成功后,所产生的双花问题。
  
   04  
  
 51%算力攻击真的有人做吗?
  
 理论上来说,要执行51%算力攻击,首先需要拥有比网络其他矿工更强的算力。
  
 这意味着要有非常多的挖矿设备,大量挖矿设备本身就会消耗大量的资金。
  
 而且除了设备,还需要大量的电力能源消耗。
  
 由于电价上涨以及能源需求的增加,在过去几年里获得足够的电力来运营矿场变得愈发地困难。
  
 当比特币网络还很小的时候,或许有可能获得足够的电力来运行提供51%算力的设备,但随着时间的推移,比特币网络消耗的电力持续增长,攻击者需要获得大量电力才能成功执行攻击,这种可能性也就越来越小。
  
 发动算力攻击也是为了有利可图,但从经济角度来看,51%算力攻击的成本太高,利润太少,无法产生大量资金,并且会有受到重大损失的风险。
  
 由于所涉及的成本和风险,进行51%攻击确实没有任何意义,而诚实挖矿则有利可图的多。
  
   05  
  
 在攻击面前的风险规避
  
 虽然51%算力攻击可以撤销交易,但不可以在没有私钥的情况下,控制私钥对应的比特币地址,因此不能无(私钥)中生有交易。
  
 所以对于51%算力攻击,交易支付者不仅不需要过度担心,而且在别人进行51%算力攻击时,你也有可能做一次双花商家。
  
 但是交易接收者可就没有那么好的运气了,因此为了避免被别人51%算力攻击,可以多等几个区块生成后再进行交易。
  
 但是反过来想一下,51%算力攻击是很不值得的一件事情。
  
 攻击是为了利益,既然攻击者持有了这么高的算力,诚实的挖矿带来利益是不是更好?
  
 而且攻击必然打击投资者对比特币系统信心,这对攻击者来说未必是一件好事。

什么是51%算力攻击?

4. “51%攻击”是什么?它是比特币最大的威胁

所谓51%攻击,就是利用比特币使用算力作为竞争条件的特点,使用算力优势撤销自己已经发生的付款交易。

如果有人掌握了50%以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他实际上拥有了绝对哪个一区块的有效权利。
他能够:
1、修改自己的交易记录,这可以使他进行双重支付
2、阻止区块确认部分或者全部交易
3、阻止部分或全部矿工开采到任何有效的区块

5. 详解比特币的“51%攻击”

刚接触比特币的时候,都听过“51%攻击”这个概念。简单来说,就是如果某个节点拥有超过全网51%的算力,将能够实现双重支付、撤销交易等操作,让比特币网络崩溃。
  
 那么,这个51%攻击是什么实现的?
  
 假设一个场景,A用10比特币向B购买一样商品,步骤如下:
  
 (1)A支付给B 10BTC;
  
 (2)B收到10BTC确认收款后发货(一般认为6次确认后交易就不可逆转);
  
 (3)A随即创建另一笔交易,将同样的10BTC支付给自己。
  
 显然,A想要撤销第一笔交易,不用花钱就得到B的商品。为了达到这个目的,A进行了双重支付,将同样的10BTC支付给B和自己。在正常的比特币网络中,一旦第一笔交易经过6次确认后就几乎不可更改,后续的交易数据将继续打包成新的区块依次链接下去。可是,如果A用户拥有51%的算力,情况将会发生有趣的变化,A可以实现双重支付的目的。
  
 具体过程如下:
  
 假设第一笔交易被打包到100号区块,当后面再增加5个区块后,6次即可确认该交易,区块如下图所示:
                                          
 这时,A又发起了一次给自己10BTC的交易。如果A向全网广播,这笔交易不会被处理(因为找不到要花费的UTXO,10BTC支付给B的事实已经被全网确认了),所以A选择不广播,而是对主链进行“分叉”,生成另外一个100号区块,并在其中打包第二笔交易,如下图:
                                          
 由此,产生了两条子链。简单描述起见,第一笔交易所在的叫C1,第二笔交易所在的叫C2。其他矿工继续在C1上打包数据,而A则在C2上挖矿,两条链开始赛跑。由于A具有超51%的算力资源,很快,C2的长度就会超过C1,如下图:
                                          
 这时,按照比特币的最长链优先原则,其他矿工也会自动转到C2上,使C2变成了主链。C1则会被抛弃,之前打包在C1上的所有交易(包括第一笔A支付给B 10BTC的交易),都会变为无效。结果是A不花一分钱就拥有了属于B的商品,这就是“51%攻击”。
  
 当然,要真正实现51%攻击是非常困难的,在比特币网络中几乎是不可能的,因为这需要消耗巨大的成本,跟攻击成功后获取到的收益相比,完全是得不偿失。
  
 51%攻击能带来的收益是非常有限的,只能做到:
  
  1、修改自己的交易记录,如双重支付; 
  
  2、阻止确认部分或全部交易。 
  
 而下面这些即使是51%攻击也没法做到的:
  
  1、凭空生成比特币; 
  
  2、修改每个区块产生的比特币数量。 
  
 因此,51%攻击成本巨大,收益却很小,仅能实现“双重支付”而已,所以51%攻击很多时候又被称为“双花攻击”。“双花”是数字货币要解决的第一个核心问题,比特币通过共享账本和工作量证明共识机制比较完美地解决了这个问题。

详解比特币的“51%攻击”