比特幣重復交易漏洞:歷史趣事與未來挑戰

robot
摘要生成中

比特幣重復交易:一個有趣但影響有限的漏洞

比特幣網路中存在一個有趣的漏洞 - 重復交易。正常情況下,比特幣交易通過引用前一筆交易的ID來使用未花費的輸出。這些輸出只能被花費一次,否則就會導致雙重支付問題。然而,在比特幣歷史上確實出現過兩組完全相同的交易。

比特幣的重復交易:一個風險極小的有趣Bug

這種情況之所以可能發生,是因爲coinbase交易沒有輸入,而是直接生成新幣。因此,兩個不同的coinbase交易有可能向相同地址發送相同數量的比特幣,從而構建出完全一樣的交易。由於交易內容相同,其交易ID(TXID)也就相同了。

這兩組重復交易發生在2010年11月14日至15日,時間跨度約16小時。第一組重復交易ID爲d5d2....8599,第二組爲e3bf....b468。有趣的是,d5d2....8599雖然先成爲復制品,但在區塊鏈上卻晚於e3bf....b468出現。

比特幣的重復交易:一個風險極小的有趣Bug

這些重復交易每筆價值50 BTC,總共涉及200 BTC。從某種角度看,其中100 BTC實際上並不存在。截至目前,這200 BTC都未被花費。理論上擁有相關私鑰的人可以花費這些比特幣,但一旦被花費,重復的50 BTC就會丟失,因此實際上只有100 BTC可被找回。

重復交易顯然會給錢包和區塊瀏覽器帶來混亂,也可能被利用進行攻擊。例如,攻擊者可以用兩筆重復交易向交易所存入資金,然後立即提取,試圖使交易所破產。

爲了解決這個問題,比特幣社區採取了多項措施:

  1. 2012年3月,BIP30軟分叉禁止使用重復TXID進行交易,除非前一個TXID已被花費。

  2. 2012年9月,Greg Maxwell修改規則,使BIP30檢查適用於所有區塊,但保留了前面提到的兩個重復交易。

  3. 2013年3月,BIP34軟分叉要求coinbase交易包含區塊高度,這基本解決了重復交易問題。

  4. 2015年11月,比特幣核心停止進行BIP30檢查,因爲BIP34已經修復了這個問題。

比特幣的重復交易:一個風險極小的有趣Bug

然而,在BIP34激活之前的一些區塊中,coinbase交易的scriptSigs第一個字節恰好與未來有效的區塊高度匹配。這意味着重復交易問題並未100%解決。下一個可能出現重復交易的區塊是1,983,702,預計在2046年1月左右產生。

比特幣的重復交易:一個風險極小的有趣Bug

不過,利用這一漏洞的成本非常高。以區塊1,983,702爲例,攻擊者需要燒掉約170 BTC的費用,按當前價格計算約1500萬美元。而且這些資金很可能無法收回。此外,自2017年SegWit升級後,coinbase交易還包含對區塊中所有交易的承諾,進一步增加了攻擊難度。

比特幣的重復交易:一個風險極小的有趣Bug

考慮到復制交易的難度和成本,以及利用機會的稀少性,這個漏洞並不構成比特幣的主要安全威脅。盡管如此,開發人員仍在努力尋找修復方案,可能需要通過軟分叉來實現。一種可能的方法是強制執行SegWit承諾。

總的來說,雖然重復交易漏洞很有趣,但其實際影響非常有限。它更多地體現了比特幣網路的復雜性和開發者們不斷完善系統的努力。

比特幣的重復交易:一個風險極小的有趣Bug

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
无情的套利机器vip
· 6小時前
有bug就是有钱赚啊
回復0
Liquidation Survivorvip
· 6小時前
你修bug我加仓~
回復0
PebbleHandervip
· 6小時前
修到现在都还没搞定?
回復0
ShibaMillionairen'tvip
· 6小時前
长安不咋地还是麻烦事
回復0
无常损失心理医生vip
· 6小時前
节点出问题,人家早就料到啦
回復0
烤猫铁粉vip
· 7小時前
哎哟 这bug咋看着有点眼熟...
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)