Post
Topic
Board Bitcoin Discussion
Merits 1 from 1 user
Re: 3 seed words + passphrase
by
TheDigitalMan
on 24/03/2024, 11:20:01 UTC
⭐ Merited by nc50lc (1)
I find your post interesting.  I had similar questions when I first started diving down the rabbit hole of private keys and mnemonic seed phrases.  I wanted a way to create a seed phrase that I didn't have to write down.  To do what you are asking and preserve the same level of entropy you would need a mnemonic word list that was longer.  The current BIP39 mnemonic word list is 2048 words long.  It operates on the premise that you are writing down BASE 2048 numbers.  You can represent ANY number that could be a valid 128-bit Bitcoin Private Key using 12 words.  It takes 24 words to represent a 256-bit Bitcoin Private Key.  But if you increased the BASE of the numbering system.  And without doing some math I can't say exactly what it would need to be increased to...  but I am thinking 4 times what it is now to convert your 3 words to 12 words.  That's my off the cuff thinking but it might actually be different.  Anyway, assuming that then you would have to have a mnemonic word list that was 8,192 words long.  Obviously this could be done.  Then each word would represent 44 bits of entropy instead of the 11 that they currently represent.  3 words would represent 132 bits which is the 128 bits needed for the Private Key plus the 4 bits needed for the CHECKSUM value.  So your idea is achievable.  The first step would be to begin creating a longer mnemonic word list.  If you are serious about doing this I would be happy to collaborate with you and help you with it.

I have been working on a Private Key project that while not what you are trying to do is similar in some ways to what you are asking about.  I began in 2018 with the idea that I wanted to "Hide my Seed Phrases in Plain Sight".  The idea being that if anyone was able to acquire my seed phrase they could rob me of all my crypto.  Or at least all the crypto stored in that particular Private Key.  I launched a Kickstarter Campaign but the time was too early and we were in the midst of a bear market.  It went no where.  But I continued developing my concept.  I now have it close to completion and will be selling it soon.  During my 6 year journey developing this project I also developed a "seedless" Private Key method.  And by "seedless", I mean just that!  I have multiple stashes of bitcoin stored on the bitcoin network and NO SEED PHRASES written down for them.  There is method to my madness and I do have a few notes written down to ensure I don't totally forget how to access the bitcoin.  But these notes are not crypto related.  So anyone rummaging through my stuff wouldn't necessarily connect that those papers referred to my bitcoin.  Anyway, I don't want to give anything away regarding my personal crypto holdings but suffice it to say I am totally happy with my method.  I now have access to certain amounts of my crypto without carrying ANYTHING on me.  I don't need my notes unless I forget.  They are just a back up in case I get old and forget.

O.K. so I couldn't leave it alone.  I had to check if a BASE 8192 would work.  And it will!  So I will leave a short description of how you can accomplish what you want to do.

Step #1. You have to have a mnemonic word list that contains 8192 words.  You can create your own custom list but for purposes of my short tutorial here I am going to concatenate 4 of the 2028 BIP39 Word Lists off of Github.  There are 10 lists posted on Github in 9 different languages.  We're just going to use 4 of them.  ENGLISH + FRENCH + ITALIAN + SPANISH.  NOTE: The order is IMPORTANT!  The first word on the FRENCH list will represent word #2049.  Which brings up another wrinkle that must be addressed.  Word #1 on the ENGLISH list is really Word #0.  And the first word on the FRENCH list is really word #2048.  If you do not understand why this is then you probably shouldn't be doing this.  But suffice it to say the word lists should be numbered 0 thru 2047.  Not 1 thru 2048 like they are on Github.  So if you are going to do this I would recommend you copy all 4 lists off of Github and paste them into a text editor of your choice and re-number the entire list of 8,192 words.  The ENGLISH list should be 0 thru 2047.  Just subtract 1 from each number.  The FRENCH list should start with 2048 and run through 4095.  The ITALIAN list should start with 4096 and run through 6144.  And last the SPANISH list should start with 6145 and run through 8192.  It is ABSOLUTELY CRITICAL that these words have the proper number values associated with them!!!  NOTE: The 4 lists I am using I have arranged in alphabetical order.  This is to help ensure that you always arrange them in the correct order each time you go to re-assemble your 8192 mnemonic word list.

Step #2. Next step is to take your 12 or 24 word seed phrase and convert it into BINARY digits.  Here is how you will do that.  I will use the word list provided by "Pooya87". If you pull up the calculator on your Windows computer you can choose "Programming" option and pick "Decimal".  Put the decimal number into it and then pick "Binary".  It will convert your Decimal number into Binary.  I will do the conversions on these 12 words for you.  But I'm just trying to give you a helpful tip.  However, you are technically entering bits of your private key into your online computer if you do this.  So some die hard bitcoiners will tell you to manually calculate the conversion from decimal to binary.  I will leave it up to you how you handle that.  Just remember.  The conversions HAVE TO BE DONE CORRECTLY and ACCURATELY!!! Otherwise your new seed phrase will come out wrong.  I am going to list the DECIMAL number followed by the BINARY number and then followed by the WORD so that all the number digits will line up in nice neat columns.  The word lengths vary so I am putting the word on each row last.

legal winner thank year wave sausage worth useful legal winner thank yellow

#1019 - 01111111011 - legal (Note: On Github it is listed as word #1020.  But this is wrong.  The actual value represented by the word "legal" is 1019 when calculating a Private Key.)
#2015 - 11111011111 - winner
#1790 - 11011111110 - thank
#2039 - 11111110111 - year
#1983 - 11110111111 - wave
#1533 - 10111111101 - sausage
#2031 - 11111101111 - worth
#1919 - 11101111111 - useful
#1019 - 01111111011 - legal
#2015 - 11111011111 - winner
#1790 - 11011111110 - thank
#2040 - 11111111000 - yellow

Step #3. You now concatenate the BINARY numbers together into one long line that will be 132 BINARY digits long.  128 digits for the Private Key and 4 digits for the CHECKSUM.

0111111101111111011111110111111101111111011111110111111101111111011111110111111 10111111101111111011111110111111101111111011111111000

Step #4. You now have to pull off your 3 sets of 44 BINARY digits to create your 3 words.  Take the first 44, then the 2nd set of 44 and then the last 44.  Then convert the 44 digit BINARY number into a DECIMAL number.

01111111011111110111111101111111011111110111 - 08761598539767
11110111111101111111011111110111111101111111 - 17040274325375
01111111011111110111111101111111011111111000 - 08761598539768

Step #5.  Look up your new 3-word mnemonic phrase.  And this is where I am realizing I have errored in the number of words needed for the new mnemonic seed phrase list.  It is not 4 times the original amount but rather the original amount to the 4th power.  If you take 2048^4 this equals 17,592,186,044,416.  That is how many words you will need in your list in order to represent your 12 word seed phrase in just 3 words.

If you think O.K. I can remember 4 words.  Let's do 4 words instead of 3.  Then you would need 8,589,934,592 in your list.  That is over 8 BILLION WORDS!  To just cut the 12 words in half you would need 4,194,304 words.  Over 4 million words!

O.K. it was a fun exercise.  Hopefully you have enjoyed reading it as much as I enjoyed creating it! 
 
Kresp Rowland out.