Pages:
Author

Topic: What are the chances of an address collision? and what happens when it does? (Read 22435 times)

sr. member
Activity: 430
Merit: 253
VeganAcademy
a privkey rules an address no matter the salt. you can use that privkey to import the addresses funds to any wallet on any computer.

it doesn't hurt or cost anything to split your funds into a few address, thus minimizing your exposure of being struck by lightning in this sort of attack.

According to this, the odds of you being struck by lightning in the U.S. each year is
1 in 960000

If the entire Bitcoin network devoted all of its hashing power to guessing your private key (assuming 1 million trillion checks per second), then the odds each year of someone generating your private key are
1 in 31557600000000000000000000

In other words, you are 32872500000000000000 times more likely to be struck by lighting.

Even if someone were able to generate 2109 addresses per year, you are still about 2 billion times more likely to be struck by lightning in a year.

The cost of doing anything to minimize your risk (including even discussing it) is greater than the risk of doing nothing.


wow you really like writing zero's Smiley

what are the odds of being struck by lightning twice in a lifetime? has that happened?

theorizing and intellectual conversation are always a worthy endeavor.
legendary
Activity: 4466
Merit: 3391
a privkey rules an address no matter the salt. you can use that privkey to import the addresses funds to any wallet on any computer.

it doesn't hurt or cost anything to split your funds into a few address, thus minimizing your exposure of being struck by lightning in this sort of attack.

According to this, the odds of you being struck by lightning in the U.S. each year is
1 in 960000

If the entire Bitcoin network devoted all of its hashing power to guessing your private key (assuming 1 million trillion checks per second), then the odds each year of someone generating your private key are
1 in 31557600000000000000000000

In other words, you are 32872500000000000000 times more likely to be struck by lighting.

Even if someone were able to generate 2109 addresses per year, you are still about 2 billion times more likely to be struck by lightning in a year.

The cost of doing anything to minimize your risk (including even discussing it) is greater than the risk of doing nothing.
sr. member
Activity: 430
Merit: 253
VeganAcademy
a privkey rules an address no matter the salt. you can use that privkey to import the addresses funds to any wallet on any computer.

it doesn't hurt or cost anything to split your funds into a few address, thus minimizing your exposure of being struck by lightning in this sort of attack.
legendary
Activity: 4466
Merit: 3391
although it seems we're still looking at thousands of thousands of years before a rational possibility of collision in maximum scenario (without 24x bitcoins current network capabilities;) it's still a bit unsettling that the possibility is out there.

maybe food for thought in not holding all of ones funds in a single address.


The chances of the Earth being hit by an asteroid are much much much higher. If 1 in 259 unsettles you, then I suggest you start digging a bunker now. I apologize if I just caused you to become unglued.

This video is always appropriate to this discussion: https://www.youtube.com/watch?v=KX5jNnDMfxA
sr. member
Activity: 430
Merit: 253
VeganAcademy
Quote
The probability of a collision is found by a standard formula: p = 1 - k! / Nk-1(N-k)!, where k is the number of hashes generated (100x1010x103) and N is the number of possible hashes (2160).
This is a difficult number to calculate, but there is a good approximation: p = 1 - e-k(k-1)/2N
But even that value is difficult to compute because of the precision needed. Here is another approximation p = k2/2N.
So the answer is that the probability of at least one collision is approximately 7x10-19 or 0.00000000000000007%
that's for the collision of a specific address correct?
what if you were to continually generate addresses (and thus privkeys) hoping to collide with another random address which holds funds.
i would imagine as the pool of addresses used by the general population increases, the chances of collisions occurring will increases likewise.

That is the probability of the same address being generated by two different wallets, assuming that all generated addresses are all used. It is not the same as simply generating an address that is currently in use.

The maximum theoretical probability can be computed. Suppose bitcoins are maximally distributed such that each address holding bitcoins contains only 1 satoshi. There would be 2.1 quadrillion addresses in use (or about 251).

The maximum odds of a collision occurring while distributing the 2.1 quadrillion satoshis is approximately (251)2 / (2 * 2160), or

1 in 259, or 1 in 576460752303423488

That is an incredibly small number.

Once the satoshis are distributed, the odds of generating a single address that is already in use is 251 / 2160, or
1 in 2109, or 1 in 649037107316853453566312041152512

These are the highest possible odds of a collision.

Suppose you are trying to steal satoshis by brute force and you hope to crack one address per year. What kind of hash rate do you need? Well, you need to check 2109 private keys per year (31556926 seconds), or
2.1x1025 checks per second

Note that 2.1x1025 is about 24 million times the total Bitcoin hash rate (though the two rates are not directly comparable)


very concise response, thank you..

although it seems we're still looking at thousands of thousands of years before a rational possibility of collision in maximum scenario (without 24x bitcoins current network capabilities;) it's still a bit unsettling that the possibility is out there.

maybe food for thought in not holding all of ones funds in a single address.
legendary
Activity: 4466
Merit: 3391
Quote
The probability of a collision is found by a standard formula: p = 1 - k! / Nk-1(N-k)!, where k is the number of hashes generated (100x1010x103) and N is the number of possible hashes (2160).
This is a difficult number to calculate, but there is a good approximation: p = 1 - e-k(k-1)/2N
But even that value is difficult to compute because of the precision needed. Here is another approximation p = k2/2N.
So the answer is that the probability of at least one collision is approximately 7x10-19 or 0.00000000000000007%
that's for the collision of a specific address correct?
what if you were to continually generate addresses (and thus privkeys) hoping to collide with another random address which holds funds.
i would imagine as the pool of addresses used by the general population increases, the chances of collisions occurring will increases likewise.

That is the probability of the same address being generated by two different wallets, assuming that all generated addresses are all used. It is not the same as simply generating an address that is currently in use.

The maximum theoretical probability can be computed. Suppose bitcoins are maximally distributed such that each address holding bitcoins contains only 1 satoshi. There would be 2.1 quadrillion addresses in use (or about 251).

The maximum odds of a collision occurring while distributing the 2.1 quadrillion satoshis is approximately (251)2 / (2 * 2160), or

1 in 259, or 1 in 576460752303423488

That is an incredibly small number.

Once the satoshis are distributed, the odds of generating a single address that is already in use is 251 / 2160, or
1 in 2109, or 1 in 649037107316853453566312041152512

These are the highest possible odds of a collision.

Suppose you are trying to steal satoshis by brute force and you hope to crack one of the 2.1 quadrillion addresses per year. What kind of hash rate do you need? Well, you need to check 2109 private keys per year (31556926 seconds), or
2.1x1025 checks per second

Note that 2.1x1025 is about 24 million times the total Bitcoin hash rate (though the two rates are not directly comparable)
sr. member
Activity: 430
Merit: 253
VeganAcademy
What do you exactly mean by collision?
I mean is there an point out of building adresses without connected to the network? i think no..

build addresses and check balances against any block explorer, import the generated privkey on any collisions to siphon funds.

its cold calling with an extra step but anyone who ran toneloc back in the day will tell you that the law of averages is pretty unrelenting.
member
Activity: 96
Merit: 10
What do you exactly mean by collision?
I mean is there an point out of building adresses without connected to the network? i think no..
sr. member
Activity: 430
Merit: 253
VeganAcademy

Quote

The probability of a collision is found by a standard formula: p = 1 - k! / Nk-1(N-k)!, where k is the number of hashes generated (100x1010x103) and N is the number of possible hashes (2160).

This is a difficult number to calculate, but there is a good approximation: p = 1 - e-k(k-1)/2N

But even that value is difficult to compute because of the precision needed. Here is another approximation p = k2/2N.

So the answer is that the probability of at least one collision is approximately 7x10-19 or 0.00000000000000007%


that's for the collision of a specific address correct?

what if you were to continually generate addresses (and thus privkeys) hoping to collide with another random address which holds funds.

i would imagine as the pool of addresses used by the general population increases, the chances of collisions occurring will increases likewise.
donator
Activity: 2772
Merit: 1019
Here is a way to get an address collision in just under a minute:

Step 1: Grab every human on the planet.
Step 2: Convert each of their atoms into a little computer that can generate a new Bitcoin address every 1/10^9 seconds (A billion addresses per second)
Step 3: You will consume the entire search space within 30 seconds.
Step 4: Profit.

Workings:
Bitcoin addresses: 2^160.
Amount of atoms in an average size human (70kg): 7 X 10^27 atoms
Human population: 7.22 billion people.
Addresses generated each second: 1 billion.

I think you just found ALL POSSIBLE collisions. Congrats on owning all bitcoins, too (present and future).
legendary
Activity: 1176
Merit: 1015
Here is a way to get an address collision in just under a minute:

Step 1: Grab every human on the planet.
Step 2: Convert each of their atoms into a little computer that can generate a new Bitcoin address every 1/10^9 seconds (A billion addresses per second)
Step 3: You will consume the entire search space within 30 seconds.
Step 4: Profit.

Workings:
Bitcoin addresses: 2^160.
Amount of atoms in an average size human (70kg): 7 X 10^27 atoms
Human population: 7.22 billion people.
Addresses generated each second: 1 billion.
legendary
Activity: 2940
Merit: 1333
Address collision won't occur. It will be a billionth of billionth of a billionth chance, that an address may collide.

The chance depends on how many addresses there are.

Further, the address is backed by public key and private keys. Those keys must be different even if an address collide with another. No need to worry or think about the collision problem. The ECD curve is much larger than the scope we're imagining.

The ECD curve doesn't matter. We use 160 bit addresses, and that's the space we're looking for collisions in. If two different privkeys give the same address they can still spend each other's funds, since we pay to addresses, not to privkeys or pubkeys.
member
Activity: 65
Merit: 10
Since Bitcoin addresses are basically random numbers, it is possible, although extremely unlikely, for two people to independently generate the same address. This is called a collision. If this happens, then both the original owner of the address and the colliding owner could spend money sent to that address. It would not be possible for the colliding person to spend the original owner's entire wallet (or vice versa). If you were to intentionally try to make a collision, it would currently take 2^107 times longer to generate a colliding Bitcoin address than to generate a block. As long as the signing and hashing algorithms remain cryptographically strong, it will likely always be more profitable to collect generations and transaction fees than to try to create collisions.

It is more likely that the Earth is destroyed in the next 5 seconds, than that a collision occur in the next millenium.
newbie
Activity: 40
Merit: 0
Address collision won't occur. It will be a billionth of billionth of a billionth chance, that an address may collide. Further, the address is backed by public key and private keys. Those keys must be different even if an address collide with another. No need to worry or think about the collision problem. The ECD curve is much larger than the scope we're imagining.
legendary
Activity: 2940
Merit: 1333
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.
legendary
Activity: 1974
Merit: 1029
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
A graphical explanation of bitcoin security https://i.imgur.com/VjtG3.jpg



awesome! where did that come from?

I saw the link on IRC and though I should share, didn't ask where it came from  Smiley
donator
Activity: 2772
Merit: 1019
I'm not saying collisions anywhere close to likely to occur, but...

Given your example of 1 billion users at 10 addresses each:

There are 2^160 or about 1,460,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 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
10,000,000,000 / 2^160 = 0.00000000000000000000000000000000000000684

So the chances of a collision occurring in your scenario are approximately 0.000000000000000000000000000000000000684%

This is the chance of finding a collision when generating 1 address.

The chance of a collision occuring "at all" is higher.

Let's assume (worst case) we use bitcoin for 1E3 years and there are 1E10 people populating earth at any point in time who will generate on average 1E3 addresses during their lifetimes.

What are the chances of a collision to occur under these assumptions?


The probability of a collision is found by a standard formula: p = 1 - k! / Nk-1(N-k)!, where k is the number of hashes generated (100x1010x103) and N is the number of possible hashes (2160).

This is a difficult number to calculate, but there is a good approximation: p = 1 - e-k(k-1)/2N

But even that value is difficult to compute because of the precision needed. Here is another approximation p = k2/2N.

So the answer is that the probability of at least one collision is approximately 7x10-19 or 0.00000000000000007%


See: http://preshing.com/20110504/hash-collision-probabilities

thanks odolvlobo, this is very helpful info.

Since this is the probability of a collision to be found anywhere within the network (right?), I should probably either compare this to the probability of anyone getting struck by lightning, or I should compare the probability of a particular indivudual finding a collision with the probability of said individual getting struck by lightning?
donator
Activity: 2772
Merit: 1019
A graphical explanation of bitcoin security https://i.imgur.com/VjtG3.jpg



awesome! where did that come from?
Pages:
Jump to: