Protocol
可以使用具有重複雜湊的交易的輸出嗎?
我注意到有兩個交易雜湊在區塊鏈中出現了不止一次。這樣做的原因是可以理解的:他們將挖礦獎勵發送到同一個地址。這些交易具有相同的輸入(無)和相同的輸出(一個 50 BTC 輸出到指定地址)。但是,當您嘗試使用交易數據時,這確實會導致問題,因為交易雜湊不能被視為交易的唯一標識符。
此處簡要討論了這一點,但討論更多地基於塊有效性。
這實際上導致了一個導致舊事務覆蓋的錯誤,該錯誤已在 0.6.0 版本中修復。
有一些關於這些事件之一的 BitcoinTalk 執行緒: BitcoinTalk 其他 BitcoinTalk
在這些執行緒的第一個執行緒中,Gavin Andresen 似乎暗示不能通過說“哦!哦!‘Bitcoins Lost Forever’執行緒還有 50 個比特幣!”來花費新交易的輸出。
在區塊鏈中出現了不止一次的兩個交易雜湊分別是:d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599 e3bf3d07d4b0375638d5f1db5255fe07ba2c4cbb0667cd581b844ee894bf7
那麼,這些交易輸出可以花掉嗎?為什麼或者為什麼不?
編輯:我應該提到我檢查過,截至 2013 年 7 月 5 日,沒有任何交易的輸出被花費。
更新為我之前的答案是錯誤的
引自BIP 0030:
區塊不允許包含標識符與同一鏈中較早的、未完全使用的交易的標識符匹配的交易。
此規則適用於時間戳在某個時間點之後的所有區塊
這意味著一個事務可以多次使用相同的雜湊,只要它總是在創建新事務之前首先花費。
至於較舊的交易:它們是有效的,但網路不會讓你花費它們,因為參考客戶端中的實現不會讓你。