如何查看大約 1000 萬個比特幣地址?
幾年前,我將特定數量的比特幣存入一個地址,並寫下該地址/私鑰。我失去了地址的最後四個字元。我數了一下,每個字元可以是26個大寫+26個小寫+10個數字=62個字元。所以缺少 4 個字元意味著我的錢包可以是 626262*62 = 14,776,336 個地址。如何以程式方式檢查所有這些組合?我會找到與我存入的比特幣相同的所有地址,然後一一檢查它們,因為我預計(希望)匹配的地址少於 1,000 個。
我檢查了 blockchain.info 但他們在幾次請求後讓我超時,我檢查了 blockonomics.co 但它們很貴。
您無需通過 API 線上查看整個 626262*62 地址。那將是一段非常漫長的旅程,毫無疑問,在找到你想要的東西之前,你會在任何免費服務中被列入黑名單。
在你的位置,我會:
- 在 Windows 中通過 Cygwin 或在 Linux shell 中,或在 MacOS 終端類型中:
zcat blockchair_bitcoin_addresses_latest.tsv.gz|grep "the part of the address you remember"
例如,我從列表中取出一個隨機地址並刪除最後 4 位數字:
root@ubuntu:~# time zcat blockchair_bitcoin_addresses_latest.tsv.gz |grep 1EpfyhhNnwF2Sv53PUzoJGRawiTVy 1EpfyhhNnwF2Sv53PUzoJGRawiTVybuMTz 1 real 0m9.479s user 0m9.209s sys 0m0.746s
我執行
time
前面的命令只是為了測試目的,以證明解析列表並找到匹配地址的時間不到 10 秒,這不是一台強大的 PC。我這裡什至沒有 SSD,我敢打賭,如果你有 SSD,它會更快。請注意地址後面的數字 1:這個 BTC 地址確實有 1 satoshi。
如果您對地址中的大寫字母有疑問,只需在後面添加
-i
選項,grep
這樣它就不會執行區分大小寫的搜尋,即使搜尋模式中的大寫字母錯誤也會返回結果;在這裡,我搜尋了所有包含我的名字的非零餘額比特幣地址,儘管有任何大寫字母,但仍然花了 10 秒:root@ubuntu:~# time zcat blockchair_bitcoin_addresses_latest.tsv.gz |grep -i marco 3NPjX9BFc3hZdXeqjFqMNMARco2gfna9cR 1512000000 1HTsd6dR5qdKUTghRh8VdfDq3marcoVBdZ 4267964 1LCidVxbHzL4maRcoeaYZrevVVz3KTHnqb 3900000 1AF9enGasTBY1zxsMARCotYP9izc2v3Fzs 2028360 17kaMiiyDa11VGYMArCoZM8wD9enpWXc5K 1009417 1EoDrgLovufWp4BjC4iEqyhSHR2MaRcob1 1003055 14UEd1qtHwvWk3tWjkDsZfRXKUDx7mArCo 483996 1At868R9nWceRRpymarCopNhrywPUooDvE 431629 1Marco12CWtLWwAK9eKxqTZmeQgitBwAhg 200000 1marcoUFS2NyCtW7hH2AGxGVbJ9fpZkrR 184000 17Nw3Ed1vnUQpmzKty2MarcoCskKDZQmAp 167192 18odA7ipASdRFkf1gGAspQ8DQmArCoLrsU 99300 1MArcoSBgoNhnypXD7YhE4T9B7eUFSTLA3 26280 1marco52Uta2SKaLPeNiEczbrwCHnV7Jb 17100 1MaRCoEoSZXpupVVtCcs5chdEVwF78FQ9U 10000 1Kf9aZ21UQmrRBpXfMarcoQoj7VgV2e9H2 3660 1FT4mpGZS4Df8WzjWHhDDCezJJKksmARCo 3607 1MarcoStvKXXkeQJhwfcUdUP1NLnHB2bfr 1 1MArCovVsyQ54sRufEvjCrNCmUfgr3ZsvY 1 1MARcoseSo15DysRD9t2GoRm2aaHPKxgeh 1 1DemArcoSrb2D8RCSvsU7gPBvFbT3sdDL1 1 1MarConm2xEoBveieCcGGZvAvKZi6EHvzn 1 1DemArCozufYcpvVqxsXy3ttLh2iN5keHr 1 1MARCoNioFuSbuX7mgAifgBx8hsF8FVFu8 1 real 0m9.921s user 0m10.829s sys 0m0.656s
相關說明:如果您在 blockchair.com 上沒有高級 API 帳戶,則列表下載(今天超過 700MB)的速率限制為 128KB/s。DL 大約需要兩個小時,但每天都會更新,我發現它仍然是所有批量餘額查找問題的巨大助推器,除非您需要實時餘額。在最後一種情況下,將付費 API 視為唯一的解決方案。
每個私鑰恰好對應一個公鑰。這個公鑰可以用兩種方式表示,給出不同的地址:未壓縮和壓縮。這為您提供了兩個私鑰地址。
因此,除非您還擁有 10 多萬個私鑰/地址對,否則無需單獨檢查每個公共地址。
您可以在 bitcointalk.org 上查看 Shorena 創建的這個簡單易用的軟體,該軟體使用 blockchain.info查詢 API。我檢查了原始碼,乾淨的程式碼,沒有發現任何惡意。
如果你真的打算檢查 585858*58 地址,我建議你在原始碼中添加一個延遲,這樣你就不會用請求溢出它們或碰到它們所擁有的任何限制器。還要修改程式碼以在每個查詢中搜尋多個地址(多個地址可以用 ‘|’ 分隔)。
您還可以通過請求 API-key繞過 blockchain.info 上的請求限制器。