主页 > 如何从imtoken转出以太坊 > 区块链分析(十):双花问题你需要什么

区块链分析(十):双花问题你需要什么

如何从imtoken转出以太坊 2023-10-21 05:09:31

我们都知道,你不能在日常生活中花两次钱。比如你去便利店买东西,你给店员5元现金买一瓶饮料。买了之后觉得饿了就想买一个。面包,如果我用刚才付给店员的5块钱再买一个面包,可以吗?当然不会,除非店员对你感兴趣。

如果同一笔钱被支付两次或多次,则为双花比特币双花是指什么,也称为双花。这在现实生活中是行不通的,但是在数字货币系统中,由于数据的可再现性比特币双花是指什么,系统可能会因为操作不当而导致相同的数字资产被重复使用。

很多人看到这个的时候都在想。我们平时在淘宝上买东西都是用支付宝,还有微信扫码支付、红包等支付方式,不需要现金。花这么酷的东西。那是因为支付宝和微信上的钱不存在于数字世界,而是存在于现实世界的银行中。我们在淘宝下单给卖家付款的时候,其实是先把钱付给支付宝,然后支付宝把钱存到他们的银行账户里。当我们确认收货后,支付宝从银行账户中取出款项,并支付给卖家给卖家。 .

不存在双花问题的原因就在这里。付款是实时进行的,由银行、支付宝和微信等中央机构计费。日常生活中转账或支付时,先从我们的账户中扣款,然后由银行确认交易,不会出现重复交易的情况。我们经常从我们的银行账户充值到微信支付宝找零。这个时候,银行先扣款,确认交易,然后微信支付宝管理我们的数据,实时修改账户余额,包括以后用这些变化进行支付。 ,所有这些都通过这些第三方中央机构来管理和确认我们的数据,以防止双重支出。

比特币双花是指什么

我们所说的数字世界是一种虚拟的数字货币,一种去中心化的数字资产,排除了中介的第三方机构。在区块链系统中,以下情况会出现双花问题:

一、由于共识机制,区块确认时间长,使用数字货币进行交易,可以在交易确认完成之前进行第二次交易。

二、 控制算力实现双花。在第一笔交易被验证并记录在区块中后,网络中有更高的计算能力来验证新的更新。一条长链,第二次在其中花费了钱,因为第二次花费的区块的链较长,第一个交易块所在的链是无效链,所以第一个交易在链上。区块链被区块链网络抛弃,第一次花的钱又回到账户,导致双花问题。

也有很多情况,比如通过控制矿工费进行双花,或者有些人为了节省时间而接受0确认,很容易被攻击者利用。

比特币双花是指什么

2018年5月,一名恶意矿工获得至少51%的比特币黄金(BTG)网络算力,临时控制比特金(BTG)区块链,在控制算力期间,他发送了一定数量的比特币黄金(BTG)区块链。 BTG 到他在交易所的钱包,这个分支我们命名为分支 A。同时,他将这些 BTG 发送到另一个自己控制的钱包。我们将此分支命名为分支 B。

A 分支的交易被确认后,攻击者立即出售 BTG 并获得现金。此时,分支 A 成为主链。然后,攻击者在 B 分支上挖矿。由于它控制了超过 51% 的算力,攻击者获得记账权的概率很高,所以很快,B 分支的长度就超过了主链(B 分支)。 A),那么分支B会成为主链,分支A上的事务会被回滚(回滚是指程序或数据处理错误,使程序或数据恢复到上次正确的状态)。分支A恢复到攻击者发起第一笔交易之前的状态,攻击者之前兑换现金的BTG回到自己手中(这些BTG就是交易所的损失),实现了双花攻击。攻击者可能从交易所窃取了超过 388,200 个 BTG,价值高达 1860 万美元。

看来对于攻击者来说,双花确实很爽,但是项目方应该哭了。事实上,双花问题并非无法解决。比特币的创始人中本聪想了很久。通过UTXO和时间戳,以及每笔交易必须确认六次的要求,比特币不会出现双花现象。问题。

UTXO

比特币双花是指什么

UTXO 是比特币交易的基本单位,指的是未花费的交易输出。通俗的理解是:看有多少交易给了我多少钱我不花,我有我有多少钱。当用户收到比特币时,该金额将作为 UTXO 记录在区块链中。每个未使用的交易输出都记录在比特币系统中。比特币交易被创建并广播到区块链网络后,接收到交易信息的节点会验证该交易,需要在UTXO数据库中检查是否存在于UTXO中。如果交易输出不再存在于 UTXO 中,则验证失败。

时间戳

当一个用户同时向两个人转账 1 个比特币时,两个交易中只有一个会成功,因为矿工会选择先记录收到的。 ,或以较高的费用交付交易。交易被矿工连续记录后,根据时间戳(详见上一篇《区块链分析7》)数据证明第一笔记录的交易可以成功验证。

六次确认

表示在当前区块之后,再计算5个区块并连接到区块链上,每个区块相当于前一个区块。区块被确认后,区块链上每增加一个区块,都会增加前一个区块被篡改的难度。 6个区块后,认为不可篡改,则认为交易完成。

比特币双花是指什么

分叉

这里想提一个概念——分叉:全网多个节点可以在同一时间段内计算随机数,即同时挖出地雷,这些节点会链接自己拥有的地雷挖掘到他们自己的本地区块链,这将导致区块链中的一个分叉。他们会在网络上广播自己打包的区块,以便其他节点同步最新的数据。之后,继续在最新的区块链上挖矿。由于距离的原因,不同矿工看到的区块是按顺序排列的,矿工会先复制自己看到的区块,然后继续在这个区块上开始新的挖矿工作。最终确认其中一条链为较长的一条,然后工作在另一条分支链上的节点将切换阵营并开始在较长的链上工作,这条链将成为主链,其他分叉链will be 它将被遗弃并从网络中消失。这也是避免双花问题的好工具。

比特币解决双花问题的措施总结:

1.首先,每笔交易都要先确认对应比特币之前的情况,检查是否存在于用户的UTXO中。否则,交易将被系统拒绝。

比特币双花是指什么

2.如果用户用相同的UTXO向两个人付款,系统中的节点只确认先收到的那个。

3.当两个及时关闭的交易被不同的节点确认时,区块链会分叉。其余节点选择在他们认为最长的链上构建新块。

4.其中一笔交易被6个节点确认后,将成为系统中最长的链,此笔交易可视为最终确认。

虽然比特币从来没有出现过双花问题,但也不是绝对不可能的,比如 51% 攻击。但为什么没人做呢,首先是因为成本太高,没有人能轻易掌握51%的节点。即使一个人已经掌握了 51% 的节点,他已经是比特币网络中最大的受益者。如果发起 51% 攻击,他可以赚取短期利润,但比特币的价值将遭受毁灭性的​​打击。将是最大的受害者。

之前出现的双花问题都在一些山寨币和小项目中。由于攻击成本相对较低,因此必须注意安全问题。资产安全使区块链和数字货币的更多应用成为可能。以上是对双花问题的介绍。很荣幸能帮助到您。