比特币重复交易之谜:罕见漏洞与未来挑战

robot
摘要生成中

比特币交易重复现象:一个有趣但风险极小的漏洞

概述

比特币交易通常通过引用前一笔交易的ID来使用未花费的输出。这些输出只能被花费一次,否则会导致双重支付问题。然而,在比特币历史上确实存在两组完全相同的交易。这种情况之所以发生,是因为coinbase交易没有输入,而是产生新币。因此,两个不同的coinbase交易有可能以完全相同的方式构建,使它们的交易ID也相同。除此之外,只有发生哈希碰撞才可能出现重复的交易ID,但这在加密安全的哈希函数中几乎不可能发生。

这两组重复交易都发生在2010年11月14日至15日之间,跨度约16小时。虽然d5d2....8599在区块链上晚于e3bf....b468出现,但我们仍将其归类为第一个重复交易。

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

重复交易详情

mempool.space区块浏览器显示了第一个重复交易在两个不同区块中重复出现的情况。有趣的是,不同的区块浏览器在显示重复交易时可能会有不同的默认行为。

在涉及的四个区块中,只有一个区块包含了其他交易,将1 BTC和19 BTC合并成了一个20 BTC的输出。

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

重复输出的可花费性

每个重复交易的价值为50 BTC,总共涉及200 BTC或100 BTC,取决于理解方式。截至目前,这些比特币都未被花费。理论上,拥有相关私钥的人可以花费这些比特币,但只有100 BTC实际可被找回,因为重复的50 BTC将无法花费。至于这些币被花费时会从哪个区块中支出,可能是未定义的。

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

重复交易的问题

重复交易会给钱包和区块浏览器带来混乱,也会引发潜在的攻击风险。例如,可能会导致重复支付或对交易所的攻击。

解决措施

为了解决重复交易问题,比特币社区采取了以下措施:

  1. BIP30:2012年提出并实施,禁止使用重复TXID进行交易,除非前一个TXID已被花费。

  2. BIP34:2013年激活,要求coinbase交易包含区块高度,使得所有交易都应该是唯一的。

  3. 停止BIP30检查:2015年,由于BIP34的实施,节点停止了昂贵的BIP30检查。

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

潜在风险

尽管BIP34解决了大部分问题,但在BIP34激活前的一些区块中,coinbase交易的scriptSigs可能与未来的区块高度匹配,仍存在潜在的重复风险。下一个可能出现重复交易的区块是1,983,702,预计在2046年1月左右产生。

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

结论

考虑到复制交易的难度、成本以及利用机会的稀少性,这个漏洞并不构成比特币的主要安全威胁。然而,由于其独特性和长期影响,它仍然是一个值得关注的有趣问题。未来可能需要通过软分叉等方式来彻底修复这个问题。

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

BTC0.65%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 分享
评论
0/400
笨蛋鲸鱼vip
· 23小时前
漏洞有点意思呢
回复0
闪电出击小王子vip
· 23小时前
早期代码真随意
回复0
retroactive_airdropvip
· 23小时前
区块链没那么简单
回复0
钱包恐慌症患者vip
· 23小时前
哈希值坏了也不慌
回复0
论坛潜水怪vip
· 23小时前
当年细节才吓人
回复0
大饼单日线研究者vip
· 23小时前
隐藏BUG被挖出来了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)