主页 > 海外版imtoken > 区块链中比特币技术的双花是什么概念

区块链中比特币技术的双花是什么概念

海外版imtoken 2023-01-18 11:05:15

本文主要讲解“区块链中比特币技术中双重支付的概念是什么”。文章中的讲解内容简单明了,易学易懂。请按照小编的思路,越走越深。快来研究学习《区块链中比特币技术的双花是什么概念》!

双重支出概念

比特币充当电子货币,不利用第三方机构。首先要解决的问题是:如何防止双花?双花只是意味着一种货币被多次使用。

这个约束可以用比特币的结构来表达:一笔交易的输出最多连接一笔交易的输入,也就是最多被消费一次。

双花是比特币系统必须解决的问题。对应的防火墙有两种,一种是本地检测,一种是分布式协议。

怎么用比特币支付

理想情况

我们之前介绍过一个理想的工作模式:严格按照每10分钟一个节点挖矿,10分钟内所有节点可以到达一个区块。

在这种理想的工作模式下,系统会不会出现双重支出?惯于。快速浏览一下:现在有两张钞票 A 和 B,没有特定的顺序,它们都花费了相同的比特币。

(1)第一种情况:假设A先于B写入区块链,当一个节点挖了矿准备写入B时,根据我们之前的假设,这个节点已经同步了最新的区块链。因此,A已经在这个节点的本地链上,通过本地检查发现B不合法,直接扔掉B。

(2)第二种情况:A和B还没有被写入区块链。并且都被一个节点接收到了。这个时候节点直接在本地检查所有的是否有冲突在候选块中票据,并检查A和B B,丢弃后面的。

怎么用比特币支付

如您所见,在理想情况下,本地支票可以避免双重支出。但现实呢?

现实

现实情况是,在节点挖出矿石之前,不一定是严格意义上的 10 分钟。可能是一个节点每隔任意时间挖一个矿石,或者两个节点同时挖一个矿石。并且可能存在网络分区导致一个区块广播到所有节点需要多长时间是不确定的。

由于一个节点挖一个地雷怎么用比特币支付,直接写入本地区块链,无需征求其他节点同意,便于各节点维护不同维护。但是,它毕竟是一个分布式系统,不同的节点总是会相互通信。当它们通信时,会检测到冲突,类似于 git 分支合并。 git分支合并冲突交给用户手动解决是可以的,但是比特币的冲突可以由系统解决。中本聪给出了一个简单的解决方案:

以最长链为有效链,最长链后需要添加新区块,短链会在一定时间后被丢弃。

怎么用比特币支付

这类似于排队上车。此时,有两支队伍。管理员说,以最长的线路为准。如果你去前面,你会去最长的队列。此时,短链将被丢弃。举个例子:

区块链中比特币技术的双重支付概念是什么

上面是节点A的链,下面是节点B的链,当节点A收到B的链时,A会丢弃绿色块,同步B的链,继续写入黄色块。

可能的双重支付

在这个机制下,是否有任何漏洞可以让我花费超过一美元?是的。我可以先把交易写入区块链,然后想办法丢弃交易,也就是把这个交易的链分支做一个短分支(同时写一个长分支),这样这个分支就不会被识别了。我可以继续创建新交易来花钱。

怎么用比特币支付

好了,我准备好了,我要开始做坏事了,看示例图:

区块链中比特币技术的双重支付概念是什么

我控制节点A。交易A是第一笔交易,已经广播给其他节点。为了使交易A失效,我需要重新打开一条黑链包含交易B。其实就是和其他节点的赛跑。我需要先赶上绿链,再超越绿链一个区块,这样才能同化其他节点。

这需要我连续挖两个地雷。这是什么概念?从概率上讲,这相当于拥有了比特币系统中一半以上的计算资源。我这么嚣张,还需要黑系统吗?我只需要努力挖矿就能获得高额奖励。

不过,更多的情况如下:

怎么用比特币支付

区块链中比特币技术的双重支付概念是什么

我的算力和别人差不多怎么用比特币支付,当我挖一个矿,写一个黑块的时候,另外两个节点已经挖了两个矿了,互相同步数据不会抓到我,和差距将继续扩大。最后只能选择放弃抵抗。

这里还有一个细节:区块是一个一个广播的,而不是整个链。因此,当一个节点接收到一个与自己的分支冲突的块时,它不会立即被丢弃。会先在本地缓存,当所有缓存块形成的分支超过当前工作分支时,会切换到最长的分支。

一般来说,当链上一个区块后面跟着6个区块时,可以确认这个区块中的所有交易都不会被丢弃,所以比特币账单的确认时间是1小时。

感谢阅读,以上是《区块链比特币技术中双重支付的概念是什么》的内容。我对双重支付的概念有更深的理解,具体的使用方法有待大家验证。这里是易素云,小编会为大家推送更多相关知识点的文章,欢迎关注!