Pages:
Author

Topic: Mental Bitcoin Wallet: I have real bitcoins stored in my head. - page 4. (Read 12769 times)

vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
So let me get this straight. You can create a private key with a passphrase import it into a wallet. Transfer funds to it and then delete the wallet.dat and recover it by repeating the process?

No. Once you spend your coins from the imported address, the change will be returned to a new address stored in your wallet. If you delete it then, you will lose everything.
What you have to do after the import, is to send the entire remaining amount back to your chosen address in a new transaction.
.

The answer to Indio007's question is "yes in theory", but with the current client, the answer "no" is correct to the extent that the change is likely to go to a newly generated address.

I'd be willing to bet that "pywallet" either does, or could be trivially modified, to fill the unused keypool within wallet.dat with hundreds or thousands of pre-generated addresses that can be derived from the passphrase so the bitcoin client didn't have to.

One passphrase can seed thousands or millions or any number of bitcoin addresses, all of which can be recovered with the same passphrase.  If passphrase is "my passphrase", then the first address is based on "my passphrase1" and the second on "my passphrase2", and the millionth on "my passphrase1000000".  IIRC, bitcoind only adds keys to the key pool if the number of keys in the pool falls below 100.  If you used a deterministic wallet generator to generate a wallet.dat with 10,000 addresses - most of them going into the key pool - you would probably never need to worry about the change going to a new address.
full member
Activity: 406
Merit: 100
Code:
$ echo -n " your mom        " | sha256sum 
888eb5c57140830728b64def5c3d9230f8b7f8d6567814542a92259be16e6007  -
Ok  Grin

Question sneakily inserted: Is the ownership of the file blk0001.dat the same as that of the file blkindex.dat?

(I thought I might as well ask that in here as you guys seem to know everything anyway, and my question isn't being answered where I originally posed it.)
sr. member
Activity: 322
Merit: 251
FirstBits: 168Bc
Code:
$ echo -n " your mom        " | sha256sum 
888eb5c57140830728b64def5c3d9230f8b7f8d6567814542a92259be16e6007  -
full member
Activity: 406
Merit: 100
Oh, by the way,
Code:
echo your mom | sha256sum 
deletes any trailing spaces in "your mom", "your mom ", "your mom  " etc.
sr. member
Activity: 322
Merit: 251
FirstBits: 168Bc
I hope alternate clients consider addresses more like accounts (with change returned to the same by default) and move this non-deterministic 'wallet' as an optional part of a greater laundering/anonymity regime. The wallet with newly generated keys is a major source of confusion and the anonymity provided is a joke. Only geeks 'get it' - everyone else has to learn the hard way.

I think it would be wildly cool to pass a slip of paper "The dog barks at midnight 3879273". The ultimate swiss bank account. Or "Congratulations My Son 8360324" or "Bitcoin gold parity. I told you so. Haz Haq Hah! Pennies for the poor."
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
So let me get this straight. You can create a private key with a passphrase import it into a wallet. Transfer funds to it and then delete the wallet.dat and recover it by repeating the process?
You don't have to import the key to transfer funds to it, and should not do it
full member
Activity: 238
Merit: 100
So let me get this straight. You can create a private key with a passphrase import it into a wallet. Transfer funds to it and then delete the wallet.dat and recover it by repeating the process?

No. Once you spend your coins from the imported address, the change will be returned to a new address stored in your wallet. If you delete it then, you will lose everything.
What you have to do after the import, is to send the entire remaining amount back to your chosen address in a new transaction.
.
full member
Activity: 406
Merit: 100
Code:
$ echo your mom | sha256sum 
6e96e45029870a9b08cff2ed6ac840ccde3edce244327cc1bddefa1e555bc81f  -

$ gpg --print-md sha256 < /dev/stdin
  
  

which gives the same results as

$ gpg --print-md sha256
Yes, that's much better than my 'solution', thanks!

[snip>
The 'echo' command, by default, puts a newline at the end of its input. You can suppress this behavior with '-n'. (You can do it either way, but this may explain why different tools might given different results.)
Thanks for the addition, very helpful!
sr. member
Activity: 350
Merit: 251
Hey,
I'm quite new to bitocin so I just wondered: why are they several private keys stored in a wallet.dat? Given what you explained, you only need to know 1 private key, right?  Undecided

its soposed to give more anonymity. however i find it pointless, and would rather the client just make a new address when requested.
member
Activity: 75
Merit: 10
Hey,
I'm quite new to bitocin so I just wondered: why are they several private keys stored in a wallet.dat? Given what you explained, you only need to know 1 private key, right?  Undecided
full member
Activity: 224
Merit: 100
Effing sweet! What are the odds of someone using the same private key. I've actually been wondering this for a awhile. What is someone just tries to hoard all possible private keys? Or is it the keypair that matters?
sr. member
Activity: 350
Merit: 251
So let me get this straight. You can create a private key with a passphrase import it into a wallet. Transfer funds to it and then delete the wallet.dat and recover it by repeating the process?
yep
full member
Activity: 224
Merit: 100
So let me get this straight. You can create a private key with a passphrase import it into a wallet. Transfer funds to it and then delete the wallet.dat and recover it by repeating the process?
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
Code:
$ echo your mom | sha256sum 
6e96e45029870a9b08cff2ed6ac840ccde3edce244327cc1bddefa1e555bc81f  -
The 'echo' command, by default, puts a newline at the end of its input. You can suppress this behavior with '-n'. (You can do it either way, but this may explain why different tools might given different results.)
sr. member
Activity: 322
Merit: 251
FirstBits: 168Bc
Code:
$ echo your mom | sha256sum 
6e96e45029870a9b08cff2ed6ac840ccde3edce244327cc1bddefa1e555bc81f  -

$ gpg --print-md sha256 < /dev/stdin
  
  

which gives the same results as

$ gpg --print-md sha256
sr. member
Activity: 350
Merit: 251
Okay so I have no problems generating a SHA256 hash, personally I would use multiple hash algo's on my passowrd pharse which included a key , then I would Vigenere Encrypt that, or Xor then MD5 hash that and then finally SHA256 the result to generate a custom SHA256 key. now my question is how do I use that generated SHA256 hash in the bitcoin client as a wallet address? I have only just started using the bitcoin client as a wallet since mybitcoin problems. Could someone explain how to use a custom generated SHA256 key as there wallet address in the bitcoin client please?
https://github.com/jackjack-jj/pywallet
sr. member
Activity: 1204
Merit: 288
Okay so I have no problems generating a SHA256 hash, personally I would use multiple hash algo's on my passowrd pharse which included a key , then I would Vigenere Encrypt that, or Xor then MD5 hash that and then finally SHA256 the result to generate a custom SHA256 key. now my question is how do I use that generated SHA256 hash in the bitcoin client as a wallet address? I have only just started using the bitcoin client as a wallet since mybitcoin problems. Could someone explain how to use a custom generated SHA256 key as there wallet address in the bitcoin client please?
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
While I wouldn't put it past anyone, that rainbow table is going to be ridiculously slow to build to the point of near infeasibility.  The operation of deriving the public key from the private key, as I'm sure you know, is super expensive in CPU time.
You only need to do it once. But yeah, trillions is going to be awfully tough.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
I am not sure rainbow tables would be a concern. Rainbow tables would help someone get your passphrase from your 32-byte private key, but they don't even have that. They don't even have your public key either if you have never sent funds from the address. 
That's not the way they would do the attack. They would build a rainbow table of a few trillion passphrases and the corresponding bitcoin addresses. Everytime a new bitcoin address appeared in the hash chain, they would check that address against the rainbow table. If they found a match, they would derive the private key again and claim the funds immediately.

While I wouldn't put it past anyone, that rainbow table is going to be ridiculously slow to build to the point of near infeasibility.  The operation of deriving the public key from the private key, as I'm sure you know, is super expensive in CPU time.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
Are people really gonna be imaginative enough with the phrases for the risk of collision to be negligible?
My program refuses passphrases below 40 characters or 7 words, casascius should do that too...
Yeah, mine does that too.
The rules aren't exactly the same, but close.  And if you mix symbols, uppercase, and lowercase, and numbers together, it will let you do a somewhat shorter phrase.
Pages:
Jump to: