比特币重复交易漏洞:历史罕见案例与未来潜在风险

robot
摘要生成中

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

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

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

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

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

重复交易的出现给钱包和区块浏览器带来了混乱,也让人难以确定比特币的来源。它还可能带来攻击和漏洞风险。例如,可以用两笔重复交易向某人支付两次,但实际上只有一半资金可以使用。

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

为了解决这个问题,2012年3月实施了BIP30软分叉,禁止使用重复交易ID,除非前一个已被花费。同年9月,这一规则被修改为适用于所有区块,只有最初的两组重复交易除外。2013年3月,BIP34软分叉要求coinbase交易包含区块高度,这似乎彻底解决了重复交易问题。

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

然而,BIP34激活前的一些区块中,coinbase交易的scriptSig第一个字节恰好与未来有效的区块高度匹配。这意味着在某些极少数情况下,重复交易仍有可能发生。下一个可能出现重复交易的区块是1,983,702,预计将于2046年1月左右产生。但利用这一漏洞的成本很高,需要烧掉大量比特币,对攻击者几乎毫无用处。

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

考虑到复制交易的难度和成本,以及利用机会极其罕见,这个漏洞并不构成比特币的主要安全威胁。不过,从长期来看,开发人员可能会在2046年之前寻求彻底修复这个问题,可能需要通过软分叉来实现。一种可能的修复方法是强制执行SegWit承诺。

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

BTC2.7%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 转发
  • 分享
评论
0/400
无情哈拉vip
· 08-03 13:23
这个漏洞很新鲜
回复0
RektButAlivevip
· 08-01 06:06
见证历史时刻了
回复0
韭当割就跑vip
· 08-01 06:06
风险不容忽视啊
回复0
Liquidity_Wizardvip
· 08-01 05:47
早就注意这漏洞了
回复0
无常损失爱好者vip
· 08-01 05:45
早期bug真的太有趣了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)