比特币重复交易漏洞: 历史遗留问题与未来挑战

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

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

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

这两组重复交易发生在2010年11月14日至15日,跨度约16小时。第一组重复交易被夹在第二组之间。我们将d5d2....8599归类为第一个重复交易,因为它先成为复制品,尽管它在区块链上首次出现晚于另一个重复交易e3bf....b468。

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

这些重复交易涉及的比特币总额为200 BTC,或者可能是100 BTC,取决于理解方式。截至目前,这些比特币都未被使用。理论上,拥有相关私钥的人可以使用这些比特币,但一旦使用,重复的50 BTC将无法再次使用并丢失,因此实际可用的只有100 BTC。

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

重复交易显然是有问题的。它们会给钱包和区块浏览器带来混乱,也会让人不清楚比特币的来源。它还可能导致一些攻击和漏洞,比如用两笔重复交易向某人支付两次,但实际上只有一半的资金可以使用。

为了解决这个问题,开发者提出了多项改进提案:

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

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

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

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

然而,BIP34并非完美解决方案。在BIP34激活前的一些区块中,存在coinbase交易的scriptSigs第一个字节恰好与未来有效区块高度匹配的情况。下一个可能出现重复交易的区块是1,983,702,预计在2046年1月左右产生。

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

尽管如此,利用这个漏洞的成本和难度都很高。以区块1,983,702为例,矿工需要花费超过170 BTC(按当前价格约1500万美元)来进行攻击,而且几乎没有实际收益。

考虑到复制交易的难度和成本,以及利用机会的稀少,这个漏洞并不构成比特币的主要安全威胁。不过,开发人员可能仍会在2046年之前寻求彻底修复这个问题,可能的方法包括强制执行SegWit承诺等。

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

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
智能合约补漏工vip
· 07-16 06:54
有趣的0day,但有点像个测试case
回复0
GateUser-a5fa8bd0vip
· 07-14 21:40
老bug了 当时咋没利用起来
回复0
consensus_whisperervip
· 07-14 21:39
又是中本聪的老古董漏洞了
回复0
薛定谔的韭菜钱包vip
· 07-14 21:34
肝疼 早期就出这种bug了
回复0
gas_fee_therapyvip
· 07-14 21:12
啊哈居然是txid撞车诶
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)