理论篇:如何理解51%攻击

如何理解51%攻击

在使用PoW共识机制的区块链网络,存在一种攻击手段:51%攻击。

使用这种攻击手段目前来说可以达成两种目的:

目的1:双花攻击,将同一笔钱花两次。

目的2:交易抑制,阻止别人在网络中产生交易。

为什么可以51%攻击可以达到这两个目的呢?

这就涉及到使用PoW共识的区块链的形成方式啦。

区块链的构成方式

区块链的构成方式非常简单。

首先,是创世区块,记录第一笔交易的区块。

然后,是后面的一系列区块,每个区块除了记录网络中发生的交易以外,还有一个区域记录上一个区块哈希值。

最后,通过共识算法,保证每个区块后面只有一个后续区块。

通过上述的方式,区块就可以串联起来形成区块链。

如何实现双花攻击

根据区块链的形成过程,决定了如果某个人掌握了51%的算力,就可以实现双花攻击。

举个例子:假设李华有100BTC,他把这些币支付给韩梅梅的同时,也把这些币发到自己的另一钱包地址上。换一句话说,李华的一份钱,同时转给两个人。然后李华发送51%攻击,在当前区块链高度上构建一个不包含转给韩梅梅,但包含转给自己的交易区块,并以算力优势将伪造的区块链快速延长。最终,根据只有李华转给自己的那笔交易得到了确认。

qukuailian

想象以下的一个场景:李华和韩梅梅在交易黄金,李华用100个比特币买了韩梅梅手中的黄金,转账完成后,韩梅梅发现自己的钱包中确实多了100个比特币,就直接坐私人飞机回家啦。等韩梅梅走后,李华立马发送51%算力攻击,将转账给韩梅梅的交易变为自己的交易打在区块中并构造伪造的区块链,并利用算力优势迅速延长,等到6个区块链之后,根据PoW共识,所有区块链都承认了伪造区块链的正确性。

此时,飞机降落后,打开手机的韩梅梅发现自己的100比特币突然就不见了,因为新的链条中并没有小黑转给小白的这个交易,这就是双花攻击。

如何实现交易抑制

理解了第一种目的的实现方式,很容易理解实现第二个目的的方式。掌握算力51%的组织或者机构,如果想让某笔交易不被确认,可以在发现某笔交易后,立即发动51%的算力攻击,在自己组装的区块中,排除这笔交易。由于我有51%的算例,我会在以后所有的区块中排除这笔交易,这样这笔交易将永远不会得到确认。

举个例子,美国掌握了伊朗所有的交易账号,然后可以把伊朗排除在比特币交易体系中。

为什么我们不必担心51%攻击

我们不担心51%区块链攻击有以下几点:

  1. 区块链的维护者们,为了共同的利益,不会允许某个机构或个人的算例突破到51%。

  2. 拥有51%算力的拥有者,不会愿意做这种搬起石头砸自己脚的事情。

  3. 追求完美的工程师们,为了避免这种理论上的可能性,思考出了其他共识协议来解决该问题,比如PoF等。

比如,PoW共识协议在比特币系统中稳定运行了将近十几年时间,从来没有因为51%算力攻击出现问题,因为51%算力攻击仅仅是理论上可行。