双花攻击

双花攻击是指单个或者多个单位/组织能控制全网51%的算力,从而改变区块链中区块的交易次序的攻击问题。
双花攻击实现原理:
比特币等区块链通过分布式账本实现去中心化,具有公信力和安全性。区块链中的事物需要网络中的大部分节点都认同后,才会被记录下来。矿工节点们也会主动验证其他节点是否遵循区块链协议,确保每笔交易诚实可信。
这些处理事物、记账的权力是通过工作量证明争夺来的,算力越强,获得记账权的概率越大。如果掌握了全网51%的算力,即可对整个区块链网络形成垄断,拥有处理区块链中一切事物的权利。
如果出现了双花攻击,攻击者可以修改自己的交易记录,导致双重支付(双花)现象的出现。当矿工打包好一个区块后,正常情况是广播到全网给其他矿工检查后增加到链上。但是,获得51%算力的攻击者可以不广播,而是直接创建一个其他矿工不知道的新链进行挖矿。由于新链并没有广播,所以对其他诚实挖矿的矿工来说它是隐藏的。攻击者在旧链花掉的资金,在新链上并没有记录,因此攻击者可以在新链上继续持有这些币,实现双重支付。
区块链的设计原理遵从最长链原则。当攻击者拥有最大的哈希算力时,便确保了新链会更长。而当新链比旧链还长的时候,按照区块链的协议,旧链将会被舍弃,其他矿工会重新开始在新链上打包记账。攻击者之前在旧链上的花费便能随着旧链的消失而消失,从而能够在新链重新拥有这部分已经被花掉的币。攻击者还可以阻止区块中的交易被确认,以及其他矿工挖到合法区块,从而对区块链的运行造成很大威胁。当区块链不再受到节点们的信任时,币种价值也将相应地下跌。
如何防范:
由于每个节点的比特币都有私钥进行保护,每笔交易也都需要私钥进行签名,因此攻击者不知道他人的私钥,也就不可以将他人的比特币转入自己账户,更无法修改他人的交易记录。所以,拥有51%算力能让自己获益的方式只有修改自己的交易记录,制造双花现象。中本聪在比特币白皮书中提到,攻击者需要投入设备和电力作为成本才能进行攻击。因此相比对区块链进行攻击,遵从规则进行挖矿的获益更大,攻击获益的方式就显得非常不划算。
出于维护个人利益的角度,几乎不会有人集合51%算力去攻击区块链,反而会对区块链进行维护,确保自己手中的资产是有价值的。例如在2014年时,GHash矿池的算力超过了51%,引起了比特币社区的强烈关注。为了维护比特币区块链的稳定,他们主动将算力降低,并承诺会让GHash的算力始终保持在39.99%之下 。
总结:
51%攻击虽然能够对区块链造成非常大的负面影响,但从利益角度出发,这种现象出现的概率极低。另外,随着区块链逐渐完善的共识机制以及加密货币拥护者的保护,发起51%攻击的攻击者在成熟区块链上很大可能会空手而归。