2

The Base58 Encoding of a public key hash outputs: "A set of 58 alphanumeric symbols consisting of easily distinguished uppercase and lowercase letters (0OIl are not used)"

This set is a fixed string of 34 characters.

That is to say, "A bit coin wallet's address is 34 characters, each character being one from a possible set of 58"

So the total possible addresses is 58^34 which is just slightly less than 2^40.

I understand that the hash space is 2^160, but the final result is much smaller at 2^40. What am I missing?

Edit: I made a simple math mistake reducing 58^34 to a power of two by adding not multiplying the exponents... The bitcoin address is sufficient to contain the 2^160 possible hashes: 58^34 is 904 octodecillion (60 decimal digits), and 2^160 is 1 quindecillion (49 decimal digits)... the larger number accounts for the version byte and checksum.

  • 1
    As mentioned, the first character is fixed and four bytes are a "checksum" so it's more like ~58^29 ~= 2^170 >> 2^160. – dchapes Dec 31 '13 at 16:33

1 Answers1

5

No, 58^34 is greater than 2^160: http://www.wolframalpha.com/input/?i=2*160+%3E+58*34

Note, that the address also contains a checksum and a network id not carrying additional information. That's why the numbers are not equal.

jnnk
  • 1,906
  • 15
  • 23