比特币重复交易漏洞:有趣的历史遗留问题与微小风险

robot
摘要生成中

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

比特币系统中存在一个罕见的现象:两组完全相同的交易。这种情况之所以可能发生,是因为coinbase交易没有任何输入,而是直接产生新币。因此,两个不同的coinbase交易有可能向相同地址发送相同数量的币,并以完全相同的方式构建,使它们完全一致。由于这些交易内容相同,它们的交易ID(TXID)也会匹配,因为TXID是交易数据的哈希值。

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

这两组重复交易都发生在2010年11月14日至15日之间,时间跨度约16小时。第一组重复交易(TXID:d5d2....8599)夹在第二组之间。虽然d5d2....8599首先成为复制品,但奇怪的是它在区块链上首次出现时间反而晚于另一个重复交易e3bf....b468。

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

重复交易显然会带来一些问题。它们可能导致钱包和区块浏览器混乱,也会让人难以追踪比特币的来源。更严重的是,它还可能被用于攻击。例如,攻击者可以用两笔重复的交易向某人支付两次,但实际上接收方只能收到一半的资金。这可能被用来攻击交易所,试图让其资不抵债。

为了解决这个问题,比特币开发者采取了多项措施:

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

  2. 2012年9月,Greg Maxwell修改规则,使BIP30检查适用于所有区块,而不仅仅是2012年3月15日之后的区块。

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

  4. 2015年11月,开发者移除了节点的BIP30检查,因为BIP34已经解决了这个问题。

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

然而,BIP34并非完美无缺。在BIP34激活之前的一些区块中,coinbase交易的scriptSigs的第一个字节恰好与未来有效的区块高度匹配。这意味着仍然存在极小的可能性产生重复交易。

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

下一个可能出现重复交易的区块是1,983,702,预计将于2046年1月左右产生。但要利用这个漏洞,矿工需要付出巨大代价。按当前比特币价格计算,攻击成本可能超过1500万美元,而且几乎没有实际收益。

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

之后的潜在漏洞区块要等到2078年才会出现,届时攻击成本可能更加高昂。此外,自2017年SegWit升级以来,coinbase交易还包含对区块中所有交易的承诺,这进一步增加了攻击难度。

综上所述,虽然这个重复交易漏洞理论上存在,但考虑到利用它的难度、成本以及极其罕见的机会,它并不构成比特币的主要安全威胁。尽管如此,这个问题仍然引发了开发者的关注,他们可能会在2046年之前寻求彻底修复这个漏洞,可能通过软分叉的方式实现。

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

BTC0.21%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
AllInAlicevip
· 15小时前
老毛病了,谁还怕这个
回复0
Ser_Liquidatedvip
· 15小时前
BTC永不老 摸着良心赚钱
回复0
薛定谔的私钥vip
· 16小时前
早就修复了,老黄历了
回复0
ForkMongervip
· 16小时前
永远不会太晚进行一些治理的恐慌传播...
查看原文回复0
钱包管理员vip
· 16小时前
瑕不掩瑜 链上安全第一
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)