比特币的重复交易:一个风险极小的有趣Bug

比特币的重复交易:一个风险极小的有趣Bug

概述

一个正常的比特币交易通过引用前一笔交易的交易ID(TXID)来使用至少一个前一笔交易的输出。这些未花费的输出只能被花费一次,如果它们可以被花费两次,你就可以对比特币进行双重支付,使比特币变得毫无价值。然而,在比特币中实际上恰好存在两组完全相同的交易。这种情况之所以可能发生,是因为coinbase交易没有任何交易输入,而是有新生成的币。因此,两个不同的coinbase交易有可能发送相同数量到相同地址,并以完全相同的方式构建,使它们完全相同。由于这些交易是相同的,TXID也相匹配,因为TXID是交易数据的哈希摘要。TXID被复制的唯一其他方式,是哈希碰撞,对于加密安全的哈希函数来说,这被认为是不太可能且不可实现的。像SHA256这样的哈希碰撞在比特币或其他任何地方都从未发生过。

这两组重复交易都发生在相近的时间内,在2010年11月14日08:37 UTC至2010年11月15日00:38 UTC之间,跨度约16小时。第一组重复交易被夹在第二组之间。我们将d5d2….8599归类为第一个重复交易,因为它首先成为复制品,尽管奇怪的是,它在区块链上首次出现是在另一个重复交易e3bf….b468之后。

重复交易详情

在下面的图片中,可以看到来自mempool.space区块浏览器的两个截图,显示了第一个重复交易在两个不同区块中重复出现的情况。

比特币的重复交易:一个风险极小的有趣Bug

比特币的重复交易:一个风险极小的有趣Bug

有趣的是,当在网络浏览器中输入相关网址时,mempool.space区块浏览器在d5d2….8599的情况下默认显示较早的区块,而在e3bf….b468的情况下默认显示较晚的区块。Blockstream.info和Btcscan.org与mempool.space有相同的行为。另一方面,根据我们的基本测试,Blockchain.com和Blockchair.com的行为方式不同,当在浏览器中输入URL时,总是显示重复交易的最新版本。

在相关的四个区块中,只有一个区块(区块91,812)包含了其他交易。这笔交易将1 BTC和19 BTC的输出合并成了一个20 BTC的输出。

这些输出可以被花费吗?

由于存在两组相同的TXID,这为后续交易创造了引用问题。每个重复交易的价值为50 BTC。因此,这些重复交易总共涉及4 x 50 BTC = 200 BTC,或者根据不同的理解方式,可能涉及2 x 50 BTC = a100 BTC。在某种程度上,有100 BTC实际上并不存在。截至今天,所有200 BTC都未被花费。据我们所知(我们可能在这里是错误的),如果有人拥有与这些输出相关联的私钥,他们可以花费这些比特币。然而,一旦被花费,UTXO将从数据库中删除,重复的50 BTC因此将无法花费并丢失,因此只有100 BTC可能被找回。至于如果这些币被花费,它们将来自哪个区块,是较早的还是最近的,这可能是未定义的或无法确定的。

本资讯链接: - 雷电财经
免责声明:本文为用户 深潮精选 投稿,不代表 雷电财经 立场,且不构成投资建议,请谨慎对待。
版权声明:内容及插图归源作者所有。文章为源作者独立观点,不代表 雷电财经 立场。
温馨提示:如您对本文存在异议,或不巧侵犯了您的合法权益,请通过 [ 投稿须知 ] 联系我们删除!

下一篇:没有了