Fondamenti delle blockchain
Transaction malleability: when an identifier changes
A transaction reference is a hash of a defined serialisation, so the exact fields included matter.
Gli articoli di ricerca e le schede sono pubblicati in inglese. La navigazione è disponibile in sette lingue.
In questo articolo
Identity and payment intent
A transaction ID is computed from a specified representation of transaction data. Historically, some changes to signature-related encodings could alter an unconfirmed transaction's identifier without changing the intended payment. Software that assumed the first observed identifier could never change could therefore mis-handle a later reference.
This was particularly relevant to systems preparing transactions that spent the output of another unconfirmed transaction. If the parent reference changed, a dependent transaction constructed with the old identifier no longer referred to the expected output under that identifier.
What to inspect
SegWit separated witness data and changed the relevant hashing arrangements. BIP143 documents the signature-hash calculation for version-0 witness programmes, including the fields committed for a spend. The exact protection depends on the transaction form and signing mode.
Malleability is not a synonym for forging a private-key signature or spending arbitrary coins. It describes how different encodings or permitted modifications affect identity and dependencies. When reading an incident report, identify whether the failure concerned authorisation, accounting, confirmation tracking or a transaction reference. Those require different fixes.