Bitcoin: Using BIP32 derivations, can all seeds theoretically produce all public keys?

Bitcoin derivatives borders: Can all seeds produce all public keys?

Bitcoin’s exclusive encryption is based on the BIP 32 derivative path, which allows users to create multiple public keys from a single seed. Although this concept may seem to offer unlimited opportunities to create new keys, a more detailed study reveals that not all seeds can produce all possible combinations of derivatives.

What are the 32 beep derivatives?

In Bitcoin’s Bip 32 protocol, “Seed” is the key used to get several public keys. These derived paths are created by the following rules:

  • Each derived path consists of two parameters: m, which is the mother -LAw (leaf node) and the, which is how many times the root key should be chained.

  • The first parameter,m, can be a single leaf node (for example, 0) or an empty rope ().

  • Another parameter,n, defines how many times the key to parents should be invented.

By combining these two parameters in different ways, users can create various derivatives that eventually produce different public keys. For example:

And m | N | Derivative path

And --- | --- | --- |

And 0 | 2 | "M = 0, n = 2" |

And 0 | 3 | "M = 0, n = 3" |

And 1 | 2 | "M = '', n = 2" |

And ... | ... | ... |

Theoretical boundaries of the derivatives

By examining possible combinations of BIP 32 paths, it turns out that not all seeds can produce all possible combinations. The main reason for this restriction is that each seed is associated with a number of public keys.

In Bitcoin, the user's private key (ie their seeds) corresponds to a single public key (P). To create multiple public keys from the same seed, users need to lead different roots of the same older key. However, as each derived path requires two parameters (me n were), there are only 2^n possible combinations.

For example, consider a user with a seed that produces two separate public keys:

  • P1 (root) hash of root | Introductory

And — | — | — |

And A | ABCDEFG | “M = 0, n = 2” |

And h | XYZDEFGH | “M = ”, n = 2″ |

As you can see, there are only two possible derivative routes for each seed (because m en were can take values ​​from 0 to 1). This is because each derived path requires a special combination of the father key (m) and the number of attached ( n). No matter how many seeds you have, not all derivative combinations produce all possible public keys.

Conclusion

Although Bitcoin's BIP 32 derived system allows unlimited opportunities for new keys to create, reality is more subtle. The theoretical limits of the derivatives mean that not all seeds can produce all possible combinations of roots and derivatives, leading to a finite set of public keys associated with all seeds.

In practice, users can still create several separate public keys from a seed using different techniques, such as the use of different "m or n` values. Seeds produce all possible combinations of derived paths, finally limiting the number of public keys available.

Leave a Comment