|
June 10, 2014, 10:36:12 PM |
|
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!
|