Add address_index for NIP-06 generation

I propose a change to NIP-06 that would allow the generation of infinite root keys by using the address_index field of the 5-level path used to derive Nostr keys under BIP32. 

The current 5-level path used for NIP-06 is "m/44'/1237'/0'/0/0", and only generates one private key. By changing it to "m/44'/1237'/0'/0/<address_index>", we can generate multiple keys from a single parent bitcoin seed.
This commit is contained in:
Seth For Privacy 2023-04-04 13:43:59 -04:00 committed by GitHub
parent 8b39976e78
commit c6e14c8087
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

4
06.md
View File

@ -8,8 +8,8 @@ Basic key derivation from mnemonic seed phrase
[BIP39](https://bips.xyz/39) is used to generate mnemonic seed words and derive a binary seed from them. [BIP39](https://bips.xyz/39) is used to generate mnemonic seed words and derive a binary seed from them.
[BIP32](https://bips.xyz/32) is used to derive the path `m/44'/1237'/0'/0/0` (according to the Nostr entry on [SLIP44](https://github.com/satoshilabs/slips/blob/master/slip-0044.md)). [BIP32](https://bips.xyz/32) is used to derive the path `m/44'/1237'/0'/0/<address_index>` (according to the Nostr entry on [SLIP44](https://github.com/satoshilabs/slips/blob/master/slip-0044.md)).
This is the default for a basic, normal, single-key client. A basic client can simply use an `address_index` of `0` to derive a single key. For more advanced use-cases you can increment `address_index`, allowing generation of practically infinite keys from the 5-level path.
Other types of clients can still get fancy and use other derivation paths for their own other purposes. Other types of clients can still get fancy and use other derivation paths for their own other purposes.