What is the meaning of the Bitcoin address version?

13

Bitcoin address versions are described on the Address wiki page:

Normal addresses currently always start with 1, though this might change in a future version. Testnet addresses usually start with m or n.

The Protocol specification gives a bit more technical detail:

Version = 1 byte of 0 (zero); on the test network, this is 1 byte of 111

Aside from distinguishing real and testnet addresses, what is the meaning and purpose of the address version? How and why will it change in future?

Ash Moran

Posted 2011-09-04T12:49:14.270

Reputation: 839

Answers

6

Last time I heard of it, the future of version bytes was still unsettled. Currently, they are used to force incompatibilities between several base58-encoded data structures:

  • addresses / private keys
  • testnet / realnet
  • alternative-chains variants (namecoin etc…)

This way, you cannot misuse one for the other.

Someday, it might also be used as a real version number (the current SHA-256 + RIPEMD-160 + base58-encoding for keys could become obsolete).

Stéphane Gimenez

Posted 2011-09-04T12:49:14.270

Reputation: 4 746