http://www.7klian.com

知识百科|什么是双重支付(Double-Spend)

如果同一笔钱(数字货币)被重复支付两次或以上,就是双重支付问题,解决这个问题就相当于数字货币的防伪技术。这个问题在物理货币世界并不存在,因为你无法复制黄金。

区块链中解决了数字货币中的一项关键技术,称为“双重支付”,即double-spend。即一笔数字资产既支付给了A,又支付给了B。有些书或网络文章中也把double-spend直译为“双花”,让人费解,千万别理解为两朵花。

在区块链分布式数据库中,去中心化的信任机制是其核心,任何两方都可以在区块链应用项目中进行直接交易,而无需经过第三方公信机构。在最初的比特币白皮书中,中本聪阐述了如何建立点对点的数字货币系统,目的是实现在线支付从一方直接传输至另一方,没有第三方机构的参与。这个系统解决了当前电子货币中一个重要的问题:即“双花”(double-spending)。

在去中心化交易技术之前,这类问题通过中心化的机构来解决,比如:银行。你给A支付了一笔钱,把余额变动一下,想多花也不可能。当然信用卡账户允许你余额还可以支付一定数量的资金,那都是银行说了算。

比特币的创始人中本聪设计了一套完整的体系解决了这个问题,共享大账本(区块链)、去中心化的网络(比特币协议)、交易验证系统(交易脚本)、货币发行(挖矿)等。

大家可能会想,又是挖矿、又是工作量证明,为什么把新区块的产生搞得那么复杂?一个主要原因就是解决在没有建立信任关系的网络中的双重支付的问题,当然这种挖矿机制还能够解决虚假交易、垃圾交易等问题。

这种技术也可以解决“拜占庭将军问题”,即一支分散在多处的军队里混入少数叛徒,如何才能通过一致的行动来保证战争的胜利。关于这个问题,在进阶篇会作更详细解释。

假如你在两台安装有Bitcoin Core的电脑上分别发出了2笔交易(同一笔BTC输入,支付给A和B),这些交易都会向全网广播,矿工在收到这些交易时,不会将两个交易都打包。

万一不小心把A和B都打包了,还有许多其他节点要进行验证,仍会拒绝承认这个区块, 也就是说这笔交易的确认数会一直为。小额交易等待1次确认就行,大额交易等待6次以上的确认就足够的安全。

整个比特币系统中的每一个节点都可以查询每一笔交易的情况,且它们是有时间顺序的(时间戳机制),有一个公认的交易序列,只有当大部分节点都认同这笔交易时,这笔交易才是可信的。想破坏这种机制,需要拥有51%的算力。

在比特币世界里想透支,是不可能的。除了创世区块中的50个BTC是凭空出现的,以后的BTC都是挖矿获得的。你是否拥有1个BTC?通过比特币地址可以查个底朝天,一直追踪到这笔资金的诞生记录。这笔钱是不是你的?通过加密和签名算法来保证,无法伪造。

解决双重支付,必须对于每笔交易建立共识,就是大家都同意的机制,无法达成共识,就会分叉。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。