8

BIP39 mnemonic phrases replace considerations about how to store one private key, with considerations about how to store the seed to a series of private keys.

The idea is that the private keys are hard to remember, worse to write down, and prone to discovery when stored digitally, so the solution is that you can have a phrase of words that act as a seed to a hierarchical deterministic series of addresses.

It seems like this idea has been lost in translation as the phrase length of mnemonic phrases has increased from 12 words, to 24 words, with the "more secure than thou" using even longer words and phrases, and security minded companies alike promote writing down the mnemonic phrase, in multiple places.

or splitting the phrase, or putting an additional passphrase on top of the HD sequence, or using Shamir's secret key.....

all of which simply create more points of failure.

Ultimately: instead of one paper wallet compromising one private key, your paper phrase will compromise ALL of your private keys. OOPS. or you forget the secret key, or you lose a piece of the phrase, or you misspell it

At least we can be confident that the words themselves contain enough entropy to prevent guessing, RIGHT GUYS? RIGHT?

What are the pros, cons, limitations of BIP39, or at least my concerns. I have read the wiki and the github markdown on BIP39, and these do nothing to alleviate these concerns because these BIPs are a centralized process

10

to answer the first part;

generally speaking people will want to backup their whole wallet, not specific PKs. so using a HD wallet and making a backup of the seed (either the seed or a BIP39 mnemonic doesn't matter) matches what people using 'normal' wallets do, you backup your whole wallet in 1 place (most wallets have a backup/export file for the whole wallet).

BIP32 - HD Wallets - (and BIP39) isn't supposed to replace being able to split your backups into multiple private keys being scattered around, it replaces a single wallet being backed up in a 'traditional' way, 1 file (or print) for the whole wallet.

also a BIP39 paper backup has the same issues as normal private key backups that you mention, if you loose the passphrase or mispel it ... it's gone ...

But if you want to spread the risk by splitting your bitcoins across multiple backups then you should just have multiple wallets to split them.

BIP39 is also only the process of converting a seed to mnemonic and back, your (above discussed) concerns are actually with HD wallets in general, which is BIP32 ;-)

now your only real concern regarding BIP39 is about the words containing enough entropy! and they do, because the words are generated from a 128 or 256 bit entropy to begin with, the hex entropy is split into chunks of 11, which means you have a list of 0-2047 integers as a result. that list of integers is translated to the words (and back to the hex and to the binary entropy when you use it).

Let me demonstrate that by showing you how one of the official test vectors is converted:

hex of entropy: 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f

bits of entropy: 011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111111000

chunked into 11 length parts: [0] => 01111111011 [1] => 11111011111 [2] => 11011111110 [3] => 11111110111 [4] => 11110111111 [5] => 10111111101 [6] => 11111101111 [7] => 11101111111 [8] => 01111111011 [9] => 11111011111 [10] => 11011111110 [11] => 11111111000

those parts converted into words using the default word list: legal winner thank year wave sausage worth useful legal winner thank yellow

the mnemonic together with the password TREZOR converted to a seed hex: 2e8905819b8723fe2c1d161860e5ee1830318dbf49a83bd451cfb8440c28bd6fa457fe1296106559a3c80937a1c1069be3a3a5bd381ee6260e8d9739fce1f607

now the cool part actually is that if you use a different password with the same mnemonic you get a different seed and thus a different wallet, you could have 2 wallets and if you get robbed only hand over the BTC in one of them ;-)

2

Bitcoin-explorer passes the BIP-39 test vectors. Look at the bitcoin-explorer examples below to answer questions above.

1) echo "0" | bx base16-encode | bx sha256

effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6

2) echo "effcce8f" | bx mnemonic-new

useful toy phrase

3) echo "e9c6da7e" | bx mnemonic-new

truth cycle panic

4) echo "effcce8fe9c6da7e" | bx mnemonic-new

useful toy physical squeeze horror disease

5) echo "effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6" | bx mnemonic-new

useful toy physical squeeze horror disease hood book social theory arctic sample spider meadow hill pretty orange become dismiss rich slam raise point soon

6) echo "effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6" | bx mnemonic-new --language en

useful toy physical squeeze horror disease hood book social theory arctic sample spider meadow hill pretty orange become dismiss rich slam raise point soon

7) echo "effcce8fe9c6da7e1b50cccdfc082cdf8d1b135aed519bc27cfd5cacb16269d6" | bx mnemonic-new --language es

trozo tez opinar sauna honra dar hombre azafrán rubí talón amapola puré salvar mármol héroe pánico norma ascenso dátil posible ritmo perla otro ruptura

8) echo "useful toy physical squeeze horror disease" | bx mnemonic-to-seed

ab226a6e34d87c6a469cfca5d034d7c053ee6f5478bccb1589bc3b216759cb263cab74503471c2f44cbe3d5c06e1e1a774a3feb51a8dfdcc4dd4aece392802e2

9) echo "useful toy physical squeeze horror disease" | bx mnemonic-to-seed -p TREZOR

a1e90b6de07f62e8e09268a138761e9a93296afa221fbefc7b4bcaefef71aac6d4a385af7a0ca34d96b275953d4bbd12d442d9738f1559c855f292e7a4a75daa

10) echo "useful toy physical squeeze horror disease hood book social theory arctic sample spider meadow hill pretty orange become dismiss rich slam raise point soon" | bx mnemonic-to-seed

4703dc4343298d2ea7ddfa5f60b8a359f87c73f356b7eb684596f15390e1d8f67e42c5b224765bf10a4ed3437d3fd6b6110edb2c235ec997b1d969693bc12d18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.