2

There are two bitcoin address: (A) 1111111111111111111114oLvT2 (B) 31h1vYVSYuKP6AhS86fbRdMw9XHieotbST which has the same hash160:
0000000000000000000000000000000000000000 How is this possible and what are the consequences?

https://www.blockchain.com/btc/address/1111111111111111111114oLvT2 and https://www.blockchain.com/btc/address/31h1vYVSYuKP6AhS86fbRdMw9XHieotbST

4

Technically speaking, these are not identical hashes, because they are not hashes. They're just addresses someone created by encoding the value 0000...0000 into a P2PKH and a P2SH address.

Funds sent to those addresses cannot be spent, for two reasons.

  1. It would require finding a public key or script whose hash is 0000...0000, which is assumed to be impossible (SHA256 or RIPEMD160 would be broken if that was the case).

  2. Even the value wasn't 0000...0000, but the hash of an actual public key, it would still be impossible to find a script whose hash was equal. Alternatively, if it was the hash of a script, it would be impossible to find a public key with the same hash.

  • Finding a pubkey which shares a hash160 with a valid script should be easy : 02****1D********************************************************** , 03******1C******************************************************** , and 04********3B**********************************************************************************************************************. Replace ** with any byte and there you have a valid pubkey which is also a valid script, although it is not a very interesting script :) – arubi Aug 25 '18 at 4:03
2

It just means someone created 2 different address types with the same hash160 value. They are still valid addresses, and would be considered different (because of the different prefix, see below). I was amazed for a moment, but it looks like the 2 addresses have never spent any bitcoin :) It's almost certain the creator did not create this from a valid key pair.

If you take the hash160 value 0000000000000000000000000000000000000000 and append 00, the standard P2PKH address prefix, and then BASE58CHECK encode it, you get the first address 1111111111111111111114oLvT2.

Then, change that prefix to 05, the standard P2SH address prefix, you get the second address: 31h1vYVSYuKP6AhS86fbRdMw9XHieotbST.

$ printf "000000000000000000000000000000000000000000" | xxd -r -p | base58 -c
1111111111111111111114oLvT2
$ printf "050000000000000000000000000000000000000000" | xxd -r -p | base58 -c
31h1vYVSYuKP6AhS86fbRdMw9XHieotbST

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.