<p>The Script define in <a href="https://github.com/bitcoin/bips/blob/master/bip-0199.mediawiki" rel="nofollow noreferrer">bip-0199</a> may suffer from <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-August/013014.html" rel="nofollow noreferrer"><code>OP_IF</code> malleability</a> if not used in a witness Script (which enforces that the argument to <code>OP_IF</code> is minimal, that is either the empty vector or <code>0x01</code>).</p>
<p>There may be other malleability sources in this Script that i didn't spot, and more generally malleability being very difficult to reason about it's worth using tools such as <a href="http://bitcoin.sipa.be/miniscript/" rel="nofollow noreferrer">Miniscript</a> to prevent your Script's satisfaction(s) to be (too much) malleable.</p>

CC BY-SA 4.0
2021-07-08T22:05:56.820Z
2021-07-08T22:05:56.820Z
Antoine Poinsot
<p>Do <a href="https://github.com/bitcoin/bips/blob/master/bip-0199.mediawiki" rel="nofollow noreferrer">BIP199</a> HTLCs suffer from sigscript malleability like multisigs do due to OP_CHECKMULTISIG?</p>

<multi-signature><transaction-malleability><hash-time-locked-contract>
Do BIP199's HTLCs suffer from script malleability?
arshbot
# Do BIP199's HTLCs suffer from script malleability?

(Asked by: username_0 on 2021-07-08)

Do [BIP199](https://github.com/bitcoin/bips/blob/master/bip-0199.mediawiki) HTLCs suffer from sigscript malleability like multisigs do due to OP\_CHECKMULTISIG?

**Tags:** multi-signature, transaction-malleability, hash-time-locked-contract


---

## 1 answers

### Answer by username_1 on 2021-07-08. Score: 1 | Accepted answer

The Script define in [bip-0199](https://github.com/bitcoin/bips/blob/master/bip-0199.mediawiki) may suffer from [`OP_IF` malleability](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-August/013014.html) if not used in a witness Script (which enforces that the argument to `OP_IF` is minimal, that is either the empty vector or `0x01`).

There may be other malleability sources in this Script that i didn't spot, and more generally malleability being very difficult to reason about it's worth using tools such as [Miniscript](http://bitcoin.sipa.be/miniscript/) to prevent your Script's satisfaction(s) to be (too much) malleable.


---

