双花问题
双花实际上指的是双重花费,即一份货币使用了两次。
传统现实中,因为低延迟网络以及中心化管理的原因,是不会出现双花现象,无论是线下交易的现金支付,或者网上支付的第三方监管交易确认,都可以避免双花问题。
那在区块链上面,如何会出现这个问题,又该如何避免?我们通过一个示例来逐步解答:
场景:
首先,以下示例主要是为了帮助大家理解,我们将区块链上的数字资产统称为:比特币(注意:使用比特币来充当数字货币资产是不严谨的,在这里只是为了帮助大家更好的理解)。
假设小明区块链上的账户总资产为10个比特币。小明向全网广播:“我小明向小红支付10个比特币”。
每一个区块链的区块生成都需要相应的时间,具体原因之前的文章探讨过了,这里不做累赘。
此时该交易,通过广播到网络,但由于负责整理区块的矿工们在整理区块时存在时间差,该交易尚未被记录到区块中,并被全网认可,此时,小明立马又发布一条新的广播:“我小明向小黄支付10个比特币”
你可能会认为这就是所谓的双花问题,只要你广播的间隔足够小,就能混淆视听。将一份资产重复消费。很快,小明的其中一笔交易被拒绝了。原因如下:
区块链网络中,每笔交易都需要先确认对应资产之前的状态,如果它之前已经被标记为花掉&#