比特幣重復交易漏洞: 歷史遺留問題與未來挑戰

比特幣重復交易:一個有趣但風險極低的漏洞

比特幣網路中存在一個有趣的現象:兩組完全相同的交易。這種情況之所以可能發生,是因爲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
· 2小時前
有趣的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)