比特币何谓双花?相信我们都幻想过一笔钱可以重复花费,比特币双花就是说的这个问题。下面我们就一起来详细了解一下吧。
一、比特币何谓双花
比特币双花正如其字面意思一样,就是一笔比特币可以花出去二次。在分布式系统中,所有的交易都会广播给网络中的各个节点,每个节点都会记录这个交易信息,然后将信息传输给网络中的下个节点,并且这个过程会持续到网络中的所有节点已经记录了这条信息。想要对比特币进行双花成功,需要完成51%的算力修改,所以双花又被称为51%算力攻击。比特币的双花根据记账时间可以划分为记账前双花和记账后双花。按照字面理解一种是在记账前完成双花修改,一种是在完成记账后,通过攻击手段删除了这笔交易。防范记账前的双花的方法就是等记账后,再完成交易。记账后的双花基本上出现不了,因为整个区块键技术的核心就是保障账本的安全,记了账就不能被双花,就算会出现也是因为收到了51%的算力攻击,成本太大。
二、比特币双花操作原理
假设A有500个比特币,用这些比特币和B进行交易,把这些币支付的B同时,也把这些币发到了A自己的钱包地址上。发给B的那笔交易先被得到了确认,并打包在区块高度为N的区块内。这时,控制了超过50%算力的A,发起51%算力攻击(双花攻击)。A通过重新组装第N个区块,将发给自己的那笔交易打包进区块里,并持续在这条链上延展区块,当A的攻击块链的长度超过B的块链2个区块时,所有的客户端将丢弃B的块链,接受A的块链。至此,51%攻击成功,B钱包里的500个比特币"不翼而飞"了,而A的666个比特币回来了,并且多了和B交易的一笔钱。
三、双花攻击的成本是多少?
按照比特币的全网算力是73.93 EH/s,要控制比特币51%的算力,即 37.7043EH/s的算力,按照比特大陆S17每台矿机53TH/s的算力计算,需要711401台,每台S17价格是20670元,需要的成本是14 704 658 670,147多亿元,这个是非常大的。这还不算其它的矿机,电费,维护费用等,随着全网算力越来越大,51%算力的成本也会越来越大,比特币也越来越难被攻击。
四、比特币双花问题的解决
比特币白皮书,也就是中本聪写的那篇论文《比特币:一个点对点的电子现金系统》中就有这个问题的解答。通过白皮书的简介,我们可以发现,中本聪想要解决的终极问题是“去中心化问题”,去中心化是他的终极理想。但是,想要实现去中心化,要面很多,对现在中心化体系来说,不是问题的问题。在中本聪看来,其中最大的问题就是“双重支付”的问题,就是我们说的“双花问题”。比特币作为一个去中心化的点对点电子现金系统,主要依靠未花费的交易输出(unspendtransactionoutput,UTXO)和时间戳来解决“双花”问题。
比特币现金系统中记录着当前每一笔“未花费的交易输出”。当节点接收到一笔交易信息的时候,它需要去UTXO数据库里查,看看这笔交易所引用的UTXO是否存在,它的收款人(拥有者)是不是当前新交易的付款者。交易结束之后,系统会做相应的更新。
另外比特币现金系统也引入了时间戳的概念。事实上,比特币现金系统是一个由众多节点共同参与的分布式数据库,是一个开放的大账本;由一串按照密码学方法产生的数据块,即区块组成。系统会对每一个区块的数据信息都自动加上时间戳,从而计算出一个数据加密数值,即哈希。每一个新区块都包含前一个区块的哈希,从创始区块开始,链接到当前区块链,形成区块链。比特币现金系统本身就是构造了一个永不停息、无坚不摧的时间戳系统。系统利用数字时间戳保证每个区块按时间顺序相连成区块链,时间戳也为区块链链上每一笔数据打上时间标记。这样下来,只有系统中的节点同时被节点记录才行,不过根据时间戳的数据,只有先被记录的交易才能被确认成功。综上所述,比特币通过未花费的交易输出和时间戳有限规避了双花攻击。
五、小结
以上就是比特币双花的介绍,但也如上文说所,比特币双花攻击的成本高,随着区块链的不断发展,攻击成本也会越来越高,基本上不会出现双花现象。