RFC: Deterministic Entropy From BIP32 Keychains [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2020-03-25T13:54:18+00:00


Summary:

The proposed extension/standard aims to solve the problem of managing multiple seeds and backups by providing a way to deterministically derive initial entropy for creating keychain mnemonics and seeds. The proposal suggests using a single BIP32 style "master root key" and specifies a derivation scheme using the format `m/83696968'/type'/index'`. To ensure compatibility, the proposal suggests using HMAC-SHA512 for calculating entropy, as it is already required in devices supporting BIP32. The resulting entropy can then be used to derive a mnemonic, wallet, or other relevant entities based on the specified `type`.The proposal also emphasizes that wallet developers do not need to make any changes, as the interaction point remains the BIP39 seed, which most developers are familiar with. The document includes three test cases demonstrating the derivation of child keys from parent keys using both BIP32 and BIP39. These test cases provide details such as bits required for the child key, WIF, k, entropy, and BIP39 seed and mnemonic for the derived child key.The references cited in the proposal are BIP32 and BIP39, which are standards for hierarchical deterministic wallets. The document is dual-licensed under the Open Publication License and BSD 2-clause license. The proposal presented by Ethan Kosakovsky has sparked discussions and opinions within the bitcoin-dev community. Christopher Allen agrees with the problem statement but suggests finding standard ways to protect the entropy seed for creating hierarchies of keys using airgap solutions. Peter D. Gray, the founder of Coinkite, expresses approval and recognition of the proposal, considering it a valuable contribution to solving the issue of managing multiple seeds and backups. However, there are also members of the community, such as Pavol Rusnak, who express confusion about the problem being addressed in the proposal.The main objective of the proposal is to allow one root key or mnemonic to derive various root keychains in different formats, depending on the user's preference or hardware signing devices. This proposed standard is currently in the proposed stage and has not yet received any comments. If implemented, this standard would enable devices that store the HD seed as a BIP39 mnemonic, Electrum seed, or BIP32 root key to adopt it. The proposal includes three test cases with different master BIP39 seed inputs, master BIP32 root keys, and paths. Each test case also provides information such as the required bits, derived child WIF, derived child k value, child entropy, converted entropy to WIF, child BIP39 mnemonic, child BIP39 seed, and child BIP32 root key.HMAC-SHA512 has been chosen as the function to process the resulting private key due to its compatibility with embedded devices, as it is already required in devices supporting BIP32. The ultimate goal of this proposal is to address the issue of having too many seeds and backups, while still preserving the original motivation behind BIP32.


Updated on: 2023-08-02T01:55:55.140748+00:00