PR for BIP 98/116 Implementation: MERKLEBRANCHVERIFY

Bitcoin Core PR #12131 was opened on 2018-01-09.

Implements BIPs 98 and 116 as policy rules for transaction relay, causing transactions which use NOP4 for things other than Merkle branch verification to be treated as non-standard. This is not the soft-fork activation logic needed to use MERKLEBRANCHVERIFY in production.

MERKLEBRANCHVERIFY is a soft-fork upgradeable opcode that allows script writers to commit to a set of data elements and have one or more of these elements be provided at redemption without having to reveal the entire set. As these data elements can be used to encode policy, such as public keys or validation subscripts, the MERKLEBRANCHVERIFY opcode can be used to overcome size limitation of existing bitcoin script, and combines with tail-call semantics to provide a minimal implementation of the Merkelized Abstract Syntax Tree concept.