Post
Topic
Board Beginners & Help
Topic OP
The size of the private and public key sets, and collisions
by
Berghoff
on 10/06/2014, 22:36:12 UTC
So a private key is any number from 1 to  115,792,089,237,316,195,423,570,985,008,687,907,852,837,564,279,074,904,382,605,163,141,518,161,494,336.... or a little under 2^256.  Using the ECDSA, a public key is created that is anywhere from 1 to 2^160.  And, if I remember what I read elsewhere correctly.  For any of those public keys, there should be about 2^96 corresponding private keys.

Therefore....

1) If I have a bitcoin address of "1EQG7J2q4VfAgMBhetEj3cd3PNGYmBLHh" and I wanted to brute force finding a private key that corresponds to that, I could theoretically start with the number 1 as the private key, and increment by one each time, and on each iteration compute the public key (plus derive the address) and validate if the two match.  I would need to do this about 2^160 times until I found a match.  

2) If I did find a match, even if the new private key  did not match the original private key used to create address, I could create a transaction to transfer bitcoin to another address.

Are those two statements correct.  

I just need to find one of the 2^96 numbers of the 2^256 that hash into 1P1ou9XxdpdM35JdWYRE7CHRa6E6mU7ziV, and I'm living on easy street!