4

Why does bitcoin address encoding use base58 instead of, for instance, base64? I don't see it is useful in any way.

9

Why base-58 instead of standard base-64 encoding?

  • Don't want 0OIl characters that look the same in some fonts and could be used to create visually identical looking account numbers.
  • A string with non-alphanumeric characters is not as easily accepted as an account number.
  • E-mail usually won't line-break if there's no punctuation to break at.
  • Double-clicking selects the whole number as one word if it's all alphanumeric.

Features of Base58Check

  • An arbitrarily sized payload

  • A set of 58 alphanumeric symbols consisting of easily distinguished uppercase and lowercase letters (0OIl are not used)

  • One byte of version/application information. Bitcoin addresses use 0x00 for this byte (future ones may use 0x05).

  • Four bytes (32 bits) of SHA256-based error checking code. This code can be used to automatically detect and possibly correct typographical errors.
  • An extra step for preservation of leading zeroes in the data
  • 1
    "Future ones"... the v5 prefix is used for P2SH addresses, and has been since 2012. – Pieter Wuille Apr 26 at 16:56

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.