比特幣被爆出技術缺陷,將有破解可能

作者 | 發布日期 2018 年 06 月 14 日 10:43 | 分類 Fintech , 數位貨幣 follow us in feedly

近期有位獨立資安研究員 Sergio Demian Lerner 發表了一篇文章指出破解比特幣的可能性,引發不少爭議。




該篇文章表示,有方法可以降低 SPV 證明的安全性,而且作者後來發現,他並不是最早知道這個漏洞的人,幾個早期營運比特幣的核心團隊可能早就了解這項訊息。比特幣的梅克爾樹(Merkle Tree)設計有缺陷,能欺騙使用 SPV 錢包的受害者。

SPV 稱為簡單支付驗證,最早中本聰的白皮書就有提到此事。其目標就是免除使用者運行整個區塊鏈,畢竟現在區塊鏈越來越長,會對交易產生障礙,而 SPV 技術免除了使用者驗證全節點區塊鏈。使用 SPV 時,只要判斷一個交易在主鏈某個區塊出現過,就可以證明該交易之前已驗證。為了達成此判斷則是透過梅克爾樹去尋找。

關鍵在於,比特幣的梅克爾樹並不區分內部節點和葉節點,整棵樹的深度由交易次數決定。然而該節點並未有特定格式,只要符合 64 位元的長度就行,所以攻擊者透過提交足夠位元的交易資訊,並令受害者的系統將其重譯為一筆交易即可欺騙被害人的錢包,憑空完成任意數量的交易。

▲ 含有假交易區塊的梅克爾樹。(Source: Sergio Demian Lerner’s Blog

當然,要利用此漏洞並不容易,需要運行 69 至 73 位元的暴力破解,且每項操作須面對 SHA-2 的密碼雜湊函數演算,還有 SPV 錢包本身也有簡單的機率保護機制。甚至作者所舉例子也無法應用在 coinbase 等平台,需要暴力破解高達 216 位元,目前幾乎不可能。

不僅如此,要執行這項針對 SPV 錢包的交易還是所費不貲,首先可能要訂製 ASIC,儘管與目前礦工的設計類似,但要達到算力要求,估計也需要近 130 萬美元,且根據節點密度不同,設計費用可能還要追加近百萬。還有為了防止其他礦工重組區塊鏈等問題,都可能需要額外成本,這使得必須詐騙到數百萬美元以上規模才會有利可圖。

雖然作者提出的攻擊方法肯定不是最好,但要進行大規模比特必交易時,通常還是會進行整體驗證而不是用簡單的 SPV,再加上若令 SPV 錢包進行特殊自檢也有很大機會發現異常交易,所以目前此漏洞恐怕還只是理論。不過在特殊境況下,可讓這種攻擊更廉價,例如攻擊者剛好持有適合的節點,所以還是必須去探討漏洞的可能性。

目前作者也提出了一些解決此問題的方案,希望能有更廣泛的討論。當然也有人回應,要滿足作者所揭示的條件需要太多剛好,更有人表示,比起暴力破解對區塊鏈的危害,少數人操弄及瘋狂 ICO 才是真正的問題,不過的確此文也在這個圈子引起不少注意。

(首圖來源:shutterstock)

延伸閱讀:

關鍵字: ,