How Ethereum BIP-32 Hardware Digital Wallet Works

  • Multipurpose HD wallets (BIP-43)
  • Multi-currency and multi-account wallets (BIP-44)
  • Mnemonic code words (BIP-39)

HD Wallets (BIP-32)

HD wallets follow the BIP-32 standard, which was created on February 11, 2012. The standard was set for mainly two aspects:

  • How to derive wallet structure from the tree of keypairs

Deriving a Tree of Keypairs

Before going into any details regarding key derivation, we need to understand the concept of extended keys properly. The concept of extended keys came into the picture to prevent the derived child keys from entirely depending on the parent key itself. The process for deriving the child keys is as follows:

  • If the parent key is a public key, the extended public key will have the prefix xpub.
  • Compute the public child key from the public parent key.
  • Compute the public child key from the private parent key.
  • From the child private key
  • Normal child key: Hash (parent public key + index)
  • Index of normal child key is bigger than 231–1
  1. Then, we use the child key derivation function to get level-one derived nodes.
  2. Next, we apply child key derivation functions to each of these level-one nodes to derive next-level nodes.
  3. Finally, we repeat the same process to build the entire tree.

Deriving Wallet Structure

Having a tree of key pairs, the structure of a wallet can be imposed on the tree. The default wallet layout is defined like so:

  • Derive public addresses from external keychain.
  • The internal keychain is responsible for all the activities that won’t be shared with the outside environment.
  • Support for auditing
  • Central control from headquarter to branches
  • Recurrent transactions among businesses
  • Separating incoming and outgoing transactions to prevent fraud

HD wallet path

If you have been doing extra reading upon BIP 32, you will have noticed a picture of key derivation, which can be found here. In this picture, the master node at depth 0 has a notation of m. At depth 1, wallets have notations such as m/0, m/1, and so on. And for depth 2, wallets have notations such as m/0/0, m/0/1, …, m/i/0, and m/i/1.

  1. The first normal child of the master private key is m/0.
  2. The first hardened child of the master private key is m/0'.
  3. The first normal child of m/0' is m/0'/0 and so on.

Summary

In this article, we learn about Ethereum digital wallet. We started off by explaining the role of a digital wallet in a DeFi application as well as differences between deterministic and non-deterministic methods for key generation. Then, we moved on by reviewing Ethereum standards for digital wallet creation and management. For the remainder of this article, we focused on HD wallet or standard BIP-32 by explaining how to derive a tree of keypairs and wallet structure for Ethereum HD wallets.

Resources

Here is a list of resources for learning more about blockchain development with Ethereum:

About the Authors

Matt Zand is a serial entrepreneur and the founder of 4 tech startups: DC Web Makers, Hash Flow, Coding Bootcamps and High School Technology Services. He is a leading author of Hands-on Smart Contract Development with Hyperledger Fabric book by O’Reilly Media. He has written more than 100 technical articles and tutorials on blockchain development for Hyperledger, Ethereum and Corda R3 platforms at sites such as IBM, SAP, Alibaba Cloud, Hyperledger, The Linux Foundation, and more. At Hash Flow, he leads a team of blockchain experts for consulting and deploying enterprise decentralized applications. As chief architect, he has designed and developed blockchain courses and training programs for Coding Bootcamps. He has a master’s degree in business management from the University of Maryland. Prior to blockchain development and consulting, he worked as senior web and mobile App developer and consultant, investor, business advisor for a few startup companies. You can connect with him on LinkedIn

Original Source:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store