2

I have wondered how many Bitcoin addresses are possible. When looking around, I stumbled upon this thread on BitcoinTalk:

There are exactly 2^160 possible addresses as long as we keep using RIPE-MD160.

2^160 is 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976.

Then I wondered if there are less possible addresses with the Bech32-format, specified by BIP 0173.

Besides, you cannot use uppercase format of characters in your computation, and some numbers as letters, such as i/1 and o/0 characters/numbers are excluded in Bech32 format.

Should that not decrease the possible amount of Bitcoin addresses dramatically, and decrease the security of Bitcoin?

So, I would like to know how many possible Bitcoin addresses there are with Bech32 format. How could I calculate it? What will the total number (plain long number, not the squared one, I'm not good in math) of possibilities be with the restrictions of Bech32 then?

3
  • Bech32 addresses are not shorter by any means (42 instead of 34 characters for typical ones). – Pieter Wuille Jan 26 '18 at 9:10
  • Thanks for your explaination, Pieter. I have edited my post, regarding your comment. And I hope you don't mind my poor English (Ik ben overigens Nederlands). Should it be reasonable to assume there will be less possible addresses with Bech32 format, compared with the old Bitcoin addresses (2^160)? – ReneFroger Jan 26 '18 at 11:03
  • No, there are far more Bech32 addresses than P2PKH addresses. – Pieter Wuille Nov 30 '20 at 17:41
4

Keep in mind that both types of addresses, assuming we are comparing P2PKH with P2WPKH addresses, are just encoding the hash of a public key. The hash used in both address types is a RIPEMD-160(SHA-256(public key)), so regardless of the encoding, the number of possible valid addresses remains the same. Each address format is simply encoded with a different checksum system, different version system, and different characters. But neither address format is actually ever used within bitcoin transactions themselves, they both just get "unwrapped" when given to a wallet.

2
  • So, Bech32 just encodes a raw address. – Willtech Jan 26 '18 at 20:26
  • 1
    There is no such thing as a "raw address". Every address is a shorthand notation for a particular scriptPubKey. SegWit scriptPubKeys still contain a 160-bit hash, so Bech32 addresses must do the same. Otherwise it would be impossible to construct a transaction using such an address. – Pieter Wuille Jan 27 '18 at 18:14

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.