Bitcoin Brain Wallets Explained: What They Are and How to Make One
Latest posts by Dean (see all)
- Why Blockchain and Remanufacturing Are a Perfect Match - May 8, 2019
- MinedBlock ‘Mining as a Service’ vs Cloud Mining - May 4, 2019
- How Blockchain Technology is Changing the Face of Online Gambling - May 2, 2019
What is a Bitcoin Brain Wallet?
New Bitcoin users often think that their coins are stored inside their wallet software. In actual fact, this is not the case. Everybody’s coins exist on the Bitcoin blockchain – a shared public ledger that anybody can access and nowhere else. What you store in your wallet is something called a ‘private key’, which gives you the authority to spend the coin held in a certain address. Every public address has a private key; in fact, the public key (your wallet address) and private key are created at the same time, and one cannot exist without the other.
Because private keys are a long string of characters which would be very, very hard for a person to remember, we generally store our private keys inside the software we use. There are a couple of problems with this. Firstly, storing your private key on a specific device means that you can only access them from that device – if your wallet is on your phone you can’t access it from your laptop, and vice versa. The second problem is that if your private key is stored somewhere then there is always a possibility that someone could hack into your computer or phone and steal it. To counteract this people often encrypt their wallet – this just means that a password is required to access the file where your private key is being stored. This works pretty well, but there is another solution which solves both of these problems quite elegantly – a brain wallet.
It is possible to use the SHA-256 encryption which is used by Bitcoin itself to generate a private key from a string of characters. Because the same string of characters will always give the same private key when passed through a SHA-256 calculator, you can effectively use them as a password or ‘passphrase’. instead of storing your private key and protecting it with a password, you can then effectively re-generate your private key when you want to use it. The advantage of this is that you are not storing anything for people to find and steal – unless they can get inside your brain, but yet you can still access your wallet anywhere from any device as long as you can access SHA-256 software.
How To Make And Use A Brain Wallet for Bitcoin
The safest way to make a brain wallet is to generate your private key offline. This is because there is always a (very small) chance that a hacker could intercept your internet communications somehow and listen in. You must also remember that your coins are only as secure as your password. In fact, you shouldn’t use a password at all but a passphrase, as a single word is not very secure no matter how random it is. Ideally a sentence of around 10-12 words with a few deliberate (and memorable!) misspellings should be used, as this would be very hard to crack. Generally, longer passphrases made up of memorable words are both more secure and easier to remember than smaller strings or random characters.
Creating a New Brain Wallet Address
Perhaps the easiest way to make a bitcoin brain wallet is using thebrowserbank.com. If you click the ‘New’ tab followed by ‘New Address’ you will land on a page designed for creating new bitcoin key pairs (public and private key). At this point you can disconnect your machine from the internet if you want to generate your new address offline – the whole thing happens in your browser so you don’t need to be connected to the internet for it to work. If you tick the ‘custom seed or brain wallet’ check box a new field will appear for you to enter your passphrase:
Hit the ‘generate’ button and a new address will be created with its corresponding private key. You can click ‘show’ to view your private key if you want, but for security purposes it’s probably best if you don’t – just copy your address so you know where people can send coins and your ready to start using your new brain wallet!
How To Use Your Bitcoin Brain Wallet
As soon as you have your new address you can use it to receive coins. When you want to spend them, there are several different ways you can use your brain wallet. The first way is to import your keys into a regular Bitcoin wallet. To do this you just go back to The Browser Bank, or any other brain wallet software, and re-generate your private key from seed – in other words you will have to go through the same process you did to create your brain wallet, using the same passphrase and therefore generating the same private key. You can then use your preferred wallet software to import this private key and start using your wallet. The exact method for this will depend on the particular software you are using, but it is not usually a very difficult process. Remember, however – as soon as you do this is ceases to be a brain wallet and becomes just like any other normal wallet.
For maximum security you can use your passphrase to manually create, verify and broadcast transactions without compromising the integrity of your brain wallet. This process may look a little bit daunting to non-technical users, but it’s a great way to learn more about how Bitcoin works. At some point during this process you will have to re-generate your private key, but rather than importing it to another wallet you will just copy and paste it to manually sign a transaction.
Most of this process can be performed offline, if you prefer.
To begin, click ‘New’ and then ‘Transaction’.
To begin with you need to add the public address of your brain wallet at the top of the page. You then need to specify both inputs and outputs.
The inputs are just transactions in which somebody sent you some bitcoins – these are the coins that you will spend. You can find inputs to use by putting your address into a block explorer and simply select the transaction (tx) id of any transaction in which you received coins. You can add multiple inputs (hit the plus symbol to add an extra input) so that it adds up to enough coins, and the total will be displayed at the top of the input tab. When doing this remember that the more inputs you use the more you will need to pay as a miner’s fee (or ‘transaction fee’) to get your payment processed in a timely manner.
You must be careful when specifying outputs because all of your inputs will be spent. It i unlikely that you will have received payments which add up to exactly the same amount as what you want to send. For example, if you want to spend 0.25 bitcoin, you may need to select two inputs for 0.2 bitcoin each – making 0.4 bitcoin in total. This leaves 0.15 btc ‘change’ (0.4 – 0.25 = 0.15). You need to take the miners fee of this change and then send it back to your own address by adding an extra output in the same way you added extra inputs (the blue plus symbol), or the whole lot will be used as miner’s fee. In the example above I might add an extra output sending 0.1499 back to myself in order to pay a 0.0001 btc fee.
Once you have done this you can click the submit button. You then need to copy the result, hit the ‘verify’ tab and paste the result into the box provided. This verifies the transaction is ok and puts it into an appropriate format to be signed and broadcast to the network.
Copy your verified transaction and paste it into the box provided on the ‘sign’ tab, along with your private key, and then click submit to use your private key to ‘sign the transaction’.
At this point you will need to make sure that you are connected to the internet, and you will need to copy and paste your signed transaction into the box provided on the ‘broadcast’ tab. When you click submit here your payment will be broadcast to the rest of the bitcoin network where it will be confirmed by the network’s miners, meaning that the coins will then be available to spend in the recipient’s wallet!
Creating manual transactions like this is not only the best wy to use a brain wallet, it also officially qualifies you as an advanced Bitcoin user – congratulations!!!