Vanitygen

重啟 Vanitygen

  • July 9, 2014

我想創建一個以特定密碼(1mathias不區分大小寫)開頭的比特幣地址。這個想法來自這個問題,我很喜歡它。在我的 Mac 上製作文件遇到一些麻煩後,它終於奏效了。

mbpssd2:vanitygen-master mathias$ ./vanitygen -i -t 4 1Mathias
WARNING: Built with OpenSSL 0.9.8y 5 Feb 2013
WARNING: Use OpenSSL 1.0.0d+ for best performance
Difficulty: 26838491360
[235.42 Kkey/s][total 2888131518][Prob 10.2%][50% in 18.5h]

它已經執行了一段時間,我想停止它,明天繼續尋找地址。據我了解,該數字地址中有 1 個符合我的密碼。因此,如果我選擇“1”作為密碼,則為 1。終端中顯示的百分比是目前生成(和拒絕)的地址與總數相比。因此,達到 100% 與查找地址沒有任何關係。如果你真的不走運,我可能會發生在 0.01%、70% 或 8012%(對嗎?

從 vanitygen 的創建者那裡,我發現了以下內容:

如果我在 vanitygen 報告完成 60% 時停止它,我如何讓它從停止的地方重新啟動?

你不需要。顯示的百分比只是顯示到目前為止在會話中找到匹配項的可能性有多大。如果它在顯示屏上找到您的地址 5%,那麼您非常幸運。如果它在顯示屏上找到您的地址 92%,那麼您很不走運。如果你停止顯示 90% 的 vanitygen,重新啟動它,它會在顯示 2% 時找到你的地址,你的第一個會話是不走運的,但你的第二個會話是幸運的

但這沒有意義。如果我達到 100%,我不能完全確定一個地址是否已經彈出,符合我的密碼。**它是否正確?**如果我讓程序執行並生成十億個地址,而不是在(或如果)它擊中我的密碼時停止,它甚至有可能在前一千個中找到一個正確的地址,就像在最後一千個中一樣?

我很確定我是對的,但我可能會遺漏一些東西。我試圖將我不確定的兩個區域加粗。

Vanitygen 的工作原理是這樣的:

  1. 生成一個隨機 256 位整數以用作 ECDSA 私鑰
  2. 計算對應的公鑰
  3. 計算公鑰的雜湊以找到地址
  4. 檢查它是否與請求的模式匹配(1Mathias在您的情況下)
  5. 如果是,停止並輸出私鑰;如果否,請從第 1 步重新開始

請注意,在此過程中沒有保存任何狀態,因此您在停止和啟動時不會損失任何東西。每個隨機私鑰都有相同的成功機率;不管你已經嘗試了多少次。

對於嘗試的給定數量 N 的隨機私鑰,可以計算(至少)其中一個成功的機率。這是 Vanitygen 報告的“百分比”數字 - 這不是完成百分比!在您顯示的摘錄中,它說它已經嘗試了 2888131518 個鍵,從數學上講,嘗試 2888131518 個鍵有 10.2% 的機會找到一個有效的鍵。它還說,在 18.5 小時內,它將嘗試足夠多的密鑰,成功的機會為 50%。這不是線性縮放的!如果運氣不好,37小時沒找到鑰匙,就不會說100%了;它會說 75%。

打個比方,假設你有一個普通的 6 面骰子,你想反复擲骰子直到得到 6。你擲一次成功的機會是 1/6(16.6%);您在 10 次滾動中成功的機會是 83%;您在 100 次滾動中成功的機會是 99.9999987%。但這個數字永遠不會達到 100%;沒有多少卷可以保證成功。總有一些機會,在你做的所有捲中,沒有一個出現 6。

因此,Vanitygen 報告的“百分比”數字永遠不會達到(更不用說超過)100%。它只是為了讓您估計該過程可能需要多長時間,但由於它是隨機的,因此無法保證。如果它非常接近 100%,你只知道你很倒霉;但是您使用每個新密鑰的成功機率與以往完全相同。

引用自:https://bitcoin.stackexchange.com/questions/28394