I've read that it's never safe to use the same bitcoin address more than once because there is a small chance that someone could solve for your private keys (though I don't have a solid-enough background in encryption to understand all of the implications of this concept). In any case, even if you did generate a different address for every incoming transaction, what would stop an attacker from simply sending many transactions to the first address they see in an attempt to crack your private key?
-
I think that what you read is wrong, or you have misunderstood it. Can you give a link / reference to where you read this?– Nate EldredgeNov 22, 2015 at 15:51
-
@NateEldredge en.bitcoin.it/wiki/Address_reuse#Security– JSiderisNov 22, 2015 at 16:04
-
1I believe you are thinking of the leaking of a private key when building a transaction with reused r-values. There is no chance someone can solve your private key from an attacker sending you coins. bitcointalk.org/index.php?topic=977070.msg10669517#msg10669517– m1xolyd1anNov 22, 2015 at 16:20
-
1@Bizorke: I think it's also important to emphasize that the signature vulnerability is not inherent to ECDSA, as far as I know; it requires a flawed implementation. The "reused r values" only works if you are using a broken random number generator, and the side channel attack requires that the attacker have access to your computer (possibly a different account). I'm not aware of any inherent risks of creating many transactions from a single address.– Nate EldredgeNov 22, 2015 at 19:08
-
1Modern software uses RFC6979 which doesn't use any supplied entropy for the ECDSA nonce anyway. If the RNG is so broken it's making duplicates there's going to be other problems though.– ClarisNov 23, 2015 at 1:26
3 Answers
So there are attacks where if you sign enough times with the same private key, the attacker, with access to a side-channel can figure out your key.
So if you were signing with your private key a lot of times, this would make your private key slightly less secure. If you're receiving bitcoins to your address, you're not signing with your private key, so this isn't an issue.
The more important consideration here is that you lose privacy with address reuse.
-
Note that a "side channel" is often talking about some level of access. Bitcoin Core also does not use OpenSSL for signing transactions so this particular bug is likely a complete non-issue.– ClarisNov 22, 2015 at 22:33
Several cryptographic schemes have such kind of flaw, that is, if an attacker intercepts several messages from one single private key source, it becomes easier to decipher the message. During the World War II this were done several times by the allies in order to break the Nazis and the Japaneses codes.
Fortunately, bitcoin rely on cryptographic schemes (mainly SHA256) that doesn't have any know flaw (unless brute force) yet. This means that, if you don't provide your private key to no one else, you can do as many transactions you like with one single address account that an attacker would not be better of to break your account.
It does make your address slightly less secure once you send from it. If the address is only used to receive Bitcoin though, it is secure, and there is no significant risk to your private keys.
EDIT Added: Sending lets the world know the public address. This increases risk (albeit to insignificant levels) but still IMO many times higher risk than not disclosing this information at all, because now any attacker is closer to finding the private key.
So as just one reason (there are more)... given that there is clearly non-zero risk that technology could be developed to compute private keys more easily from public addresses, publicizing public addresses increases risk. See link below.
-
Can you quantify the "slightly"? As far as I know, these risks are only significant if you are using a flawed implementation. It would seem to be a serious problem with ECDSA if publishing any reasonable number of signatures would make it feasible for an attacker to recover the private key. Nov 22, 2015 at 19:09
-
2This is misleading, because it's conflating address correlation (see which keys are related) and address compromise (take money from you). Nov 22, 2015 at 20:42
-
I do not understand your criticism Nick, can you explain. As for quantification Nate, I don't have time to calculate that, not certain why the exact number is relevant to answering the question. Nov 22, 2015 at 23:38
-
@BradThomas Sure.
It does make your address slightly less secure once you send from it.
If you mean in the sense that it reduces address privacy, that's true, but misleading, since the OP asked about something else. If you mean that in the sense that repeated signings can allow someone to compromise your private keys, that's false. If there's some other aspect of my criticism you'd like clarification on, please let me know. (P.S. Remember to @mention someone to notify them of your response.) Nov 23, 2015 at 21:45 -
@Nick, thank you for your clarification. I think I could have been clearer what I meant in my answer, so I have updated it Nov 23, 2015 at 23:37