Thank you Gavin Andresen, gmaxwell, Revalin and DeepBit for your replies. They are very helpful.
I am starting to understand this better. My concern is based in the long term safe storage of Bitcoins. Directly using a single account for this would leave many transactions in the blockchain for both receiving and spending coins. While this could be masked by using temporary (wallet) accounts to transfer coins into and out of the long term account before transfers from or to other's accounts, it will still be in the blockchain, so the public key would not be completely hidden (like if not used in any transaction), and would be easy to obtain from the blockchain if one knows one of the temporary account numbers.
I don't believe that the quantum computer threat is very immanent. I find it very difficult to believe that quantum computers will ever physically exist.
Quantum physics is based on a purely mathematical formulation rooted in probability, not physical phenomena. It does not have a direct tie to reality.
The Bitcoin address does hide the public key using a hash {RIPEMD160(SHA256())}, which does a very good job of protecting the public key. It makes a lot more sense why it is recommended not to spend from the same account number more than once. Then, the public key is not exposed except for a very brief duration, leaving very little time to try to exploit it. Does exposure of the public key really matter?
I do not disagree that the probability of an accidental address collision is incredibly improbable.
My concern is the intentional collision possibility. Guessing a private key that will result in the same public key seems less likely than a key pair that has the same address hash. However, depending on how many public keys have the same address hash, the guesser gets an advantage due to the increased possibility of a collision at the address hash level, relative to the public key level.
According to
https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm"public key: A number that corresponds to a private key, but does not need to be kept secret." So one would either have to guess at the private key or determine a way to crack ECDSA using the blockchain info related to the address and/or public key. Guessing at a truly random private key is incredibly improbable. If the private key is derived from a passphrase (brain wallet), the possibility might become feasible or even likely.
The private key has a security level of 256 bits. The MD160 has a security level of 160 bits. It would appear that a single Bitcoin address would collide with about (2^256)/(2^160) or about 8x10^28 public keys. It is probably not this simple, but an address collision certainly seems much more probable than a public key collision, if that is even possible.
If someone would be willing to comment on this, I would really appreciate it.
The key issues seem to be:
1) Approximately how many ECDSA public keys can have the same address hash?
2) How secure is the private key when the public key is known?
(This is addressed a little at
http://en.wikipedia.org/wiki/Elliptic_Curve_DSA, which seems to indicate it is as difficult as guessing the private key. Also at
http://eprint.iacr.org/2002/129.pdf and
https://bitcointalksearch.org/topic/is-the-ecdsa-public-key-hashed-as-a-extra-level-of-protection-10697)
Also:
http://bitcoin.stackexchange.com/questions/22/is-it-possible-to-brute-force-bitcoin-address-creation-in-order-to-steal-moneyThanks!