什么是51%算力攻击?

如题所述

第1个回答  2022-07-19
关注比特币的朋友,想必听过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%算力攻击是很不值得的一件事情。

攻击是为了利益,既然攻击者持有了这么高的算力,诚实的挖矿带来利益是不是更好?

而且攻击必然打击投资者对比特币系统信心,这对攻击者来说未必是一件好事。
相似回答