主页 > imtoken被检测为风险软件 > 比特币双花问题详解

比特币双花问题详解

imtoken被检测为风险软件 2023-05-29 05:26:45

我们知道,在比特币系统出现之前,各行各业的IT前辈们一直在探索一种不依赖中央机构的电子支付系统,但是由于技术上的原因,总会出现一些无法规避的问题,所以他们屡屡失败。在这些问题中,最突出的有两个:一是双花问题,二是拜占庭将军问题。 然后我们将讨论“双花”,拜占庭一般问题,请参阅上一篇文章

所谓双花,顾名思义,就是把一张钱花两次,它的英文是“Double Spending”。 因为在所有节点平等的网络中,没有中央机构做统一调度,所以无法及时有效地检查交易何时发生。 ,以可靠地更新交易双方的账户余额,这将导致系统无法正常运行。

比特币根据一种特定的机制(utxo + 时间戳 + 工作量证明)巧妙地解决了双花问题。

下面我们来分析一下“双花”的各种场景,并一一讨论比特币是如何破解的。

背景:A只有1个BTC,A付给B 1个BTC,B付给A一个二手Alto,A想干坏事,想发起双花

外国的比特币便宜中国的比特币贵为什么?_比特币价值比特币最新_比特币双花问题是什么

双花场景一:A支付给B完成,交易已经被账本确认。 然后,A重新发起交易,A转1BTC给A。

解读:此时,由于A的余额已经为0(A地址中没有可以支付的UTXO,后面会讲到UTXO比特币双花问题是什么,可以理解为当前余额),所以双花失败。

双花场景2:在同一个相邻网络中,A支付给B 1BTC,然后发起另一笔交易A支付给A 1BTC

外国的比特币便宜中国的比特币贵为什么?_比特币价值比特币最新_比特币双花问题是什么

解读:此时相邻节点收到两笔交易,则比特币网络节点会根据“时间戳”做出选择,只接收最先收到的交易,二选一,因此双花失败。

双花场景三:在不同的网络区域,先后发起了两笔交易,分别是交易A支付给B 1BTC和交易A支付给A 1BTC。 由于网络延迟,这两笔交易由不同的矿工打包

解读:此时,会出现两种情况:

比特币价值比特币最新_比特币双花问题是什么_外国的比特币便宜中国的比特币贵为什么?

1、如果矿工确认其中一笔交易比特币双花问题是什么,另一笔将被丢弃,因为交易中的utxo已经被消耗,钱已经花完,交易被认为无效,双花失败。

2、这两笔交易是由两个不同的矿工同时挖出的。 此时,比特币网络会同时保留两个区块(孤块概念),等待新区块的到来。 该链将被认为是正确的(最长链机制),而另一个块将被丢弃。 此时仍然只有一笔交易被确认,所以双花失败。

如图,新区块选择区块M,所以双花失败

外国的比特币便宜中国的比特币贵为什么?_比特币价值比特币最新_比特币双花问题是什么

比特币价值比特币最新_外国的比特币便宜中国的比特币贵为什么?_比特币双花问题是什么

双花场景四:场景三双花失败,A和B正常交易,A收到货后立即转为矿工挖矿,连续追两个区块

解读:如果A的算力足够大(不需要达到51%),那么完全有可能连续追上两个区块,然后原链就会被丢弃。 .

外国的比特币便宜中国的比特币贵为什么?_比特币双花问题是什么_比特币价值比特币最新

比特币价值比特币最新_外国的比特币便宜中国的比特币贵为什么?_比特币双花问题是什么

解决方案:为防止场景4在比特币系统中发生,建议一笔交易写入区块链后,经过5个区块(1小时)确认后,交易才算真正成功。

在白皮书中,中本聪计算出连续6个区块确认后被追上的概率为:0.0002428%,这个概率很小,可以认为是安全的

但是,如果矿工拥有的算力真的达到51%,那么双花是肯定会发生的,追上最长链只是时间问题。 曾经有一个算力接近51%的矿池。 ,引起了整个链圈的关注。 后来矿池采用拒绝矿工接入的方式来完成算力的分散。 不过话虽如此,如果一个人真的拥有51%的算力,那么双花攻击只会损害他的个人利益,因为他已经可以通过挖矿获得足够的利润了,何必自相残杀呢~

2018.05.28

北京昌平