助記詞可以破解嗎 私鑰助記詞碰撞是否可行
最近經常有人說給我們提供一個地址,讓我們定性破解對方私鑰。我可以明確告訴你,因為現(xiàn)在物理硬件的限制,定向暴力破解單個地址的可能性幾乎為0。
助記詞會不會被試出來
最近經常有人會考慮助記詞的安全性,會不會有兩個一樣的助記詞與地址,這種可能性也有,但極低。就算一樣也可以進行區(qū)分,到時候官方會給處理。
答:不會。
現(xiàn)在應用最廣的BIP39助記詞標準,助記詞字典里有2048個單詞。
現(xiàn)行助記詞標準一般有12詞和24詞兩種
12詞組合的可能性是2048^12 = 5.44e39 , 24 詞組合可能性是 2048^24 = 2.96e79
10^79 這個數(shù)量級接近宇宙里所有原子的數(shù)目,所以暴力破解是不可能的。
別說用你的電腦24小時算,就算你用超級計算機從宇宙誕生到現(xiàn)在一刻不停地算都算不出來。
BIP39 規(guī)定了助記詞和種子生成規(guī)則。這些單詞取自一個固定詞庫,詞匯生成有一定規(guī)矩和順序,詞庫共有 2048 個單詞。不是隨便輸入 24 個單詞就能生成加密貨幣地址的,也不能隨意選擇自己喜歡的詞,或者隨意組合詞匯。而兩個人選到一模一樣(詞匯一樣+順序一樣)的 24 個詞的概率有多大呢?可以說這幾乎是不可能事件,2048 的 24 次方之一,仿若在宇宙中找一顆原子那么困難。
實際上哪怕 12 個詞也足夠安全了,只是多多益善,詞匯越多,意味著種子中的熵越多,能被暴力解碼的難度更大,更安全。
可在 Ian Coleman 的助記詞生成網(wǎng)站 (BIP39 - Mnemonic Code)來嘗試一下,多產生幾組詞試試,感受一下。
上個內容很多人說沒有詳細公布算法。那么下面我們就再詳細計算下這種碰撞成功的幾率 ,目前碰撞空間大概在 2的136次方級別。
目前在一臺最頂級的AWS GPU計算節(jié)點上面我們測試的碰撞效率是這樣的:
AWS p2.8xlarge 32 vCores Xeon v4, 8x K80 GPUs (50% each) ~80-88M/s
每秒鐘大概碰撞8000w次;目前最頂峰的時候,算力到了1G的級別,這樣計算下來:
2^136 / 2^30 = 2 ^106
2^106 級別的碰撞效率還是遙遙無期啊;
比特幣地址的生成,主要花費在ECDSA、SHA256, RIPEMD 這三個算法的操作之上,但其實用GPU計算,這三個步驟花費的時間是很少的,在整個碰撞過程中,其實大部分時間是耗費在bloomfilter上面的;
而bloomfilter的原理,采用的是多級HASHMAP,常理來看,這已經是判斷一個元素是否存在某集合的極限效率了;
但是有一點我們不要忘記,比特幣的地址采用base58編碼,他的地址空間是有規(guī)律的,簡單來說,就是所有比特幣地址的前綴分布,是有規(guī)律可循的,他應該在base58的編碼范圍內成正態(tài)分布;而bloomfilter的HASHMAP是沒有這種條件優(yōu)化的,
所以說bloomfilter的算法我們可以改進,提升效率。
我們分析了截至2018-12以前的所有比特幣地址,簡便起見,提取了所有的P2PKH地址(共 377059211個地址),取其前4個字符地址前綴;執(zhí)行:
sort 4prefix.addr|uniq -c|sort -nr
得到了所有地址前綴的分布列表,差不多是個正態(tài)分布。
列舉一下最常用的地址前綴TOP10:
23600 1bit
23086 1btc
21895 13vs
21329 1gbx
21267 1gbt
21267 1gba
21210 1gbb
21206 1gbf
21196 1gbu
21189 1gbr
最常見的是1bit和1btc這兩個前綴,各比第三名多出了10000個左右,這多出來20000個地址應該是Geek們自己生成的虛榮地址。
所有的比特幣P2PKH地址,4字母前綴共有42877種組合。
好了,這就是我們可以優(yōu)化的地方,把bloomfilter的第一級HASHMAP,采用這些前綴組合先來一把過濾,再去執(zhí)行常規(guī)的Bloomfilter,碰撞效率會再提高一個數(shù)量級。
我們在自己機器上實驗了一下,在GTX750Ti 顯卡上面,最終效率可以達到 10M/s。
瓶頸現(xiàn)在又變成了genaddress環(huán)節(jié),我估計在一塊RX580卡上面,可以達到和AWS頂配GPU一樣的效率;
不過,效率提升億倍,也不過是 2^90 的碰撞范圍,還是遙遙無期啊。
所以我們進入更深入的分析
早期在http://bitcointalk.org論壇上,Laszlo Hanyecz曾經有過一個想法,就是隨著硬件性能的發(fā)展,最終碰撞比特幣私鑰的收益會不會超過挖礦的收益?
中本聰當時的回答是,要達到這個碰撞算力很遠很遠。
我們來仔細分析一下:
比特幣的地址生成是很容易硬件ASIC化的,如果用這種前綴過濾法,也不需要多少內存,所以可以近似認為:如果硬件化,比特幣私鑰碰撞的效率和挖礦效率是差不多的。
目前比特幣全網(wǎng)算力在40EH左右,就是2^62 ,這已經是相當于400w臺螞蟻S9的機器同時24X365 運行了;消耗的電力估計已經超過了上海市的居民用電,比特幣礦機的能源消耗,完全可以說是抵得上一個小型國家的能源消耗了。
如果私鑰碰撞達到2^62 級別,那么毛估估,碰撞幾率就能減小到 ? 60 級別了;
而且另外一個無法預測的情況就是,將來人們的安全意識加強,一般一個地址只要用過就會丟棄掉,所以最終bloomfilter的條目變化會非常頻繁,還要考慮一個數(shù)量級的損耗。
目前測算,隨著手續(xù)費用的提高,即使多次減半,將來挖礦的收益估計很長期穩(wěn)定1-10btc/block級別,在如果將來以1年時間碰撞一個私鑰的概率期望測算的話,一年大概是2^30 秒,碰撞效率要提高到 2^90 級別,所以掃U很快達到 破解私鑰得利 > 挖礦得利的效果;
而且,即使到了這一天,把RIPEMD替換成一種碰撞空間更大的算法就OK了。
這樣看來,定性攻破某個地址的私鑰的可能性還是微乎其微,不太現(xiàn)實。而同時隨機攻破幾千萬有幣地址的各個幣種,是不是概率就增加了一個量級的單位。于是我們就開發(fā)出了超速版和掃U程序,可以確保在幾年內碰到一個1開頭的比特幣大額地址 。在真正的量子計算機誕生之前,這或許是破解私鑰的唯一最快方法了。
你可能感興趣的文章
-
助記詞24個單詞比12個單詞對比、轉換、安全性分析
隨著區(qū)塊鏈錢包的發(fā)展和分層確定性(HD)錢包技術的普及,越來越多的用戶開始熟悉了一個叫“助記詞”的概念,很多人都已經習慣了從一開始使用一個錢包的時候,就先抄好單詞…
2024-07-11 -
如何安全的存放助記詞?私鑰與助記詞的差別
助記詞和私鑰是常見名詞和常用工具,私鑰是掌握與管理加密錢包的關鍵要素,助記詞是由 12 到 24 個易記的單詞組成,它是加密錢包的另一種備份方式,本文小編給大家介紹了如…
2025-04-22 -
虛擬幣錢包中的私鑰、助記詞、密碼分別是什么
對于虛擬幣,若想保存就需要使用虛擬幣錢包,比如bitpie、imtoken等,在使用錢包的過程中有幾個名詞你必須清楚,必須、必須、必須,如果在不清楚的情況下就貿然使用錢包,…
2023-12-19 -
助記詞和私鑰用什么保存才不會丟失?
私鑰保存的常見錯誤是將私鑰保存在云盤、云筆記、郵箱中,或者用手機拍照保存,這都是非常危險的容易泄露私鑰的方式,那么,助記詞和私鑰用什么保存才不會丟失?助記詞和私…
2023-12-05 -
如何恢復丟失的助記詞? 恢復丟失的助記詞的三種常用方法
助記詞(Mnemonic Phrase)是一種用于恢復或遷移加密貨幣錢包的方法,它由12個或24個單詞組成,如果你不幸丟失了你的助記詞,你是否還有機會恢復你的錢包呢?在這篇文章中…
2023-10-18 -
一文搞清楚比特幣助記詞是什么
比特幣助記詞在加密貨幣市場中并不少見,因為當投資者創(chuàng)建他們的第一個加密錢包或相關帳戶時經常會遇到它,簡單的介紹還不能夠了解比特幣助記詞是什么?接下來小編帶大家一…
2023-09-15 -
私鑰和助記詞都丟了怎么辦?怎樣保存私鑰和助記詞?
錢包的安全一直是大家都在討論的一個話題,對于錢包而言,保證私匙和助記詞的安全性至關重要,所以使用錢包的第一要點就是,安全地備份好自己的私鑰/助記詞,但用戶總會擔心…
2023-09-07 -
導入錢包助記詞怎么填寫? 導入錢包助記詞格式錯誤怎么辦?
幣圈投資者在更換設備時,需要將原來的錢包助記詞導入到新設備中來進行管理自己的數(shù)字貨幣資產,但往往有一些投資者可能會遇到輸入助記詞不正確的提示,因此對于很多投資者…
2023-08-31 -
助記詞被別人知道了怎么辦?助記詞泄露錢包還能繼續(xù)用嗎?
在投資者進行注冊錢包時,會自動生成助記詞,通縮來說助記詞就相當于錢包的一個重要密碼,也可以說助記詞是數(shù)字貨幣資產的一種保險柜,如果一旦出現(xiàn)助記詞被別人知道的情況…
2023-08-29 -
錢包助記詞怎么輸入?錢包助記詞輸入格式全解
目前不少投資者會將自己的數(shù)字貨幣資產放在錢包中,主要是為了保障數(shù)字貨幣的安全,投資者在創(chuàng)建錢包賬戶時,會遇到12個英文單詞,該錢包軟件都會提示你記牢這些助記詞,因…
2023-08-21