Address

如果比特幣地址真的是隨機的,那麼為什麼有些比其他的更難生成呢?

  • February 27, 2014

這篇文章中,TierNolan 解釋了為什麼“Bitpoin”比“bitpoin”更容易生成,這主要與位置(第一個字元)有關。但我記得某些字元(我相信’i’和’o’)更難生成,與它們在地址中的位置無關。這怎麼可能?

在地址中編碼的 160 位散列是均勻分佈的(你稱之為“真正隨機”),但 base58 編碼形式不是。例如,某些字元更有可能出現在開頭。

為了說明這一點,考慮 0 到 1999 之間的所有整數的集合。即使這些數字中的每一個都同樣可能被選中,但對於它的十進製表示而言,情況並非如此。在那裡,一半的數字以 1 開頭!

具體回答為什麼 1Bitpoin 比 1bitpoin 更容易生成:

地址是 192 位整數(160 位散列加上 32 位校驗和)的 base-58 表示。您可以表示的最大值是 (2^160-1) 和相應的校驗和:0xfffffffffffffffffffffffffffffffffffffffa06820b,或 34 個字元的地址“1QLbz7JHiBTspS962RLKV8GndWFwi5j6Qr”。

在 base-58 字母表中,‘B’ < ‘Q’ < ‘b’。因此,只要校驗和正確,任何以 ‘1Bitpoin’ 開頭的 34 字元字元串都是有效的。但是以 ‘1bitpoin’ 開頭的 34 字元字元串都超出了範圍。您仍然可以生成以 ‘1bitpoin’ 開頭的 33 字元字元串,但顯然這些字元串要少得多。

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