Silk Road forums

Discussion => Security => Topic started by: vlad1m1r on May 20, 2012, 01:15 am

Title: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: vlad1m1r on May 20, 2012, 01:15 am
N.B This is a lot of fun and a good way to understand how the Bitcoin network operates a little better!

Whether it's an electronic wallet, a paper wallet or a brain wallet, you need to have both a public and private key. In simplest terms, your public key is a Bitcoin address where coins can be sent. Your private key is used to access the coins stored at that address.

A brain wallet quite simply involves you memorising a private key so that only you can access your Bitcoins - in essence carrying your wallet in your head.

This is so easy, it can be done in three steps.

1. Firstly think of a memorable phrase or combination of words such as "I love Family Guy." What we'll do now is transform that phrase into a viable Private Key by using the cryptographic SHA256 function.

If you have Linux, there's a command for this, example below:

echo -n I love Family Guy | sha256sum

If you don't use Linux shame on you but there are a number of websites that can do this for you, try : http://hash.online-convert.com/sha256-generator

Whichever method you use you'll get a long string of meaningless numbers and letters, in this case:

c3be1d4cf39643e384cda6074f8ff39aff7c725fe30fd5358abf7193af1d1d19

Don't worry you don't have to memorise this!

2. Use your Tor Browser to go www.bitaddress.org and click the tab labeled "Wallet Details." Disconnect from the internet then paste this long string into the box named "Enter Private Key (any format)". Click "View Details."

The website will generate a BTC address at which you can receive funds.

3. Send your Bitcoins to the Bitcoin address at the top of the page and congratulate yourself on having your own brain wallet!


- How to check your balance:

1. Repeat steps 1 & 2 above using the same words or phrase you used before to generate your private key.

2. Highlight the Bitcoin address at the top of the page and copy it.

3. Go to www.blockchain.info and paste the wallet address into the search bar at the top right. The website will show you the current balance.


- How to get the Bitcoins out of your head! :-D

1. Repeat steps 1 & 2 above using the same words or phrase you used before to generate your private key.

2. Highlight and copy the row of numbers and letters on the page below where it says "Private Key WIF (51 characters base58, starts with a '5'):"

3. In a new tab, go to www.blockchain.info and click create new wallet.

4. Click the "Wallet" tab, then click "Start a New Wallet".

5. Once you're logged in and have opened your wallet click the tab labeled "Import/Export". Click Continue.

6. In the box underneath where it says "Import Private Key", paste the private key you copied earlier and click "Add Private Key."

7. Your wallet will sync with the server. You can then click on the "Send Money" tab at the top to send the coins to another online wallet or a wallet on your computer.

Have fun!

V.
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: wretched on May 20, 2012, 01:58 am
so your I Love Family Guy address would be

19X4Hm7e6pBuNBXcHtdUhjntUgaFixN2Nk

right?
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: sl1pknot on May 20, 2012, 02:23 am
Interesting. Do you think it would be unwise to have bit coins from bitinstant sent to my Tormail, then to this wallet, then to SR? Or would bitinstant -> tormail -> SR suffice?

Noticed recent blocks on bitcoinblock show transactions of over 30,000 BTC... wow, but that doesn't necessarily mean the people who sent that amount were using this method does it?

I like this method though.
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: philter3 on May 20, 2012, 03:57 am
Brain wallets are best if they primarily receive coins but send infrequently if at all.

Anytime a wallet sends BTC out it reveals an address.

Brain wallets should be your longterm super secret squirrel stash.
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: vlad1m1r on May 20, 2012, 11:06 am
Correct!

Of course you don't have to memorise this - just have your BTC sent there. You can retrieve it any time by inputting your private key at the bitaddress.org website. I'd recommend disconnecting from the internet first though, just in case someone's monitoring your exit node. :-D

V.


so your I Love Family Guy address would be

19X4Hm7e6pBuNBXcHtdUhjntUgaFixN2Nk

right?
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: theverde on May 20, 2012, 11:09 am

If you don't use Linux shame on you


ahahah great man!!!  ;)
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: vlad1m1r on May 20, 2012, 11:21 am
Thanks for this philter, an excellent point.

Brain wallets could be said to be more secure in that you don't need any wallet software or online wallets to receive funds (although of course you will need to redeem your private key using a provider like Blockchain.info in order to send BTC). As such they're an excellent place to put your savings as you only need to carry a few words around inside your head!

However, whether it's a brain wallet, paper wallet or e-wallet, you still have to send BTC from the address at which they're received. The principle is exactly the same as for PGP - if someone sends me a message encrypted using my public key, I must first decrypt it using my private key before I can then encrypt it using your Public Key and send it on to you.

As such it's going to offer you no greater protection from block chain analysis - of course there's no reason you can't pull the Bitcoins out of your head then send them directly to a mixer like Bitcoinfog, just as with any other type of wallet.

V.

Brain wallets are best if they primarily receive coins but send infrequently if at all.

Anytime a wallet sends BTC out it reveals an address.

Brain wallets should be your longterm super secret squirrel stash.
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: raveryote on May 20, 2012, 07:08 pm
Brain wallets are best if they primarily receive coins but send infrequently if at all.

Anytime a wallet sends BTC out it reveals an address.

Brain wallets should be your longterm super secret squirrel stash.

SUPER SECRET SQUIRREL STASH!!

Anyway, the reason this brain wallet method works (and works well) is because of the nature of bitcoin. Everything in bitcoin is recorded in the public blockchain. all transactions are publicly recorded and cryptographically signed on the public blockchain. This is why obscuring your trail using instawallets and tumbler services is important.

BUT: this also means that you can use deterministic keypair generation to regenerate a private key from a passphrase, such as the example, "I love Family Guy!"

I'll need to remember the tools at bitaddress.org and such. I wish i could reverse engineer the javascript and release a python script that did it all. at my current level, it's hard to read that js.
Title: Re: How to create a Brain Wallet - Carry Bitcoins inside your head!
Post by: vlad1m1r on May 20, 2012, 07:27 pm
Thanks raveryrote,

For some reason I thought there was an offline piece of java script for this but I didn't want to freak everyone out - if I'm wrong I'll look forward to seeing yours :-)

V.

Brain wallets are best if they primarily receive coins but send infrequently if at all.

Anytime a wallet sends BTC out it reveals an address.

Brain wallets should be your longterm super secret squirrel stash.

SUPER SECRET SQUIRREL STASH!!

Anyway, the reason this brain wallet method works (and works well) is because of the nature of bitcoin. Everything in bitcoin is recorded in the public blockchain. all transactions are publicly recorded and cryptographically signed on the public blockchain. This is why obscuring your trail using instawallets and tumbler services is important.

BUT: this also means that you can use deterministic keypair generation to regenerate a private key from a passphrase, such as the example, "I love Family Guy!"

I'll need to remember the tools at bitaddress.org and such. I wish i could reverse engineer the javascript and release a python script that did it all. at my current level, it's hard to read that js.