作为区块链的数字货币,最最重要的事情,便是要解决双花的攻击。
双花攻击正如其字面意思一样,就是一笔钱可以花出去二次。如果这都可以,那整个区块链就无信任可言了。
双花攻击要想确保一定成功,至少需要51%的算力,因此也叫51%算力攻击。
它的原理就是利用了前面提到的比特币分叉。
某作恶人在第101号区块的时候,将10个比特币充值到某交易所。一般交易所在第6个确认的时间就会认为已充值成功。这时作恶的人会赶紧卖出提现。
但随后,作恶节点人还偷偷的构造了另一笔交易(只需要修改101号区块里面的交易信息)将充值的那10个比特币,收款人地址修改成给他的小号。他把这个恶意的块发给了其它的矿工(举例为红色那条链)
这个时候,只要作恶节点在红色链上投入大量的算力,且算力大于51%,那他挖矿的速度肯定比小于49%的诚实节点要快,最终红色的那条链一定会超过黑色的链,其它诚实结节根据最长链优先原则又纷纷到红色链上继续挖矿,而黑色链之前发生的所有交易(其实只有其中那一笔交易是伪造的)就回滚了。
这样,作恶节点人是不是把这10个比特币花费了二次呢?他即在交易所充值成功,又把比特币拿回去了,可恶啊!!! 交易所就白白损失了10个BTC。
这基本上就是双花攻击的原理。
当然,比特币史上还没有发生过51%攻击,目前想要攻击更加难上加难,因为全网算力太大了,想要控制51%算力除非大矿池之间合作,否则需要投入巨大的财力,但这不可能悄无声息的发生。这也体现了比特币的强安全性。