1

As I could read on BIP 32, we can generate HD Wallets using all the rules defined by Pieter Wuille, but I came across a sentence that was written in the document and I could not fully understand.

Note that the fingerprint of the parent only serves as a fast way to detect parent and child nodes in software, and software must be willing to deal with collisions. Internally, the full 160-bit identifier could be used.

What does it mean deal with collisions?

1 Answer 1

2

The fingerprint could be used as a unique identifier for a key (it is based on the longer hash160 of the key which is frequently used as a unique identifier). However because it is only 4 bytes long, it is not hard to find two different xpubs which have the same fingerprint. We would say that the fingerprint for these two xpubs collide with each other.

Note that these two xpubs would have different hash160s, just that the first 4 bytes of that hash (which is the fingerprint), are the same.

So any software that is handling multiple xpubs needs to be aware that there could be collisions in the fingerprint and implement ways to handle them.

2
  • So we need to worry about collision if and only if we use the fingerprint as a unique identifier. And what approach would be used to handle it? Commented Apr 3, 2020 at 17:11
  • 1
    Pretty much. You can deal with collisions by using multimaps where a single key maps to multiple values.
    – Ava Chow
    Commented Apr 3, 2020 at 20:23

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.