Non-wallet usage of keys derived from BIP-32 trees


#1

Software interacting with the blockchain, including wallets, do not only revolve around pure asset transfer transactions but might have additional functionalities. In the case of Status that would be chat, but it can be anything like authentication, file encryption, etc. Using keys under the BIP32 tree for these purposes would allow the user to migrate the whole identity from one software to the other using the BIP39 mnemonic alone, since everything else would be derived from there.

We plan to propose a short EIP (ERC maybe?) to formalize a key subtree which would be reserved for this. I have written a draft at https://notes.status.im/UPVhoAKjT0irxIPjs5x8IA and would like to have some feedback on this before submitting it.

A short summary is that we define a separate (from the usual 44’) subtree under master and then have a key type and a key index. The format would thus be m/XXXX’/key_type’/key_index. The XXXX would be the EIP/ERC number.

The list of allocated key type must be maintained in a way similar to the allocated coin types for BIP44.


Meta: we should value privacy more
#2

Great idea! Just missing in the purpose section of the notes the thing you mention in this post:

The format would thus be m/XXXX’/key_type’/key_index. The XXXX would be the EIP/ERC number.


EIP-1581: Non-wallet usage of keys derived from BIP-32 trees
#3

Thanks for the feedback! I have added that explaination in the document as well now.


#4

Another update to the draft, regarding the key_index field has been posted https://eips.ethereum.org/EIPS/eip-1581