Transaction Malleability

From CryptoWiki

Mutability

  • Transaction malleability is the capacity to generate multiple valid transaction identifiers for a single transaction.
  • The ability of someone to change (mutate) unconfirmed transactions without making them invalid, which changes the transaction’s txid, making child transactions invalid.
  • Transaction malleability is caused by a cryptographic trick to change a signature, without changing what that signature stands for. This can be done, moreover, without the private key used to create the original signature. In Bitcoin's case, this means that anyone can pick any transaction from the peer-to-peer network, and alter the signature into an equally valid signature. This new signature still reflects the exact same data it originally signed, and it can still be verified using the same public key. It doesn't change what a transaction does at all. But because it looks different, it does completely change the transaction ID.
  • Transaction malleability causes two main problems. First, it messes up the accounting of Bitcoin software that uses transaction IDs to verify whether transactions are confirmed. But perhaps more importantly, transaction malleability severely limits the potential of all sorts of advanced Bitcoin tricks that build on unconfirmed transactions (using their IDs), such as payments channels and the Lightning Network.