Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: pamamolfx on February 17, 2016, 12:39:46 AM



Title: Why is not possible to create offline two same wallets?
Post by: pamamolfx on February 17, 2016, 12:39:46 AM
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 


Title: Re: Why is not possible to create offline two same wallets?
Post by: achow101 on February 17, 2016, 12:46:42 AM
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.


Title: Re: Why is not possible to create offline two same wallets?
Post by: pamamolfx on February 17, 2016, 01:22:03 AM
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 .....


Title: Re: Why is not possible to create offline two same wallets?
Post by: achow101 on February 17, 2016, 01:32:36 AM
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.


Title: Re: Why is not possible to create offline two same wallets?
Post by: pamamolfx on February 17, 2016, 02:23:13 AM
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?


Title: Re: Why is not possible to create offline two same wallets?
Post by: achow101 on February 17, 2016, 02:26:02 AM
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.


Title: Re: Why is not possible to create offline two same wallets?
Post by: pamamolfx on February 17, 2016, 02:38:08 AM
Thanks :)


Title: Re: Why is not possible to create offline two same wallets?
Post by: Reynaldo on February 17, 2016, 06:01:12 AM
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://bitcointalk.org/index.php?topic=339326.0


Title: Re: Why is not possible to create offline two same wallets?
Post by: LoyceV on February 19, 2016, 07:59:21 PM
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.


Title: Re: Why is not possible to create offline two same wallets?
Post by: Reynaldo on February 19, 2016, 10:47:36 PM
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.


Title: Re: Why is not possible to create offline two same wallets?
Post by: DannyHamilton on February 20, 2016, 04:53:34 AM
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.


Title: Re: Why is not possible to create offline two same wallets?
Post by: calkob on February 20, 2016, 09:52:54 PM
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


Title: Re: Why is not possible to create offline two same wallets?
Post by: LoyceV on February 21, 2016, 10:28:54 AM
Am i right in saying that wallets exist without bitcoin core knowing about them?
Yes :)

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.