3

In BIP386, pkh() nested in tr() is noted as invalid in the Test Vector:

enter image description here

However, it is enabled in the Bitcoin Core test cases:

https://github.com/bitcoin/bitcoin/blob/v27.1/src/test/descriptor_tests.cpp#L636

Which one is the correct specification?

1 Answer 1

3

By BIP 386, tr(pkh(...)) is not a valid descriptor. By BIP 379 however, it is valid.

Which one is the correct specification?

That depends on which descriptor extensions you choose to follow. Bitcoin Core implements both.

Perhaps the language could be less confusing, but BIPs do not specify what is unconditionally valid or invalid. They're proposals that pieces of software can choose to implement or not, and thus they only specify what implementers of that specific BIP have to do to be in compliance.

1
  • My question has been clarified. Thank you! Commented Jul 8 at 23:58

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