BIP 110 currently lists seven consensus rules. The Bitcoin Knots implementation developed before BIP 110 reached Complete status added an eighth rule: while the deployment is active, a spend of a non-grandfathered Pay-to-Anchor (P2A) output is invalid if that input's witness stack is non-empty. This pull request brings the BIP's text and test vectors into line with that existing implementation.
The P2A rule (8th BIP110 consensus rule) was authored on Feb 12, 2026 and merged into 29.x-knots on May 2, 2026; both before BIP 110 became Complete.
BIP 3 classifies an incompatible specification change as a MAJOR version increment. Therefore, this PR updates the version to 2.0.0
The generator adds four 8th rule cases:
| Vector | Expected result |
|---|---|
| Post-activation P2A output, empty witness stack | Valid |
| Post-activation P2A output, one empty witness element | Invalid |
| Post-activation P2A output, one one-byte witness element | Invalid |
| Pre-activation P2A output, non-empty witness stack | Valid under UTXO grandfathering |
The generator was run against a local Bitcoin Knots build with REDUCED_DATA active at regtest height 432.