From 99ece780c80af963cfd22eb23a46d3756f1d3a59 Mon Sep 17 00:00:00 2001 From: Ferdinando Ametrano Date: Fri, 23 Oct 2026 06:18:27 +0200 Subject: [PATCH] BIP-0322: name taproot upgrade mechanisms in the upgradeable rules The upgradeable rules list the to_sign version, NOPs reserved for upgrades and segwit versions above 1. BIP341 and BIP342 also reserve unknown leaf versions, OP_SUCCESSx, unknown public key types and the annex for upgrades. A verifier that follows the BIP322 text calls a signature using any of them valid. Name them, so that these give the inconclusive state like the other upgrade mechanisms. Bump the version to 2.1.0 and add a changelog entry. Add 342 to Requires. --- bip-0322.mediawiki | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bip-0322.mediawiki b/bip-0322.mediawiki index 66fd047f..f41f2334 100644 --- a/bip-0322.mediawiki +++ b/bip-0322.mediawiki @@ -15,8 +15,8 @@ 2024-05-04: https://groups.google.com/g/bitcoindev/c/RCi1Exs0ZvQ/m/vp6Xo36aBwAJ 2025-05-10: https://bitcoin.stackexchange.com/questions/126277/where-can-i-use-bip322-to-sign-a-message-to-verify-a-multisig-address 2026-04-20: https://groups.google.com/g/bitcoindev/c/qd6BNz9gxCk/m/k1fHq4RKAQAJ - Version: 2.0.0 - Requires: 174, 340, 341 + Version: 2.1.0 + Requires: 174, 340, 341, 342 == Abstract == @@ -261,6 +261,7 @@ Validation consists of the following steps: ## The version of to_sign must be 0 or 2. ## The use of NOPs reserved for upgrades is forbidden. ## The use of Segwit versions greater than 1 is forbidden. +## The use of the taproot upgrade mechanisms is forbidden: an unknown leaf version and the annex ([[bip-0341.mediawiki|BIP341]]), OP_SUCCESSx and an unknown public key type ([[bip-0342.mediawiki|BIP342]]). ## If any of the above steps failed, the validator should stop and output the ''inconclusive'' state. # Let ''T'' be the nLockTime of to_sign and ''S'' be the nSequence of the first input of to_sign. Output the state ''valid at time T and age S''. ## For ''full Proof of Funds'' signatures, a validator MAY additionally report any non-zero nSequence values on the Proof of Funds inputs (i.e., vin[1..n]), and MAY verify them against the current chain state when the UTXO set is available; such checks are advisory and do not affect the output state. @@ -491,6 +492,8 @@ and many others for their feedback on the specification. == Changelog == +* '''2.1.0''' (2026-10-23): +** Add the taproot upgrade mechanisms (unknown leaf version, annex, OP_SUCCESSx, unknown public key type) to the upgradeable rules, so that they give the ''inconclusive'' state. * '''2.0.0''' (2026-06-04): ** Clarify that the message_challenge is ''not'' optional for "Proof of Funds". * '''1.0.0''' (2026-04-15):