我们来上一节区块链小课,聊聊什么是“双花”(Double Spending)。
"简单来说:"
双花就是"试图用同一笔数字货币,进行两次或两次以上的支付"。想象一下,你有一张 100 元的钞票,但你试图用它去买 A 商品,同时又用它去买 B 商品。这在现实世界用实体货币是行不通的,因为一张钞票物理上只能花一次。
在数字货币和区块链的世界里,这个问题也曾是早期技术需要解决的核心难题之一。
"为什么会出现双花风险?"
在数字货币诞生初期,或者说在没有采用区块链技术的情况下,数字货币的转移依赖于中心化的机构(比如早期的比特币开发者节点)。这些机构负责记录谁拥有多少货币。如果只有一个机构,或者多个机构但它们之间可以互相串通,那么恶意用户就可能:
1. "第一次“花费”:" 告知机构 A,将他的货币转移给收款人 C。
2. "第二次“花费”:" 告知机构 B(或者另一个受其控制的机构),将"同一笔"货币转移给收款人 D。
由于记录是分散或可以被篡改的,机构可能只确认其中一笔交易(比如只告诉 C 交易成功了),而另一笔交易(告诉 D)也可能被它接受。这样,同一笔数字货币就似乎被花了两遍。
"区块链如何解决双花问题?"
区块链技术
相关内容:

通过 zeechain 区块链小课堂,带大家深入浅出的了解区块链的一些基础知识,了解区块链的应用价值以及区块链未来对生活的影响。
欢迎关注ZeeChain公众号
前面一课我们了解了什么是区块链的“不可能三角”,今天接着说双花。
什么是双花?

双花就是一份钱被花两次,这是数字货币领域最大的难题。
现实生活中不可能发生,每一个交易背后都由银行等权威中心机构在记账,要么确认了交易,要么失败,不会让你一份钱花两次。
在区块链的世界里,是由分布式、协同维护的数据库网络组成,背后依托的是一大批的矿工在记账,其目的就是去中心化的完成点对点的交易,避免双花就是这个网络的核心问题了。
比特币的革命性就凝结在一点上:那就是防止双花。
防止双花的两个重点
一、时间戳机制:
区块有明确的时间顺序,交易信息广播后,先被打进区块中的交易,就被认为是合法的,之后的交易就会被网络拒绝。
一个交易并不是在被矿工写到一个区块上时就生效了,而是要等这条链真正的成为了链上的最长链之后,才认为交易真正不可逆。这也就是为什么每次转账后,都建议等待六次确认,交易所在区块之后每新增一个区块,就是一次确认,等待六次确认之后,大部分矿工都承认这条链是最长链,交易将不可逆转。
二、最长链原则:
比特币的POW共识机制里,矿工通过记账获得挖矿奖励,以最长链为原则,只有在最长链上挖矿的矿工才可以获得奖励。
由于随机数和网络延迟等原因,可能会出现两个矿工同一时间挖出区块,如果他们一起参与记账,就会造成区块链分叉。
系统会根据最长链进行取舍,哪条链上新产生的区块可以使得区块链变得更长,哪条便是最长链(主链),而短链则被所有矿工淘汰,矿工通过记账来换取挖矿奖励,即使部分节点矿工作恶修改账本,其节点也不会承认,从而避免双花。
可以说“最长链原则”保障链比特币网络的安全和稳定共识。
