Sorry for the necro-post, but
reddit is talking about this thread, and nobody in this thread seems to be close to the truth...
Given your example of 1 billion users at 10 addresses each:
There are 2^160 possible addresses
In your scenario, 1,000,000,000 people are using 10 addresses each for a total of 10,000,000,000 possible addresses
10,000,000,000 / 2^160 should yield the probability of a collision occurring
This is wrong. It fails to take into account the
birthday problem.
When there are 10^10 addresses, there are roughly (10^20)/2 pairs of addresses.
Consider when there are 5 addresses, A through E.
To check for a collision, you need to compare AB, AC, AD, AE, BC, BD, BE, CD, CE, DE - that's 10 pairs of addresses (5*4)/2, or roughly (5^2)/2.
So your answer is off by a factor of roughly 5 billion.
Since there are 2^160 possible addresses, we need around 2^80 of them to have a 50% chance of a collision.
http://diyhpl.us/~bryan/papers2/bitcoin/bitcoin-birthday.pdf does a better job of approximation, but comes up with a similar answer.
Comparatively speaking, your odds of being struck by lightning in a given calendar year are about 1 in 280,000. The odds of winning my local lottery are about 1 in 176,000,000. So finding a collision on your first try is roughly equivalent to being hit by lightning 16,540,000,000,000,000,000,000,000 times per second for an entire year
No. You can say that the odds of being hit by lightning are 16,540,000,000,000,000,000,000,000 times higher than of finding a collision, but your statement isn't true.
A simpler example that we can picture more easily than all those zeroes:
* I have a 1 in 2 chance of coin coming up tails.
* I have a 1 in 20 chance of rolling a 6 on a 20 sided die.
* so tossing "tails" is 10 times more likely than rolling a 6.
From this, using your logic, I am just as likely to toss "tails" 10 times in a row as I am to roll a 6.
But we can see that this isn't true. Tossing "tails" 10 times in a row is a 1 in 1024 event. Rolling a 6 is still only 1 in 20.