If you self custody your Bitcoin then you almost certainly have come across a mnemonic phrase of 12 or 24 words.
What is a mnemonic?
Why do I have one?
How does it work?
I’ve been working on Bitcoin for almost a decade, let me break it down for you 👇
A mnemonic is a tool that makes it easier to remember something.
You’ve probably used them in school to help you learn the planets (My Very Easy Method Just Speeds Up Naming Planets) or for biological classification (King Philip Came Over For Good Spaghetti).
So how are mnemonics used in Bitcoin?
They help you remember your private keys by making it easy to write down or even memorize your seed.
Why would it be hard to write down or memorize without a mnemonic? Without it you’d have to memorize a string of 132 one’s and zero’s
Would you rather memorize: 100111111101001111110110111000001100011100101100010001101010110111001110010100011011101011011011001111110100001101111010100110001101
panther panic return mixture settle finger deer dance swamp wheel team coyote
The mnemonic is much simpler
How does this work?
There’s a standard defined in a Bitcoin Improvement Proposal.
BIP-39 lays out how wallets should convert a random string of entropy into a mnemonic.
This standard makes it possible to recover your Bitcoin on any wallet or device that supports BIP-39.
It’s actually pretty easy to understand. You take the string of 132 1’s and 0’s and break it into a groups of 11 bits:
Each group of 11 digits is then converted from it’s binary representation to decimal.
With 11 binary digits we are guaranteed that each group will convert to a number between 0 and 2047.
A total of 2048 possible numbers.
So to continue the example:
10011111110 => 1278
10011111101 => 1277
10111000001 => 1473
10001110010 => 1138
11000100011 => 1571
01010110111 => 695
00111001010 => 458
00110111010 => 442
11011011001 => 1753
11111010000 => 2000
11011110101 => 1781
00110001101 => 397
BIP-39 defines a set of 2048 words that all wallets are supposed to use.
The words are picked carefully. Each word should be identified uniquely by the first four letters.
Similar words should be avoided (woman vs women, built vs build, etc) This helps us avoid mistakes
Once the set of words is picked we order them alphabetically and number them based on their order in the list.
We then take each decimal number the 11 bits converted to and look up that word in the list.
To continue the example:
1278 => panther
1277 => panic
1473 => return
1138 => mixture
1571 => settle
695 => finger
458 => deer
442 => dance
1753 => swamp
2000 => wheel
1781 => team
397 => coyote
When recovering your seed a wallet can take the 12 words you entered and perform this same process in reverse.
Look up the word in the list, get its number in decimal, and convert it to binary.
Group the strings of 11 bits together to get back to your 132 bit seed.
I hope this helped you understand more about how mnemonics are used in Bitcoin to help you remember and store the seed that controls your Bitcoin.
Hope you found this educational...Tweetstorm, an occasional series by decentralize.today...we find them for you so you don't need to!
Thanks to John Cantrell :-)