Hi all,

Pursuant to the discussions about standardizing an unspendable NUMS key for an script path only taproot policy https://delvingbitcoin.org/t/unspendable-keys-in-descriptors/304 and https://github.com/bitcoin/bips/pull/1746 ; we undertook the issue with these guiding principles:

  1. We don't police adherence to other bips except when they directly affect the issue at hand.
  2. We use the already in place mechanisms in other bips.
  3. We don't claim semantic canonicalization of the script and only normalize the policy to some opinionated extent.

The gist is, we define _​ as a placeholder for the unspendable NUMS key. We sort keys inside musig(...) and sortedmulti_a. We sort sibling pairs of the tree. If there is multipath extension, we add the same length tuple to the _​ so that we don't fall to reuse. Then we pull the keys out and us @i​ placeholders and hash the whole thing consisting of the normalized descriptor and the keys. That would be the chain code for the H​ defined in BIP 341.

The details can be found here:
https://github.com/bitryonix/bips/blob/bip-xxxx-unspendable-internal-keys/bip-xxxx-unspendable-internal-keys.mediawiki

Best,
NTL

--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/Sk4mSfbFO2smtuHSMyjmpjCrCIhHvnG7cajKVg6H6fx-H1MuS6gDxJxVyAiBXeg3IoSWgNevsE-xB41H0BsUHNcgUh-walxHAmA2vKIT-dE%3D%40proton.me.