https://blog.fangweb.com/2019/03/04/%E6%AF%94%E7%89%B9%E5%B9%A3%E9%BB%91%E6%AD%B7%E5%8F%B21840%E5%84%84%E6%9E%9A%E6%AF%94%E7%89%B9%E5%B9%A3%E6%BC%8F%E6%B4%9E/zh-tw/
比特幣區塊74638有些不同尋常。最初發現它的是核心開發人員Jeff Garzik,他對「相當奇怪」的交易輸出(每個交易量為92233720368.54 BTC)發表了評論。不到一個小時,另一名論壇用戶開始了一個名為「嚴重溢出錯誤」的帖子,他在帖子中懇求「我們需要盡快修復」。那是2010年8月15日,比特幣遇到迄今為止最大的漏洞。
比特幣遇到了一個非常大的問題
在導致1840億比特幣憑空誕生的整數溢出漏洞之前,比特幣已經經歷了至少四個主要漏洞。比特幣維基百科列出了40個以上不同程度的漏洞。然而,CVE-2010-5139不同於比特幣社區過去所見過的任何情況。
在74638區塊發現的這個漏洞是比特幣的第一個通脹漏洞。考慮到加密貨幣的總供應量將被限制在2100萬枚,委婉地說,增加1840億枚比特幣是一個大問題。整數溢出導致事務值為負。Bitcointalk論壇用戶Ifm解釋道:
通常,輸入等於事務的輸出。唯一的例外是交易要收取「費用」。網路允許任何人自願支付一定的費用。當總和為負時,與輸入的差值就像一個費用。它通過了所有的檢查。
一個未知的攻擊者發現了這個漏洞,並利用它生成了數量高得離譜的比特幣。如果他們把目標定在一個更適度的總數上,那麼他們的開采可能會被隱瞞超過90分鐘才被發現。一旦被發現,一個補丁不可避免地會被匆匆通過,於是它就發生了。在2010-5139年度常見的漏洞和曝光事件發生後的兩個小時內,核心開發商Gavin Andresen和Satoshi Nakamoto就參與了此案,這筆價值1,840億的BTC交易被從74638區塊清除。
中本聰保證道,「一旦超過50%的節點能力升級,好的鏈取代壞的鏈,那麼0.3.10個節點將使任何壞的事務都很難得到確認。」比特幣的創造者非常重視這種規模的漏洞,並在帖子中發表了十幾次帖子,致力於比特幣漏洞的發現和根除。
