Into the Rabbit Hole #2: Overview of BIP-32 / BIP-39 / BIP-43 / BIP-44 Wallet Standards


Trying to understand how wallets work and how they are secured, I came across the following BIP standards (note: "BIP" stands for "Bitcoin Improvement Proposal" and is the way how to propose new standards to Bitcoin).

So here is a short overview of a few BIPs I looked at:

  • BIP-32 - Hierarchical Deterministic Wallets
    • the standard for generating hierarchical deterministic wallets (i.e. "HD Wallets")
    • describes how hierarchical structure of keys and addresses is generated from a single master key (a.k.a. "wallet seed")
    • use cases include multi-account wallets, wallet sharing, etc..
    • if you are interested in the technical details on how a wallet is created --> this BIP is for you!

  • BIP-39 - Mnemonic code for generating deterministic keys
    • defines how a usually 12 or 24 word mnemonic sentence (a.k.a. "seed phrase") is used to (re-)create a BIP32 wallet
    • the mnemonic sentence should be combined with a passphrase, and both together are used to create the actual master key ("wallet seed")
    • the 12-24 words are usually chosen from this wordlist and are better for humans to deal with than a "raw" private key (easy to back up on paper or even steel, good error correction properties, etc..)
  • BIP-43 - Purpose Field for Deterministic Wallets
    • tackles a shortcoming of BIP32 (i.e. the fact that it does not define how the actual hierarchical structure should look like)
    • is kind of a "meta" BIP and just defines that the 1st level of the hierarchy is the "purpose" which should refer to a subsequent BIP which defines the structure underneath
    • general BIP43 structure is  m / purpose' / * , where for example BIP44 should use m / 44' / * , etc... (you get the point)

  • BIP-44 - Multi-Account Hierarchy for Deterministic Wallets
    • is a concrete implementation of BIP43 describing the hierarchical structure for a multi-account hierarchy
    • it defines 5 levels in the BIP44 path:  m / purpose' / coin_type' / account' / change / address_index
      • purpose: is a constant set to "44"
      • coin_type: defines the type of coin, e.g. BTC, ETH, etc... (see registered coin types here)
      • account: allows to define separate accounts to manage the funds
      • change: specifies if the address is on an external chain ("0") or internal chain ("1")
      • address_index: denotes the index of the address being generated
    • in addition to the levels, it also specifies the "account discovery" algorithm

This was a really short, high level overview (it helps me keeping an overview of what the BIPs are on that level....)  

If you want to know more details, I highly recommend to delve into the BIPs themselves.

By the way... looking myself for a wallet, I found https://walletsrecovery.org/ provides a good overview of different HW / SW wallets. (I haven't chosen one though)

How do you rate this article?

1



Journey of a Crypto NOOB
Journey of a Crypto NOOB

Thoughts from a crypto newbie as he dives into the rabbit hole...

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.