Pages:
Author

Topic: Is it possible for two private keys/clients to generate identical BTC address ? (Read 4232 times)

legendary
Activity: 3920
Merit: 2348
Eadem mutata resurgo
Quote
There are approximately 2160 things higher on the development priority list.

Classic. That should be saleable as a Dilbert punchline.
donator
Activity: 826
Merit: 1039
... the public part of the newly generated address can be checked for uniqueness against the pack of public keys?  Thereby guaranteeing uniqueness of the whole address...
Your scheme doesn't protect against someone else generating the same key at a later time, so it doesn't guarantee uniqueness.

Quote from: gavinandresen
There are approximately 2160 things higher on the development priority list
Indeed.

David, look at it this way. On the one hand, there is a possibility that someone could hack one bitcoin address if everyone in the world tried for a trillion years. On the other hand, just today someone lost bitcoins because of a backup tool that stole his bitcoin wallet.

Which is the bigger threat to bitcoin's success?

legendary
Activity: 1652
Merit: 2216
Chief Scientist
A lot of coulds there...what is stopping this from happening?

There are approximately 2160 things higher on the development priority list.
newbie
Activity: 16
Merit: 0
A lot of coulds there...what is stopping this from happening?
Hal
vip
Activity: 314
Merit: 3853
Bitcoin addresses are 160-bit hashes of keys which have 256 bits of uniqueness. We could switch to a 256-bit hash pretty easily (or even not use a hash, just use the 256-bit x coordinate of the public key). The scriptPubkey could use OP_HASH256 instead of OP_HASH160 to reduce the risk of collisions. Addresses would be a few characters longer.
newbie
Activity: 16
Merit: 0
Nice move, you win Wink

Going back the the OP question.  I'm new here, but from what i've heard a BTC address consists of a public and private component.

What would be the security risks of having a pack of every public key publicly available.  Then, when creating a new individual address, the public part of the newly generated address can be checked for uniqueness against the pack of public keys?  Thereby guaranteeing uniqueness of the whole address...
donator
Activity: 826
Merit: 1039
But then, how would one implement absolute uniqueness into the BTC system without using a central store?

Exactly. The system must be probabalistic because there is no central key store. But so what?

If quantum computing becomes practical, we can switch to quantum keys and spend our existing wallets to one of those newfangled keys.
newbie
Activity: 16
Merit: 0
For a system such as this, I think absolute uniqueness is a necessity.

I do completely agree with what you say, under current CPU models.  However, take this scenario: BTC becomes the world currency, then quantum computing becomes a reality.  Now what do we all do?

But then, how would one implement absolute uniqueness into the BTC system without using a central store?
donator
Activity: 826
Merit: 1039
Bear in mind, we are not looking for a single address among the clouds here.  We are looking for -any- address containing BTC.

Suppose each of the 7 billion people in the world has 1000 unspent addresses. On average you would need to try more than 1035 addresses to find each spendable one. Suppose you can check a million addresses per second, this is going to take you more than 1021 years.

If everyone in the world is trying to crack this at the same time, it will still take around 1012 years. And when someone finally cracks it, after paying the electricity bill for 1012 years, they might be disappointed to find that the key unlocks just 0.05 BTC from the Bitcoin Faucet. Even if it's ten million bitcoins, it's not going to pay the electricity bill for 7 billion computers running for a trillion years.
administrator
Activity: 5166
Merit: 12850
UUIDs have 2128 possible identifiers. They are also designed to be collision-proof. Wikipedia says:

Is it possible the probabilities are misunderstood, similar in some way to the Birthday problem?  (Where the odds of 2 people in a room having the same birthday are very much reduced from what one would expect)

I took that into account in my "ten addresses per second" example.
newbie
Activity: 16
Merit: 0
In which case, why bother storing at all?

If our committed individual merely cycles until hitting an account with some "cash", cleans it out, then moves on to the next.  I see it is still highly likely they would not hit anything worth their time, currently.  However, further down the line, with many many addresses being used and serious money at stake, one can imagine this becoming more and more plausible as an organised, (illegal), revenue stream.

In which case, it becomes a matter of simply how many BTC address can you compute and check per second say.  The situation under which will only get worse as technology advances.

Bear in mind, we are not looking for a single address among the clouds here.  We are looking for -any- address containing BTC.


Addition - If this becomes widespread, users would spread their BTC across multiple addresses, which effectively makes finding an account with BTC easier, but at the same time, reduces the proftability of any particular "hit".
legendary
Activity: 1652
Merit: 2216
Chief Scientist
A committed individual or organization could easily aquire network storage in the Petabytes.  I think that would be more than enough to get a sizable operation started.

1 petabyte is 1015 bytes.

There are 2160 possible BTC addresses, each of which is 160 bits == 20 bytes long.

So to store all of them you need 2160x20 bytes, which is 29,230,032,746,618,058,364,073,696,654,325,660 petabytes.

newbie
Activity: 16
Merit: 0
A committed individual or organization could easily aquire network storage in the Petabytes.  I think that would be more than enough to get a sizable operation started.
hero member
Activity: 504
Merit: 500
PGP OTC WOT: EB7FCE3D
Generating 10 keys per second is not very much at all.  How many could a modern server generate per second? - 100's? 1,000's?  How about a future server with tech improving at 2x per 18 months PER COMPONENT stacked?

ok, what about the space to store all generated key pairs? it's not only about generating all possible key pairs but also to keep them once you've generated them.
newbie
Activity: 16
Merit: 0
Is it possible the probabilities are misunderstood, similar in some way to the Birthday problem?  (Where the odds of 2 people in a room having the same birthday are very much reduced from what one would expect)

Generating 10 keys per second is not very much at all.  How many could a modern server generate per second? - 100's? 1,000's?  How about a future server with tech improving at 2x per 18 months PER COMPONENT stacked?
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
I know that someguy used the same address that I use too. If I will find where I wrote it - I will say you.
hero member
Activity: 504
Merit: 500
PGP OTC WOT: EB7FCE3D
If every person on Earth makes ten addresses per second for 20 years (2x1018 total addresses), then the probability that two of these addresses collide is about 1.57x10-12.
this is what i like on mathemagic.
you can describe how unprobable something is
administrator
Activity: 5166
Merit: 12850
If every person on Earth makes ten addresses per second for 20 years (2x1018 total addresses), then the probability that two of these addresses collide is about 1.57x10-12.
donator
Activity: 826
Merit: 1039
Is it possible for me to win every lottery for the next ten years, just by luck?

If so,what would happen?
You would be locked up for fraud, because no jury would believe your appeal to statistics.
legendary
Activity: 1470
Merit: 1005
Bringing Legendary Har® to you since 1952
Although it's theoretically possible, the chance of this happening is zero for all practical purposes.

That depends how many possible combinations there is...
If it is more than number of atoms in the universe, then OK. Otherwise, hmmmm...
Pages:
Jump to: