[Bitcoin-development] Version bytes "2.0"

Pieter Wuille pieter.wuille at gmail.com
Mon Dec 12 20:57:54 UTC 2011

It seems base58 is actually quite terrible for producing nice human-recognizable
addresses, even though base58 is specially intended for human usage. We'll just
have to deal with it, or completely overhaul it and move to a saner encoding.

Luke's proposal is somewhat more drastic than my original one, since it removes
the actual "version" notion from the version bytes, and changes testnet addresses.
However, I think it may be worth it. More data classes have been necessary
before, and new versions haven't. Furthermore, they are far more recognizable to
users, which is something that in particular for OP_EVAL addresses (script hashes)
will be a plus.

Therefore, I'm in favor of the proposal; the new versions would become:

0:   mainnet pubkey hashes ('1', as before)
192: testnet pubnet hashes ('2', instead of 111, 'm' and 'n')
5:   mainnet script hashes ('3'; for OP_EVAL)
196: testnet script hashes ('2', same as normal testnet addresses)
12:  mainnet private keys  ('Q', 'R' or 'S', instead of 128, '5')
204: testnet private keys  ('7', instead of 239, '8' and '9')



More information about the bitcoin-dev mailing list