public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Eric Kvam <nerdyrugbyguy@gmail•com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: [bitcoindev] BIP39 Extension for Manual Seed Phrase Creation
Date: Fri, 23 May 2025 04:25:32 -0700 (PDT)	[thread overview]
Message-ID: <a139ee2e-473c-487b-a9b0-e68013fdb7cen@googlegroups.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 2237 bytes --]

*Motivation*
Make it easy for users to manually create their seed phrase so that they 
don't have to trust a "black box" and allow for encoding derivation path in 
seed phrase to simplify recovery

*How*
Use every eighth word from the wordlist to generate 16 word phrases with 
128 bits of entropy (no checksum).  The most significant eight bits of each 
word are used as entropy.  The least significant three bits of each word 
specify the derivation path.

   - *000* Derivation Path Not Specified
   - *001* m/44'/0'/0'
   - *010* m/49'/0'/0'
   - *011* m/84'/0'/0'
   - *100* m/48'/0'/0'/2'
   - *101* m/86'/0'/0'

Up to seven derivation paths can be specified if all words have the same 
least significant bits.  If the least significant bits of each word vary, 
there are 48 bits that can be used to encode meta-data.  As long as 
meta-data is limited to certain allowable values, this provides a mechanism 
for error detection, similar to a checksum.

*Benefits of Suggested Implementation*

   - The word length determines how the seed phrase should be interpreted.  
   User only needs to know how many words they have and how many words the 
   wallet supports to check for compatibility with this extension
   - Uses same wordlist to represent the same entropy as a 12 word phrase 
   (could be a revision to BIP39 instead of a new BIP)
   - Manual procedure is very simple, each derivation path can use a 
   shortened 256 word list which enjoys improved alphabetical separation of 
   words
   - May prevent naive word selections which aren't limited to every eighth 
   word (similar to what checksum does)
   - Can be extended further.  For example, a 32 word phrase with the same 
   entropy as a 24 word phrase could also be added.  We can keep adding 
   formats with unique word length and keep adding uses for the meta data as 
   needed.

-- 
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/a139ee2e-473c-487b-a9b0-e68013fdb7cen%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 2693 bytes --]

             reply	other threads:[~2025-05-23 13:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-23 11:25 Eric Kvam [this message]
2025-05-23 14:29 ` Kyle Honeycutt
     [not found]   ` <09A940A2-122A-445E-82EA-1B4E32AC7E34@gmail.com>
2025-05-23 20:45     ` 'Russell O'Connor' via Bitcoin Development Mailing List
2025-05-24 12:33       ` Eric Kvam
     [not found] <20250523131541.1521C7C0DB0@smtp.postman.i2p>
2025-05-24 20:56 ` pithosian
2025-05-25 14:26   ` nerdyrugbyguy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a139ee2e-473c-487b-a9b0-e68013fdb7cen@googlegroups.com \
    --to=nerdyrugbyguy@gmail$(echo .)com \
    --cc=bitcoindev@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox