首页 > 比特币 > 正文

比特币双花交易意味着什么?

分类:观点比特币之家比特币之家 2021-01-13 17:47

  近两个月以来,随着比特币价格的上升,比特币链上交易量也越来越高。这个链上交易指的可不是在交易所买币卖币,而是在比特币网络内的区块链里进行的转账提币操作。基于链上交易量的上升,比特币也出现了一些问题,交易手续费又再次上升、国外用户丢币、还有近期被人提到的双花交易问题,比特币安全问题又进入大家的视线。

  双花交易是什么?

  什么是双花交易?举个例子:A在咖啡店点了杯拿铁,通过手机钱包付给漂亮的收银员小姐姐相当于30元的比特币。喝完咖啡,A走进隔壁的花店,准备为女朋友买束玫瑰,查看比特币钱包发现最后的30元现金已经用来买咖啡了。这时候,如果A想用给咖啡店小姐姐的那30元买花。可能吗?在数字货币里,这还真的有可能实现,而且他并不需要再从小姐姐那把钱偷回来。

  “双花”,即一笔钱被花了两次或者两次以上,也叫“双重支付”。在数字货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况。简单来说,就是比特币在进行转账交易的时候,用户与商户之间建立了连接,将钱转给了商户,在进行转账的这个过程中,钱仍然归属用户,所以理论上用户可以利用这段时间,把这些钱转给其他人,从而覆盖掉上一笔交易。以上文为例,A可以通过用买咖啡的钱再来支付一次买花的费用,等于咖啡店并没有收到钱,而白白损失了咖啡,而A仅通过一笔花费就同时获得了咖啡和花,当然A如果不买花,也可以把钱转账给自己的其他账户,这样就等于欺诈了咖啡店,没有花费一分钱就获得了咖啡。

  攻击者如何发动双花交易?

  上面我们已经得知确实可能发生一笔钱花了两次的情况,那么A是如何实现这种操作的呢?其实问题很简单,一般来说双花交易需要进行算力攻击,也被称为51%攻击。假设第一条交易已经生成,攻击者在交易成功前,再次生成一个新的区块,让新的区块比交易的那个区块速度更快,这样就能获得两次的交易过程,等同于这份交易中的数字资产被合理运用了两次。我们去追寻导致这个问题所发生的原因,才发现,在区块链系统中,最长的那条链就是最有效的链。

  51%攻击,又被称为Majority attack。这种攻击是通过控制网络算力实现双花。如果攻击者控制了网络中50%以上的算力,那么在他控制算力的这段时间,他可以将区块逆转,进行反向交易,也就是上文提到的新区块覆盖过去区块的那笔交易,实现双花。

  比如在BTG和BSV上发生的双花问题就属于51%攻击。攻击者控制BTG网络上51%以上的算力,在控制算力的期间,他把一定数量的BTG发给自己在交易所的钱包,这笔交易被区块A打包。同时,他又把这些BTG发给另一个自己控制的钱包,这笔交易被打包在区块B。

  区块A上的交易被确认后,攻击者立马卖掉BTG,拿到现金。这时候,区块A成为主链。然后,攻击者在区块B上进行挖矿,由于其控制了51%以上的算力,那么攻击者获得记账权的概率很大,于是很快,区块B的长度就超过了主链,也就是区块A的长度,那么区块B就会成为主链,区块A上的交易就会被回滚和覆盖掉,A区块上的地址就永远都收不到这笔转账了。

  如何预防双花交易?

  双花问题最需要解决的问题,其实就是时间的问题。如何在用户发起交易的过程中,去记录第一笔交易的时间和攻击者发出交易的时间,来选择最长链,这是解决该问题的关键。在区块链系统中,我们会经常听到一个词——时间戳。我们就以它为代表,举例说明如何解决双花问题?

  首先,我们要了解时间戳的概念。用最简单的方式来讲,就是对每一笔交易进行了盖章确认,并记录了交易发起的时间。类似于生活中,最为常见的买卖双方签订合同,有双方的签名以及合同生效的时间。也就是说,通过时间戳,用户发起的每一笔交易都能有时间记录,当攻击者在交易过程中发起交易时,系统能够分辨出交易发起的时间,根据时间顺序来看,就能够迅速确认第一笔交易时间。这样一来,就不会存在最长链就是最有效链的情况。

上一篇:比特币又攀4万美元大关,是何缘由??

下一篇:比特币可以买车了?

猜您喜欢
关于我们联系我们作者投稿APP下载