比特幣重復交易之謎:罕見漏洞與未來挑戰

robot
摘要生成中

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

概述

比特幣交易通常通過引用前一筆交易的ID來使用未花費的輸出。這些輸出只能被花費一次,否則會導致雙重支付問題。然而,在比特幣歷史上確實存在兩組完全相同的交易。這種情況之所以發生,是因爲coinbase交易沒有輸入,而是產生新幣。因此,兩個不同的coinbase交易有可能以完全相同的方式構建,使它們的交易ID也相同。除此之外,只有發生哈希碰撞才可能出現重復的交易ID,但這在加密安全的哈希函數中幾乎不可能發生。

這兩組重復交易都發生在2010年11月14日至15日之間,跨度約16小時。雖然d5d2....8599在區塊鏈上晚於e3bf....b468出現,但我們仍將其歸類爲第一個重復交易。

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

重復交易詳情

mempool.space區塊瀏覽器顯示了第一個重復交易在兩個不同區塊中重復出現的情況。有趣的是,不同的區塊瀏覽器在顯示重復交易時可能會有不同的默認行爲。

在涉及的四個區塊中,只有一個區塊包含了其他交易,將1 BTC和19 BTC合並成了一個20 BTC的輸出。

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

重復輸出的可花費性

每個重復交易的價值爲50 BTC,總共涉及200 BTC或100 BTC,取決於理解方式。截至目前,這些比特幣都未被花費。理論上,擁有相關私鑰的人可以花費這些比特幣,但只有100 BTC實際可被找回,因爲重復的50 BTC將無法花費。至於這些幣被花費時會從哪個區塊中支出,可能是未定義的。

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

重復交易的問題

重復交易會給錢包和區塊瀏覽器帶來混亂,也會引發潛在的攻擊風險。例如,可能會導致重復支付或對交易所的攻擊。

解決措施

爲了解決重復交易問題,比特幣社區採取了以下措施:

  1. BIP30:2012年提出並實施,禁止使用重復TXID進行交易,除非前一個TXID已被花費。

  2. BIP34:2013年激活,要求coinbase交易包含區塊高度,使得所有交易都應該是唯一的。

  3. 停止BIP30檢查:2015年,由於BIP34的實施,節點停止了昂貴的BIP30檢查。

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

潛在風險

盡管BIP34解決了大部分問題,但在BIP34激活前的一些區塊中,coinbase交易的scriptSigs可能與未來的區塊高度匹配,仍存在潛在的重復風險。下一個可能出現重復交易的區塊是1,983,702,預計在2046年1月左右產生。

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

結論

考慮到復制交易的難度、成本以及利用機會的稀少性,這個漏洞並不構成比特幣的主要安全威脅。然而,由於其獨特性和長期影響,它仍然是一個值得關注的有趣問題。未來可能需要通過軟分叉等方式來徹底修復這個問題。

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

BTC-0.1%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
笨蛋鲸鱼vip
· 4小時前
漏洞有点意思呢
回復0
闪电出击小王子vip
· 4小時前
早期代码真随意
回復0
retroactive_airdropvip
· 4小時前
区块链没那么简单
回復0
钱包恐慌症患者vip
· 4小時前
哈希值坏了也不慌
回復0
论坛潜水怪vip
· 4小時前
当年细节才吓人
回復0
大饼单日线研究者vip
· 4小時前
隐藏BUG被挖出来了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)