Pages:
Author

Topic: I generated an address that already exists - page 4. (Read 9119 times)

hero member
Activity: 815
Merit: 1000
October 20, 2013, 04:13:31 AM
#18
Bad number generator anyone? Is that the second time for Bitcoin QT? Are they just using whatever the operating system spits out with no additional randomness added?
member
Activity: 80
Merit: 11
October 20, 2013, 04:05:07 AM
#17
Open up the debug console (help->debug window->console), type in:
gettransaction 5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791
If it returns that old transaction then that key was already in the wallet when that transaction hit your client.
When I do this, I see some transaction info. I didn't restore my wallet.
Still, I don't understand what you mean by saying it's always an old address from the keypool.
When I press "New address" button does it generate a brand new address that no one used before?
No, it should return an address your own wallet previously generated that you've never used before. Unclean shutdowns, wallet corruption, salvagewallet, or restoring a backup could cause it to issue an address to you twice, however.  I've never heard of a local replay before outside of these circumstances.

Can you look back through your records and confirm that

78f929d6fd5461cea8a64b1867cbc45b39c3119495b18aff313e9024c025092c was really a transaction paying you and/or
5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791 was really a transaction with you paying some place?

E.g. if you were selling coins at mtgox at that time, go look at your mtgox deposit records on 2012-07-07?


My records go back to 2011 but I don't see any transactions made in Jun or Jul 2012 at all and I didn't use mtgox in 2012.

I also do not see any mention of those two other addresses involved in previous transactions in my wallet.

I will assume that some kind of glitch made the client to reuse that address twice, that's more probable than a collision I guess.

Thank you!
newbie
Activity: 26
Merit: 0
October 20, 2013, 03:56:51 AM
#16
Are you *sure* you didn't own that address already?

If not, it is VASTLY more probable you (and however generated this address before) just unearthed a bug in bitcoin's PRNG. Could you give more details - which OS and OpenSSL you have installed?

I find it *extremely* hard to believe you actually caused a collision. Not now, not in a 1000 years.
legendary
Activity: 966
Merit: 1001
October 20, 2013, 03:08:47 AM
#15
It‘s impossible.

It is statistically possible, but the possibilty is so small that we don't expect to really see it happens.
newbie
Activity: 56
Merit: 0
October 20, 2013, 02:39:53 AM
#14
It‘s impossible.
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
October 20, 2013, 02:26:24 AM
#13
If this IS an actual collision...
Well, the next one probably won't be for a thousand years.
staff
Activity: 4200
Merit: 8441
October 20, 2013, 02:21:21 AM
#12
Open up the debug console (help->debug window->console), type in:
gettransaction 5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791
If it returns that old transaction then that key was already in the wallet when that transaction hit your client.
When I do this, I see some transaction info. I didn't restore my wallet.
Still, I don't understand what you mean by saying it's always an old address from the keypool.
When I press "New address" button does it generate a brand new address that no one used before?
No, it should return an address your own wallet previously generated that you've never used before. Unclean shutdowns, wallet corruption, salvagewallet, or restoring a backup could cause it to issue an address to you twice, however.  I've never heard of a local replay before outside of these circumstances.

Can you look back through your records and confirm that

78f929d6fd5461cea8a64b1867cbc45b39c3119495b18aff313e9024c025092c was really a transaction paying you and/or
5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791 was really a transaction with you paying some place?

E.g. if you were selling coins at mtgox at that time, go look at your mtgox deposit records on 2012-07-07?
legendary
Activity: 1456
Merit: 1018
HoneybadgerOfMoney.com Weed4bitcoin.com
October 20, 2013, 02:11:32 AM
#11

Open up the debug console (help->debug window->console), type in:

gettransaction 5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791

If it returns that old transaction then that key was already in the wallet when that transaction hit your client.


When I do this, I see some transaction info. I didn't restore my wallet.

Still, I don't understand what you mean by saying it's always an old address from the keypool.

When I press "New address" button does it generate a brand new address that no one used before?

Bitcoind always keeps a keypool with 100 (?) addresses which is pregenerates. Every time you request a new address it pulls it from this pool and adds a new one to the pool. The idea is to make backups more effective (but deterministic wallets such as Armory uses are way better for this).

Couldn't I hypothetically create a script that systematically generates bitcoin addresses from the pregenerate pool and have the script lookup the generated address to see if the wallet is active with a balance then choose to spend this into a new wallet address?
legendary
Activity: 2324
Merit: 1125
October 20, 2013, 01:48:51 AM
#10

Open up the debug console (help->debug window->console), type in:

gettransaction 5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791

If it returns that old transaction then that key was already in the wallet when that transaction hit your client.


When I do this, I see some transaction info. I didn't restore my wallet.

Still, I don't understand what you mean by saying it's always an old address from the keypool.

When I press "New address" button does it generate a brand new address that no one used before?

Bitcoind always keeps a keypool with 100 (?) addresses which is pregenerates. Every time you request a new address it pulls it from this pool and adds a new one to the pool. The idea is to make backups more effective (but deterministic wallets such as Armory uses are way better for this).
member
Activity: 80
Merit: 11
October 20, 2013, 01:44:33 AM
#9

Open up the debug console (help->debug window->console), type in:

gettransaction 5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791

If it returns that old transaction then that key was already in the wallet when that transaction hit your client.


When I do this, I see some transaction info. I didn't restore my wallet.

Still, I don't understand what you mean by saying it's always an old address from the keypool.

When I press "New address" button does it generate a brand new address that no one used before?
legendary
Activity: 1554
Merit: 1222
brb keeping up with the Kardashians
October 20, 2013, 01:35:27 AM
#8
Surely not, show us the transaction

This.

Edit nvm, I see it now!
staff
Activity: 4200
Merit: 8441
October 20, 2013, 01:31:20 AM
#7
Updated my first post with the address.

I had to enter a unique label before creating the address and enter a pass phrase for the wallet, so I'm pretty sure it's not one of my old addresses.
Thats actually due to a bug which is fixed in git: it asks for the pass phrase totally unnecessarily when you request a new address.
Quote
When you create an address does it leave a timestamp in your wallet, like when it's been created, so as I could double check it's a brand new one?
It is _always_ a old one from the keypool.

Open up the debug console (help->debug window->console), type in:

gettransaction 5aed0ce301ecd17b237be9bd0dda7fa8fb7e2eb7f453c2ca1f27de160a23c791

If it returns that old transaction then that key was already in the wallet when that transaction hit your client.

There are ages on keys too, but off the top of my head the only way I think you can get them is if you dumpwallet and IIRC thats only in git.

Other questions: have you restored a wallet from a backup at any point, used salvagewallet, or pywallet?
member
Activity: 80
Merit: 11
October 20, 2013, 01:11:38 AM
#6
Updated my first post with the address.

I had to enter a unique label before creating the address and enter a pass phrase for the wallet, so I'm pretty sure it's not one of my old addresses.

I'm not suffering from any memory lapses or hallucinations either.

When you create an address does it leave a timestamp in your wallet, like when it's been created, so as I could double check it's a brand new one?
legendary
Activity: 1386
Merit: 1045
October 20, 2013, 01:09:04 AM
#5
Wow this would be a first recorded case I am guessing. Can you share the public address?
Theoretically, there's nothing stopping an address collision but the chances are extremely slim especially at such an early stage in the lifecycle.
legendary
Activity: 1778
Merit: 1008
October 20, 2013, 01:04:05 AM
#4
This should be so astronomically unlikely as to never happen...

Was there any btc stored on that address from before you used it?
hero member
Activity: 826
Merit: 500
Crypto Somnium
October 20, 2013, 01:02:29 AM
#3
Surely not, show us the transaction
mjc
hero member
Activity: 588
Merit: 500
Available on Kindle
October 20, 2013, 12:59:47 AM
#2
It should not happen but there is nothing stopping it from happening.
member
Activity: 80
Merit: 11
October 20, 2013, 12:37:44 AM
#1
That shouldn't be very probable, should it?

I used Bitcoin Qt client, pressed "New address" button to generate the address, sent a small amount to it and then checked on blockchain.info if the transaction was registered. To my surprise there are two other transactions made over a year ago using that address.

https://blockchain.info/address/1J9UHx3q9D1ZxZ5KwV8VGWJd7ksyTJtLTB
Pages:
Jump to: