提到比特币,很容易联想到比特币交易安全问题,说道比特币交易安全,首先想到的就是比特币双花问题,那么,币圈小白就会有疑问了,比特币双花是什么?比特币双花原理又是什么呢?这些问题币圈子小编就来为大家解答一番。
比特币双花定义
双重支付又名“双花”,也就是双重花费的意思。举个例子:如果我钱包里面有100元,我可以去购买等值的物品。当我去商店后,发现台灯和桌子都是100元,那我只能买其中一样东西。而我们所说的双花问题,正好与之相反,同样的100元,我可以购买两样东西。
在加密货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产被重复使用的情况,这也称之为双花,又叫双重消费攻击。
比特币双花原理:
某作恶人在第101号区块的时候,将10个比特币充值到某交易所。一般交易所在第6个确认的时间就会认为已充值成功。这时作恶的人会赶紧卖出提现。
但随后,作恶节点人还偷偷的构造了另一笔交易(只需要修改101号区块里面的交易信息)将充值的那10个比特币,收款人地址修改成给他的小号。他把这个恶意的块发给了其它的矿工(举例为红色那条链)
这个时候,只要作恶节点在红色链上投入大量的算力,且算力大于51%,那他挖矿的速度肯定比小于49%的诚实节点要快,最终红色的那条链一定会超过黑色的链,其它诚实结节根据最长链优先原则又纷纷到红色链上继续挖矿,而黑色链之前发生的所有交易(其实只有其中那一笔交易是伪造的)就回滚了。
这样,作恶节点人是不是把这10个比特币花费了二次呢?他即在交易所充值成功,又把比特币拿回去了,比特币交易所就白白损失了10个BTC。
比特币双花可以分为两种情况:
1.在确认前的双花
这个因为原理,确认的交易本来就可能最后没有写入区块链。除非小额,否则最好等一下确认即可规避此类双花。另外用链下钱包也可以,可秒速。
2.确认后的双花
这个就要控制超50%的算力才能实施了。即类似于一个小分叉,将给一个商店的交易给放入孤立区块中。不过,这种确认后双花,很难实施,目前好像还没有任何此类双花的案例,只是存在在理论上可行。
比特币双花问题是如何发生的?
在区块链系统中,比特币双花问题会在以下情况下出现:
1、由于共识机制导致区块确认时间长,用一个数字货币去进行一次交易,可以在这笔交易还未被确认完成前,进行第二笔交易。
2、控制算力来实现双花,第一次交易被验证通过并被记录入区块后,在该网络中有更高的算力验证出新的更长链条,在该链条中这笔钱被第二次花费,由于第二次花费的区块链条更长使第一次交易区块所在链条为无效链条,这样一来,第一次交易所在的区块链被区块链网络放弃,第一次花费的钱就又回到自己账户了,就导致了双花问题。