先来科普一波什么是双花攻击(Double Spending Attack):双花攻击,顾名思义就是“花了两次”。攻击者在交易所进行交易变现后,有预谋地控制算力来改写区块,使之前的区块链交易失效,但攻击者已经拿到现金走人,但币还在手里,还可以再去套现。
2008年,中本聪提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付的话,那么这种系统也就失去了存在的价值。比特币的工作量证明机制(PoW)的本质,就是要使现金系统在点对点的环境下运行,并防止双花攻击。
工作量证明机制的原理如下: 网络中每一个区块都包含当前网络中的交易和上一个区块的区块头哈希。新区块产生,其区块头哈希必须满足工作量证明条件(需要进行大量的哈希计算)。整个网络将满足工作量证明的哈希链连接起来,从而形成区块链。除非攻击者重新完成全部的工作量证明,否则形成的交易记录将不可更改。只要整个网络中大多数算力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条,从而实现对双花攻击的抵抗。
双花攻击实际上是一个结果。如果一个攻击者A将同一个比特币同时支付给B和C两个用户,并且B和C两个用户都认可了这笔交易。那么我们说A将该比特币花了两次,A实现了一次双花攻击。针对工作量证明机制的双花攻击中,51%攻击是被讨论的最多的一种攻击形式。
所以明白了吗?尽管实现双花攻击的方式有很多种,但最简单粗暴的就是找到51%的算力,通过完成工作量证明篡改区块。
其实双花攻击已经发生在很多非主流数字货币过了,甚至一些市值体量很大的主流货币也遭受了攻击,比较出名的是以太经典(ETC)和比特黄金。都是通过调用足够的算力,来改写区块完成双花攻击。区块体量越小,被双花攻击的风险就越大。
以太经典到底被“攻击”走了多少钱,还没有统计出来。但是上次比特黄金,可是被双花偷走了1800万美金,约合1亿2千6百万人民币。
双花攻击一个币种,到底需要多少钱呢?有一个网站叫 Crypto51 专门计算达到某种数字货币的51%算力所需的费用。这个费用实际上是通过 Nicehash 租用算力的价格。所以,他还有一个指标就是 Nicehash 上能租到多少算力。
比如刚刚被51%攻击的 以太经典,在 Nicehash 上可租用的算力高达100%,每小时攻击话费约为4千美金(2万8人民币),加上他的市值有539.75万美金,这简直是一定被双花的节奏。
比特币在 Crypto51 上 51%攻击的价格为 32万美金1小时,但是 NiceHash 上能租用的算力为0%。这意味着,即使每小时32万美金(210万人民币)的话费对你来说无所谓,那你也无法在市场上找到足够的算力。当然,如果你手里有51%的算力,那另当别论,毕竟现在谁都没有那么多的机器。现在市面上大概有10亿台矿机,粗略一算,你手里有5亿1千台就可以发动双花攻击了。
当然,对攻击者来说有一个好消息是:矿工大量关机。也就意味着,机器总数变少,实现51%攻击的阈值越来越低。