🎉 #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 联合推广任务上线!
本次活动总奖池:1,250 枚 ES
任务目标:推广 Eclipse($ES)Launchpool 和 Alpha 第11期 $ES 专场
📄 详情参考:
Launchpool 公告:https://www.gate.com/zh/announcements/article/46134
Alpha 第11期公告:https://www.gate.com/zh/announcements/article/46137
🧩【任务内容】
请围绕 Launchpool 和 Alpha 第11期 活动进行内容创作,并晒出参与截图。
📸【参与方式】
1️⃣ 带上Tag #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 发帖
2️⃣ 晒出以下任一截图:
Launchpool 质押截图(BTC / ETH / ES)
Alpha 交易页面截图(交易 ES)
3️⃣ 发布图文内容,可参考以下方向(≥60字):
简介 ES/Eclipse 项目亮点、代币机制等基本信息
分享你对 ES 项目的观点、前景判断、挖矿体验等
分析 Launchpool 挖矿 或 Alpha 积分玩法的策略和收益对比
🎁【奖励说明】
评选内容质量最优的 10 位 Launchpool/Gate
比特币重复交易漏洞:历史趣事与未来挑战
比特币重复交易:一个有趣但影响有限的漏洞
比特币网络中存在一个有趣的漏洞 - 重复交易。正常情况下,比特币交易通过引用前一笔交易的ID来使用未花费的输出。这些输出只能被花费一次,否则就会导致双重支付问题。然而,在比特币历史上确实出现过两组完全相同的交易。
这种情况之所以可能发生,是因为coinbase交易没有输入,而是直接生成新币。因此,两个不同的coinbase交易有可能向相同地址发送相同数量的比特币,从而构建出完全一样的交易。由于交易内容相同,其交易ID(TXID)也就相同了。
这两组重复交易发生在2010年11月14日至15日,时间跨度约16小时。第一组重复交易ID为d5d2....8599,第二组为e3bf....b468。有趣的是,d5d2....8599虽然先成为复制品,但在区块链上却晚于e3bf....b468出现。
这些重复交易每笔价值50 BTC,总共涉及200 BTC。从某种角度看,其中100 BTC实际上并不存在。截至目前,这200 BTC都未被花费。理论上拥有相关私钥的人可以花费这些比特币,但一旦被花费,重复的50 BTC就会丢失,因此实际上只有100 BTC可被找回。
重复交易显然会给钱包和区块浏览器带来混乱,也可能被利用进行攻击。例如,攻击者可以用两笔重复交易向交易所存入资金,然后立即提取,试图使交易所破产。
为了解决这个问题,比特币社区采取了多项措施:
2012年3月,BIP30软分叉禁止使用重复TXID进行交易,除非前一个TXID已被花费。
2012年9月,Greg Maxwell修改规则,使BIP30检查适用于所有区块,但保留了前面提到的两个重复交易。
2013年3月,BIP34软分叉要求coinbase交易包含区块高度,这基本解决了重复交易问题。
2015年11月,比特币核心停止进行BIP30检查,因为BIP34已经修复了这个问题。
然而,在BIP34激活之前的一些区块中,coinbase交易的scriptSigs第一个字节恰好与未来有效的区块高度匹配。这意味着重复交易问题并未100%解决。下一个可能出现重复交易的区块是1,983,702,预计在2046年1月左右产生。
不过,利用这一漏洞的成本非常高。以区块1,983,702为例,攻击者需要烧掉约170 BTC的费用,按当前价格计算约1500万美元。而且这些资金很可能无法收回。此外,自2017年SegWit升级后,coinbase交易还包含对区块中所有交易的承诺,进一步增加了攻击难度。
考虑到复制交易的难度和成本,以及利用机会的稀少性,这个漏洞并不构成比特币的主要安全威胁。尽管如此,开发人员仍在努力寻找修复方案,可能需要通过软分叉来实现。一种可能的方法是强制执行SegWit承诺。
总的来说,虽然重复交易漏洞很有趣,但其实际影响非常有限。它更多地体现了比特币网络的复杂性和开发者们不断完善系统的努力。