Secure Brain Wallet

coinmonks profile image CoinMonks Originally published at Medium on ・7 min read

For Bitcoiners, today I’m going to present a brain wallet which does not compromise on security. For others, explain an approach to secure your interests utilizing cryptography.

Human memory is capable of remembering vast amounts of data. The key is building a story around it.

The Science of Memory: Top 10 Proven Techniques to Remember More and Learn Faster

We now have relatively easy ways to map the 0s and 1s into human language, one example is BIP39.

Source: https://xkcd.com/936/

BIP39 is a translation from machine code to human language. But it’s not enough.

We now know that just coming up with a story is not good enough. You are not a good source of entropy. But remembering 12 random BIP39 words is too damn difficult and unreliable.

So we all came to a conclusion that brain wallets are a bad idea. Or is it?

What if we fully accepted all the reasoning and developed a brain wallet system which has none of these issues? What if a strong random 128-bit entropy still protected your funds while you only having to remember 87 of them? And we make it so flexible for you it becomes easy?

I tried that at home and succeeded.

Here’s how:

TLDR? Generate 128 bits of entropy, game the words so that it’s easy to remember 87 bits of these 128 and leave the other 41 as a easy-access non-essential backup. Interested? Read on.

  1. I generated 128 bits of entropy by flipping coins:
 00111011111 desk
 01101011101 hill
 00101000111 cigar
 00000001011 accident
 10101100111 provide
 11111110101 wrong
 00011101111 bulb
 10111010010 ripple
 11010001011 sphere
 01010100110 feel
 00010011000 basic
 1101100 super
Enter fullscreen mode Exit fullscreen mode
  1. Writing down entropy I decided that to secure my funds I do not have to remember all 128 of it. We have reasons to believe that 40 bits is very much mine-able so if my life savings depended on it I could afford to mine the rest of the bits.

Is Bitcoin Still Safe? Hacker Says It Is

The easiest would probably be just remembering 8 of these words and be done with it. However, I decided to opt for more flexibility in my story rather than less number of words to remember. I crossed out the following 41 bits:

 0011101111x design...desk
 0110101110x high...hill
 001010001xx chuckle...cigar
 000000010xx absurd...accident
 101011001xx prosper...provide
 111111101xx write...year
 0001110xxxx bright...bulb
 1011101xxxx ring...room
 1101000xxxx source...spin
 0101010xxxx favorite...field
 000xxxxxxxx abandon...cable
 xxxxxxx <N/A>
Enter fullscreen mode Exit fullscreen mode

The reasoning behind this is to give your brain a little less choice in the beginning in order to randomize the theme of the story while at the same time give you greater flexibility to continue developing your story towards the end.

First two words give the least choice so I can try to shape the direction of the story.

 design high
 desk hill
Enter fullscreen mode Exit fullscreen mode

I chose “desk high”, thinking of a high standing desk which is so hip in today’s offices.

Looking at the choice of the next two words, which looked like this:

 chuckle absurd
 chunk abuse
 churn access
 cigar accident
Enter fullscreen mode Exit fullscreen mode

I decided to choose “churn absurd” as an indication that 2020 could bring a lot of churn to B2B companies. Now I shaped my story as “whining about work and the recession”. So I chose the next pair with the same approach:

 prosper write
 protect wrong
 proud yard
 provide year
Enter fullscreen mode Exit fullscreen mode

I chose “protect year” thinking about protecting the assets during the crisis and “year” for blaming 2020 specifically for the whole thing.

Now for the next two pairs I had to choose out of 16 words. Now I already had a very clear understanding what the story is about so I acted accordingly:

 bright ring
 bring riot
 brisk ripple
 broccoli risk
 broken ritual
 bronze rival
 broom river
 brother road
 brown roast
 brush robot
 bubble robust
 buddy rocket
 budget romance
 buffalo roof
 build rookie
 bulb room
Enter fullscreen mode Exit fullscreen mode

Here I chose “broken roof”. Let’s continue complaining!

 source favorite
 south feature
 space february
 spare federal
 spatial fee
 spawn feed
 speak feel
 special female
 speed fence
 spell festival
 spend fetch
 sphere fever
 spice few
 spider fiber
 spike fiction
 spin field
Enter fullscreen mode Exit fullscreen mode

And here “special fee”. Of course everyone wants special fee from us nowadays.

Since I decided to drop all bits for the 12th word I did not have to have one. So for the 11th word (I had to choose out of 256 words), I thought let’s do a very broad summarizing statement:

 because ...
Enter fullscreen mode Exit fullscreen mode

In the end I had the following to remember:

 desk high
 churn absurd
 protect year
 broken roof
 special fee
 because ...
Enter fullscreen mode Exit fullscreen mode

Or a story:

My desk is high

Our churn is absurd .

I need to
protect my capital this year ¹.

But now I have a
broken roof.

And everyone wants to introduce a special fee.

Because … capitalism.

¹ In fact the actual selection of the words from the list does not matter, it’s only here to help you choose. You could instead remember “I have to provide for my family this year ”. Just looking at the selection makes you remember the struggle to choose the word as well as the alternatives you wanted the most. You’ll still have the keys even if you only remember the alternatives (at least one).

Now that’s 87 bits of entropy that I just remembered pretty damn good. My key is meanwhile under 41 more bits of entropy which I crossed out. Let’s see which bits I crossed out:

Enter fullscreen mode Exit fullscreen mode

Let’s write them down:

 11111111011 youth
 11100101011 tornado
 01101001100 hat
 01101100 hire
Enter fullscreen mode Exit fullscreen mode

That’s it. This is your backup code which in combination with the story you came up with gives a convenient immediate access to your funds. You can write the backup code down and maybe even back it up but it neither compromises your security if it’s leaked alone nor will you lose your mind if it’s lost. It’s just 41 bits. You’ll mine it as long as you remember the story about 2020 when your desk was high, churn was absurd and you needed to provide for your family that year while under a broken roof and all sorts of special fees (and all that just “because”).

Now having remembered your “master” mnemonic (the one with the story) you are free to generate more derived child mnemonics by randomizing the 41 bits. This can be useful for separating your cold / cool / warm / hot wallets, depending on where you store your backup code. You could even generate one for which you immediately throw away your backup key, so that the only way to recover these funds would be to mine the mnemonic back. This could serve as a an extra protection layer in your game theory against a 5-dollar wrench attack.

Source: https://xkcd.com/538/

In the next post, I will try to take this to the next level by digging more into incentivizing the brain and mining power into solving Bitcoin private key riddles. I’ll also cover ownership superposition, which will allow me to introduce a bit data stream where each bit costs a fixed number of satoshis.

Also, Read

Get Best Software Deals Directly In Your Inbox


Editor guide