if wallet address don't ever get recycled, then that means there are only a predetermined set amount of wallet address, just like the amount of bitcoins that's able to be mined. if this is the case, then what happens after all the addresses gets used up? i suck at statistics, but what's the total amount available? let me know if my math is correct/wrong:

First off, what you think of as an "address" is really a base58 representation of a 160-bit hash plus a checksum. So, there's considerably less possibilities. Only 2^160, or about 1.46 × 10^48. However, that's still pretty big. If you could generate one million addresses per second (most computers can only do 1/1000th of that right now, at best), then it'd still take 4.634391290369428×10^34 YEARS for one person to exhaust the address space. That's besides the fact that we can switch to 256-bit addresses (the size of our current public keys) without any modification to the current protocol.

If mankind doesn't restructure the entire human body, it's unlikely our species can survive more than 10^9 years from now on earth. If we don't fuck up everything before, obviously. Just as a side note.

If you could generate one million addresses per second (most computers can only do 1/1000th of that right now, at best)

Using vanitygen, my computer can generate over 1.5 million addresses a second, and I think some people are getting several million using their GPU. So we may be able to get down to only 1047 years or so.

If address collisions where likely, you could bruteforce keys to bitcoins. 2^160: too big a search space. ou can start vanitygen on a search, though and it will find the key to any address, just takes some time:

Correct me if I'm wrong, but the relevant metric (under the paranoia security model) is the average time to find a collision, not time to exhaust the address space. And I thought that that value was equal to the square root of the size of the address space, which, per Maged's post's value, would be ~1.2 x 10^24.

So if a network of comparable size to that of bitcoin miners instead devoted itself to generating addresses, they could feasibly get ~1 trillion/sec. This would get a collision in ~38,000 years. Not bad, but a lot sooner that the obscenely huge numbers posted in the thread.

Also, in order for an upgrade to larger keysizes, everyone would have to void the balances held by their existing addresses and transfer them to the larger-key addresses, and have those transfers incorporated into the blockchain, all before anyone could spend they coins in a collided address.

So, I've been kind of worried that maybe the ECDSA keysize was chosen to be a bit too small. Well ... several bits too small

Correct me if I'm wrong, but the relevant metric (under the paranoia security model) is the average time to find a collision, not time to exhaust the address space.

A simple collision would not gain you very much. You would need a collision with an already used address or otherwise you would not be able to cause any harm or profit anything from it. This is why the Birthday attack does not help you here.

Since such threads pop up every once in a while: I always find it funny how people tend to overestimate the probability of some extremely rare event. I mean, mankind is probably more likely to get extinct by the impact of a green striped meteorite tomorrow and I don't see anyone worrying about that (ok, this is the Bitcoin forum - I guess there are other forums where people actually do worry about green striped meteorites

Anyway, I guess we're safe regarding the keysize for the time being, barring some cryptoanalytic breakthrough of course.

So if a network of comparable size to that of bitcoin miners instead devoted itself to generating addresses, they could feasibly get ~1 trillion/sec. This would get a collision in ~38,000 years. Not bad, but a lot sooner that the obscenely huge numbers posted in the thread.

A simple collision would not gain you very much. You would need a collision with an already used address or otherwise you would not be able to cause any harm or profit anything from it. This is why the Birthday attack does not help you here.

Since such threads pop up every once in a while: I always find it funny how people tend to overestimate the probability of some extremely rare event.

Good points, but it's not so much the worry about a rare event, but about whether someone can, with sufficient devoition and accessible means, cause the event. If people just generate keys as needed, that's no big deal; the question, rather, is how much damage someone can do if they deliberately generate as many keys as possible, optimizing the hardware/software specifically for this application.

Some further related worries:

1) The collision calculations assume effectively random selection of addresses. If there's any correlation between how bitcoin clients choose addresses, the collision probability is much higher. How does the main client ensure high-quality randomness?

2) Is every value from 0 to 2^160 really usable as an ECDSA public key? I mean, with RSA, you can't just pick any ol' 4096-bit number as your public key modulus: it has to be the product of two "big", "high-quality", "compatible" semi-primes (though I don't know how much this collapses the keyspace). Can I securely use 1 as much bitcoin public key?

3) Aren't these keypairs the same as those used in any application of 160-bit ECDSA? Meaning that any user of a 160-bit ECDSA keypair -- not just those who use it for bitcoin -- represents a potential collision? Meaning that we have to worry not just about Bitcoiners using up the keyspace, but Bitcoiners plus every other user of that signature algorithm that's 160-bit?

So if a network of comparable size to that of bitcoin miners instead devoted itself to generating addresses, they could feasibly get ~1 trillion/sec. This would get a collision in ~38,000 years. Not bad, but a lot sooner that the obscenely huge numbers posted in the thread.

So far the technology seemed to have been able to double available computation power every 18 to 24 months, how would that reduce the time for getting a collision?

So if a network of comparable size to that of bitcoin miners instead devoted itself to generating addresses, they could feasibly get ~1 trillion/sec. This would get a collision in ~38,000 years. Not bad, but a lot sooner that the obscenely huge numbers posted in the thread.

So far the technology seemed to have been able to double available computation power every 18 to 24 months, how would that reduce the time for getting a collision?

A random collision is useless. Take that 38,000 years, make it 38,000,000,000,000,000 years. CPU power doubling, ehh I still think we're safe...for now. =)