1

Say I derive three extended public keys1 (normal mode):

Parent:

Pubkey: 035f743ee7d73d27e8c80f6b2458e6d4e2a45f3d7dd35c4e4d84ff3d939d09f40c

Chaincode 71d145eec8d031b39107cb7cb9641cc1e8169b6a25b489b157a0af2197717970

Children:

Pubkey: 0317365d2ea4aa79e731fd4f0f6d60bf0ef75a35189a647667eebc9c7323d304d0

Chaincode 9cb9a9fe6e57b62f9a7970649d8dc4633fd9d4b5777a1397a275bd30a88c3111

Pubkey: 0230cdc8f7b84c0998ec182777d9d1f35ea45fe7620e979862c7025b18162108cb

Chaincode 44b54106ea0720a1ac226d598b89297dfe8efd2b7abf75c88761aa6df9c2886b


If I have any two of these three (child-child or parent-child (not knowing which is parent)), is it possible to detect that the keys are related? How would it be done?

If not, what extra information would be required. The child indexes? Signatures from a shared root private key?


See also:

Why the normal mode exist in BIP32

ELI5: What's the difference between a child-key and a hardened child-key in BIP32

BIP32


1: I used this most excellent write up to create these.

1
  • 1
    A signature created with the root private key can be used to verify the relationship. You would use the root public key to verify the signature. To detect if two extended keys have the same root private key, you need additional information such as the child index or signatures from the root private key. Without this information, determining the relationship is not feasible.
    – Mani T
    Commented May 22 at 8:40

1 Answer 1

2

This is not possible; quoting BIP32:

Given any number (2 ≤ N ≤ 232-1) of (index, extended private key) tuples (ij,(kij,cij)), with distinct ij's, determining whether they are derived from a common parent extended private key (i.e., whether there exists a (kpar,cpar) such that for each j in (0..N-1) CKDpriv((kpar,cpar),ij)=(kij,cij)), cannot be done more efficiently than a 2256 brute force of HMAC-SHA512.

Given that this is not possible for extended private keys, it is certainly not possible for extended public keys.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.