Bitcoin addresses are essentially 160-bit hashes of a 256-bit public key. Huh? How can all possible numbers in 256-bit space be squeezed into 160-bit space? Does that mean any given bitcoin address could be derived from more than just one public key?
-
1I’m not sure I understand your question but if it means what I think it does then it will be beneficial for you to read about hash functions in a general setting. They are by design non injective (since they have a finite codomain and a larger domain) meaning there will be two different inputs that hash to the same output but a good hash function is designed so that the probability of one person being able to find two such inputs is epsilon small– Prince MCommented Jul 28, 2018 at 23:34
Add a comment
|
1 Answer
It's really 160 bit hash (RIPEMD160
) of an already hashed (SHA256
) public secp256k1 elliptic curve key. And yes, on the average, every address has about 2256-160=296 pairs of private/public keys.
-
There is a possibility that it might be easier for quantum computing to 1st identify any one of the overlapping 2^96 public keys, with an already known companion private key, satisfying the associated P2PKH transaction redemption criteria than trying to factor a 256-bit private key.– skahtCommented Jul 30, 2018 at 20:14