和早期的許多事件一樣,比特幣社羣的大多數人都是在Bitcointalk論壇上得知這一事件的。在2011年10月29日,使用者genjix在論壇上建立了一個名為“某人搞砸了,丟了很多錢”的帖子。為了解釋,他們貼出了以下程式碼:
很少有讀者能從程式碼中看出問題所在,但是genjix可以提供解釋。標準的交易指令碼(在本例中是“76a90088ac”)應該有“14”來代替“00”,在指令碼語言中,它的意思是按0位元組。“這是一個已經送出的郵件。顯然有人在攻擊比特幣,或者製作定製版本,結果把事情弄得一團糟——儘管我不知道它要對這麼多錢做什麼。”
後一個問題的答案很快就從網際網路中繼聊天中得到了,在Mt.Gox IRC上,Karpeles, aka Magical Tux承認自己建立了錯誤的交易指令碼並銷燬了2609個 BTC:
MagicalTux:這是個問題,但不是我們遇到過的最嚴重的問題
MagicalTux:所有失效的提現都已重新發放
MagicalTux:剛剛花了一週的BTC收入
為免對交易的終結有任何疑問,Bitcointalk使用者“BTCurious”寫道: “他們走了,不可能恢復。“
所有不可恢復交易的母體
將硬幣傳送到錯誤的或不存在的比特幣地址是極其罕見的。所有比特幣地址都有一個校驗和,這大大降低了無意中輸入錯誤地址的機率。然而,Karpeles一直在修補比特幣客戶端,並選擇了一項有價值的交易來進行實驗。正如他在IRC上承認的:
MagicalTux:我需要限制一個tx的輸入數量,似乎普通的bitcoind不喜歡293個輸入的tx。
BTCurious在Bitcointalk論壇上解釋道:比特幣協議所支援的不僅僅是把硬幣從A傳送到B,即使這主要是你現在在普通客戶端看到的。不過,只要遵循比特幣協議,礦商就需要接受“非常規交易”。
“對Gox科技聲譽的又一次打擊”
人們對Karpeles的失誤反應不一,IRC上爆發了一場激烈的辯論,主題是比特幣的指令碼功能是否應該受到限制,以防止此類錯誤的發生。然而,這並不像聽起來那麼簡單,核心開發人員Gregory Maxwell指出:
Glyph-Minus-229:協議不阻止傳送到無效地址?
gmaxwell:不,協議使許多事情成為可能。
gmaxwell:交易是管理贖回的小程式。
gmaxwell:可能沒有多項式時間可以識別所有不可花費的交易。
一名IRC使用者不願將這一事件斥為黴運,稱其為“對mtgox技術聲譽的又一次打擊”。
論壇使用者Raoul Duke寫道:“90%的比特幣使用者都信任這個人。”他還配了一個翻白眼的表情符號。關於Karpeles,他有先見之明地寫道:“他似乎更接近於失去Mt. Gox的餘額,而不是逃跑。在猜測如果Karpeles在傳送44.2萬比特幣時犯了那個錯誤,比特幣會發生什麼變化時,他承認:“想到這些東西讓我不寒而慄。”四個月前,Karpeles傳送了一筆創紀錄的比特幣。
無意搞錯了
2011年10月被Karpeles意外銷燬的2609個比特幣無法移動,但可以。在Tux的辯護中,比特幣在當時的使用者介面要差得多,而且執行復雜的交易需要比現在更多的修補工作。
他們將一直呆在一個不同尋常的比特幣地址“s-272edf45031dd498e7b3ae89e11ff21b”裡。為了總結檢索這些比特幣的不可能性,論壇使用者“etotheipi”寫道:“為了使用這些比特幣,您必須提供一個公鑰,當您應用ripemd160(sha256(pubKey))時,它等於“0x00”。不幸的是,ripemd160只產生20位元組的雜湊。即使您確實有一個字串可以生成這樣一個不可能的雜湊,但要幸運地找到相關的私鑰。“
鑑於Mt.Gox丟失的硬幣當時只值8300美元,這看起來沒什麼大不了的。今天,這些硬幣的價值將是2600萬美元。他們在過去的八年中一直在同一個地址,沒有受到影響,這一事實證明了比特幣的終結性。