Vanitygen

Vanitygen:為什么生成以大寫字母開頭的地址更容易?

  • October 22, 2017

在嘗試使用 Vanitygen 生成公鑰時,如果我將第一個字元設為大寫字母而不是小寫字母,我會得到更短的時間。

不應該一樣嗎?有沒有其他人經歷過這個?這種差異背後的數學/邏輯是什麼?

我從deepceleron 在 bitcointalk 上的文章中複製了這個:

更改發生在特定地址:

前綴難度:77178 1QLa

前綴難度:78362 1QLb

前綴難度:4553521 1QLc

這是 25 字節(50 位十六進制)比特幣地址如何轉換為 Base58(由數字和字母表示)的一個怪癖,以及可以儲存在 25 個 base256 位和 34 個 base58 位中的不同最大值。

原生二進制形式的比特幣地址(你從未見過)是 25 個字節,它的部分是:

**字節 0:**網路 ID 字節(主要比特幣網路為 0x00)

字節 1-20: sha256 雜湊的成熟 160 雜湊(20 字節)( 32字節)0x04+公鑰(65字節)

**字節21-24:**校驗和:上面字節0-20的sha256雜湊的sha256雜湊的前四個字節

這將是 50 個十六進製字元長(base16),可能的數字值介於 0-F 之間。

我們將忽略字節 0,它始終為 0x00,並且 Base58 轉換始終通過直接將其編碼為“1”來保留此前導 0 字節。

這意味著地址的“虛榮”部分是字節 1-24、24 字節的隨機散列輸出或 48 個十六進制數字。這可以是最大值是0x FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ffff ffff(小寫的“f”是校驗和,對於最大的ripemd160值,不會都是FFFF。)我們可以猜測從下面的輸出中可以看出,這個以 Base58 編碼的最大可能地址值變為 1QLbxxxxxx…. 一些東西:

1QLa8LNNFeYs7KJWvxMdR5YtRjkwtQtkyb
1QLabhman6ZQyz3musbqV1RjFmE3pyT29j
1QLaJHv2LCSYo8WgT9qPf4rdttduRGyozX
1QLarwzJCUWGuQEZ4uWPsYVz8N2P5XmeQU

1QLckWG2tx17suupYU2FfeWunTCZMuJKW
1QLcMk7NVLwvg8gw2ihJTuG8x7WLYCjMg
1QLcLr6AoN687CpH1JZnfeMmWvUka5NHX
1QLc47945bSCv4J1Z4yRuvUbtooQqmGJ1
1QLcU9NNxaqfvqMRXD8dFtL2SktL3YmBT
1QLc1D24uDbvy327MzifEChVvATAeDsbF

看看 1QLa 地址是全長的,但 1QLc 地址短了一位嗎?這是因為獲得從 1QLc 或更高開始的地址的唯一方法是使用小 59 倍的二進制地址。

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