Reviewed Aug 2026
DE
BA-06 · LESSON 07

Script limits and malleability

KEY DEFINITIONS

Terms used in this lesson

Signature malleability
The possibility that related signature representations can authorize the same message unless a scheme and its rules enforce a canonical form.
Transaction ID
The identifier produced by hashing a Bitcoin transaction’s non-witness serialization.
SegWit
Segregated Witness: a Bitcoin upgrade that separates authorization data from the transaction identifier and introduces versioned witness programs.
Witness
Signatures, scripts, or other data supplied to satisfy a Bitcoin output’s spending condition.
OP_SUCCESS126
The current OP_SUCCESS-family name for Tapscript byte 0x7e, which succeeds immediately when executed.
Tapscript
The version of Bitcoin Script used by a Taproot script-path spend.
BIP347
The Bitcoin Improvement Proposal specifying proposed CAT byte-concatenation semantics for Tapscript.
CAT
A proposed restoration of a Bitcoin Script operation that concatenates two byte strings.
RBF
Replace-by-fee: a policy for replacing an unconfirmed transaction with a conflicting one that pays more.

Disabled opcodes, resource limits, encoding rules, and malleability protections constrain safe composition.

55 min Difficulty 2/5 Not started

Loading lesson visuals...

01

Learn the idea

Bitcoin limits Script and transaction resources to keep validation predictable and resist denial of service. OP_SUCCESS126 is the current immediate-success meaning of Tapscript byte 0x7e. BIP347 is the undeployed proposal that would assign CAT byte-concatenation semantics to that byte. Consensus limits make a block invalid when exceeded. Standardness policy can be stricter for mempool relay. Malleability means changing transaction bytes without invalidating the intended spend; SegWit removed third-party mutation of witness data from txid but not every form of transaction replacement or signer-controlled variation.

GUIDED EXPLANATION1/5 ideas inspected
1

Constrain program structure

Applicable Script versions restrict script size, element size, opcode behavior, and other execution properties. Some opcodes are disabled or version-dependent.

Inspect each idea before the worked example.
The worked example follows the explanation

Inspect every idea above to open it.

Important distinctionSegWit made every unconfirmed Bitcoin transaction non-malleable and final.

It prevents third parties from changing segregated witness data in txid. Inputs, outputs, replacement policy, signer choices, and chain reorganizations remain relevant.

02
FINISH LEARNING FIRST

The questions unlock after every required learning activity

Inspect every guided idea, open the worked example, rebuild its mechanism, and complete the deterministic lesson tool. Your progress is saved automatically.