Author

Topic: Why is not possible to create offline two same wallets? (Read 1048 times)

legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Am i right in saying that wallets exist without bitcoin core knowing about them?
Yes Smiley

Quote
i think i am right in saying all the bitcoin public address technically exist anyway and so do their private keys, most of them just havn't been used yet
Most of them will never be used.
http://directory.io/ shows all possibilities, and the number of pages nicely illustrates how unlikely it is to find the same private key twice.
hero member
Activity: 1106
Merit: 521
Am i right in saying that wallets exist without bitcoin core knowing about them? for example if i create a paper wallet, it exists without ever being used on the network hence bitcoin knows nothing of it, it is only once i send bitcoin to that public address that the core node (or bitcoin) recognises that address.  i think it takes awhile to get your head around bitcoin and how it works

i think i am right in saying all the bitcoin public address technically exist anyway and so do their private keys, most of them just havn't been used yet (there just too many)  great link below

https://www.youtube.com/watch?v=ZloHVKk7DHk
legendary
Activity: 3472
Merit: 4801
I have some trust issues though with offline wallet generators, say a paper wallet generator, or the vanitygen-master that generates a public key starting with for example 1Loyce. Without totally understanding the source of the program, how can I ever be sure it uses a random search for a new address? Untrusted software could generate predefined keys, so a third party can access it too. And for me as a user it is virtually impossible to know for sure what software I can trust.

Do you have trust issues with online wallets such as Electrum, MultiBit, Bitcoin Core, and Armory? Without totally understanding the source of the program, how can you ever be sure it uses a random number for a new private key?  The wallet could generate predefined keys, so a third party can access it too, and for you as a user it is virtually impossible to know for sure what software you can trust.

Or, you could just use well reviewed open source software so that you can feel confident that any malicious programming would be identified and pointed out by other programmers.  If you trust open source wallets, then you can trust open source offline wallet generators, paper wallet generators, and vanity wallet generators for the exact same reasons.
legendary
Activity: 1143
Merit: 1000
So is there a way to verify in a away your wallet so no one else ever use it even if generating the same wallet is extremely low?
Correct!

I have some trust issues though with offline wallet generators, say a paper wallet generator, or the vanitygen-master that generates a public key starting with for example 1Loyce. Without totally understanding the source of the program, how can I ever be sure it uses a random search for a new address? Untrusted software could generate predefined keys, so a third party can access it too. And for me as a user it is virtually impossible to know for sure what software I can trust.

Stop spreading FUD. There are known address generators that are safe for everybody. Bitcoin-core, multibid, even vanitygen the one published on the forums is safe.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
So is there a way to verify in a away your wallet so no one else ever use it even if generating the same wallet is extremely low?
Correct!

I have some trust issues though with offline wallet generators, say a paper wallet generator, or the vanitygen-master that generates a public key starting with for example 1Loyce. Without totally understanding the source of the program, how can I ever be sure it uses a random search for a new address? Untrusted software could generate predefined keys, so a third party can access it too. And for me as a user it is virtually impossible to know for sure what software I can trust.
legendary
Activity: 1143
Merit: 1000
i belive it has happend once and only once so far. im not sure if it was true or not but there where threads about it some time ago..

Never happened and never will happen in our lifetime or in anyone's lifetime for that matter. The sun will become a red giant and fry earth long before that.

That being said there are some terrible numbers in this thread mostly because people cant tell the difference between collision and finding out the key of a specific address.

The specific number of hashes you'd have to generate to have a 50% chance of a collision with a 160 bit (RIPEMD-160) hash (assuming that the results of RIPEND-160 are evenly distributed) are 1.42x1024

Therefore, it looks like a trillion (on the short scale) per second for a trillion (on the short scale) years (3.15X1031) would be enough after all.

As a matter of fact, if you could continuously generate and compare a trillion (on the short scale) addresses per second non-stop, you'd have a 50% chance after only 1,000,000 years.

Note that there is more involved in generating addresses than just a hash.  You have to generate a private/public keypair, then generate a SHA256 hash, then generate a RIPEMD-160 hash, then compare the result to ALL the results you've generated so far.  And with an ever growing number of results to compare to, it may be difficult to continuously complete the task a trillion times per second.

More information on : https://bitcointalksearch.org/topic/what-happens-if-2-people-generate-the-same-bitcoin-wallet-address-339326
newbie
Activity: 32
Merit: 0
Thanks Smiley
staff
Activity: 3458
Merit: 6793
Just writing some code
So is there a way to verify in a away your wallet so no one else ever use it even if generating the same wallet is extremely low?
Once you create the wallet you could check the master public key of the wallet on a block explorer and see if any of the addresses have been used. This is unnecessary though.
newbie
Activity: 32
Merit: 0
So is there a way to verify in a away your wallet so no one else ever use it even if generating the same wallet is extremely low?
staff
Activity: 3458
Merit: 6793
Just writing some code
Quote
the wallet will generate a large random number and this is your master private key

Why is not possible to create this twice on another offline computer?How it knows the second computer that the first computer create a master key and which one so it will not create the same?

As both can be offline .....
It doesn't. However, the range of possible random numbers and with a decent random number generator, the probability of two computers randomly generating the same number is extremely low. This is the basis for pretty much everything in cryptography: that the odds of two devices randomly generating the same random number is so low as to be negligible.

Online wallets do the same thing. They don't check the blockchain to see if the address has been used previously when it generates the address. There is simply no need to do so.
newbie
Activity: 32
Merit: 0
Quote
the wallet will generate a large random number and this is your master private key

Why is not possible to create this twice on another offline computer?How it knows the second computer that the first computer create a master key and which one so it will not create the same?

As both can be offline .....
staff
Activity: 3458
Merit: 6793
Just writing some code
The blockchain does not create wallets nor does it assign addresses. It is just a ledger of the transactions.

If you use electrum to create an offline wallet, the wallet will generate a large random number and this is your master private key. It uses that to derive other large semi-random numbers which are private keys to in. Since everyone using Bitcoin has agreed to use certain rules, those random numbers become private keys which become valid Bitcoin addresses so long as it uses the same rules that every has agreed to.

When using an offline wallet, the offline wallet doesn't know about the blockchain and what outputs are available for it to spend. You must create a watching wallet which will then be transported to an online computer. That watching wallet knows about the addresses in your offline wallet but it is unable to actually spend the Bitcoins. Rather it just knows about the transactions and can create unsigned transactions with the proper inputs. That unsigned transaction is then moved to the offline wallet for signing and then back to the online wallet for broadcasting.
newbie
Activity: 32
Merit: 0
Hi

As a new bitcoin user i am wondering why is not possible to create two offline wallets?

If i use for example electrum offline installation and creation of a wallet how the blockchain knows the existence of it so it will not create a second one with the same addresses and also the most basic how it will know that this wallet exists and the address that is using to receive bitcoins?

If anyone can please explain.

Thank you 
Jump to: