比特币重复交易漏洞:历史趣事与未来挑战

robot
摘要生成中

比特币重复交易:一个有趣但影响有限的漏洞

比特币网络中存在一个有趣的漏洞 - 重复交易。正常情况下,比特币交易通过引用前一笔交易的ID来使用未花费的输出。这些输出只能被花费一次,否则就会导致双重支付问题。然而,在比特币历史上确实出现过两组完全相同的交易。

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

这种情况之所以可能发生,是因为coinbase交易没有输入,而是直接生成新币。因此,两个不同的coinbase交易有可能向相同地址发送相同数量的比特币,从而构建出完全一样的交易。由于交易内容相同,其交易ID(TXID)也就相同了。

这两组重复交易发生在2010年11月14日至15日,时间跨度约16小时。第一组重复交易ID为d5d2....8599,第二组为e3bf....b468。有趣的是,d5d2....8599虽然先成为复制品,但在区块链上却晚于e3bf....b468出现。

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

这些重复交易每笔价值50 BTC,总共涉及200 BTC。从某种角度看,其中100 BTC实际上并不存在。截至目前,这200 BTC都未被花费。理论上拥有相关私钥的人可以花费这些比特币,但一旦被花费,重复的50 BTC就会丢失,因此实际上只有100 BTC可被找回。

重复交易显然会给钱包和区块浏览器带来混乱,也可能被利用进行攻击。例如,攻击者可以用两笔重复交易向交易所存入资金,然后立即提取,试图使交易所破产。

为了解决这个问题,比特币社区采取了多项措施:

  1. 2012年3月,BIP30软分叉禁止使用重复TXID进行交易,除非前一个TXID已被花费。

  2. 2012年9月,Greg Maxwell修改规则,使BIP30检查适用于所有区块,但保留了前面提到的两个重复交易。

  3. 2013年3月,BIP34软分叉要求coinbase交易包含区块高度,这基本解决了重复交易问题。

  4. 2015年11月,比特币核心停止进行BIP30检查,因为BIP34已经修复了这个问题。

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

然而,在BIP34激活之前的一些区块中,coinbase交易的scriptSigs第一个字节恰好与未来有效的区块高度匹配。这意味着重复交易问题并未100%解决。下一个可能出现重复交易的区块是1,983,702,预计在2046年1月左右产生。

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

不过,利用这一漏洞的成本非常高。以区块1,983,702为例,攻击者需要烧掉约170 BTC的费用,按当前价格计算约1500万美元。而且这些资金很可能无法收回。此外,自2017年SegWit升级后,coinbase交易还包含对区块中所有交易的承诺,进一步增加了攻击难度。

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

考虑到复制交易的难度和成本,以及利用机会的稀少性,这个漏洞并不构成比特币的主要安全威胁。尽管如此,开发人员仍在努力寻找修复方案,可能需要通过软分叉来实现。一种可能的方法是强制执行SegWit承诺。

总的来说,虽然重复交易漏洞很有趣,但其实际影响非常有限。它更多地体现了比特币网络的复杂性和开发者们不断完善系统的努力。

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

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 分享
评论
0/400
无情的套利机器vip
· 18小时前
有bug就是有钱赚啊
回复0
Liquidation Survivorvip
· 18小时前
你修bug我加仓~
回复0
PebbleHandervip
· 18小时前
修到现在都还没搞定?
回复0
ShibaMillionairen'tvip
· 18小时前
长安不咋地还是麻烦事
回复0
无常损失心理医生vip
· 18小时前
节点出问题,人家早就料到啦
回复0
烤猫铁粉vip
· 18小时前
哎哟 这bug咋看着有点眼熟...
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)