1

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
4

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.