比特币重复交易漏洞: 罕见但潜在影响深远

robot
摘要生成中

比特币中的重复交易:一个有趣但风险极低的漏洞

比特币交易通常通过引用前一笔交易的ID来使用未花费的输出。这些输出只能被使用一次,否则会导致双重支付问题。然而,比特币历史上确实出现过两组完全相同的交易。这是因为coinbase交易没有输入,只有新生成的币。因此,两个coinbase交易有可能发送相同数量到相同地址,构建方式完全一致,从而生成相同的交易ID。

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

这两组重复交易发生在2010年11月14日至15日之间,时间跨度约16小时。第一组重复交易被夹在第二组之间。我们将交易ID以d5d2开头的归类为第一个重复交易,尽管它在区块链上首次出现时间较晚。

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

这些重复交易各自价值50 BTC,总共涉及200 BTC,或者可以理解为100 BTC。截至目前,这200 BTC都未被使用。理论上拥有相关私钥的人可以使用这些比特币,但只有100 BTC可能被找回,另外100 BTC将无法使用。至于这些币被使用时来自哪个区块,可能是无法确定的。

重复交易会给钱包和区块浏览器带来混乱,也可能被用于攻击。例如,用两笔重复交易向某人支付两次,但接收方最终只能收回一半资金。这可能被用来攻击交易所,试图使其资金出现问题。

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

为解决这一问题,2012年3月实施了BIP30软分叉,禁止使用重复交易ID,除非前一个交易已被使用。2012年9月,这一规则被进一步修改,适用于所有区块,只保留了前文提到的两组重复交易。

2013年3月激活的BIP34要求coinbase交易包含区块高度,这基本解决了重复交易问题。此后,节点停止了昂贵的BIP30检查。

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

然而,BIP34激活前仍有一些coinbase交易的scriptSig首字节恰好与未来有效的区块高度匹配。下一个可能出现重复交易的区块是1,983,702,预计在2046年1月产生。但利用这一漏洞的成本很高,需要烧掉约170 BTC,按当前价格计算超过1500万美元。

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

考虑到复制交易的难度和成本,以及利用机会极其罕见,这个漏洞并不是比特币的主要安全问题。不过,从长远来看,开发人员可能会在2046年之前通过软分叉等方式彻底修复这个问题。

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

BTC-0.1%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 转发
  • 分享
评论
0/400
Gas_FeeCriervip
· 08-07 02:02
13年的老btc虾米 早该修这bug了
回复0
StakeWhisperervip
· 08-06 14:11
比特币老八卦了
回复0
GasWastervip
· 08-04 05:30
哈哈,想象一下,当我在失败的交易上支付3倍的矿工费时,居然还担心交易重复,真是无语。
查看原文回复0
HackerWhoCaresvip
· 08-04 05:30
50枚btc 想想都心痛啊
回复0
hodl_therapistvip
· 08-04 05:12
炒到我头晕 啥时候有利好
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)