<p><code>OP_CHECKSEPARATESIG</code> has not been formally proposed for bitcoin, but it would amount to an opcode that consumes the parts of a bitcoin signature (<code>r</code> and <code>s</code> and <code>sighash mode</code>) separately, rather than from a single argument.</p>
<p>This separation of <code>r</code> and <code>s</code> allows the <code>r</code> value to be fixed by a bitcoin locking script, which ensures that only one signature for a specific script branch can be produced by the signer without <a href="https://billatnapier.medium.com/ecdsa-signatures-are-great-but-be-carefull-of-nonce-reuse-eeba25d20ab7" rel="nofollow noreferrer">revealing</a> their secret key.</p>
<p>Having a branch that can only be signed once enables the construction of spending bonds which could enable specialized protocols, including <a href="https://gitlab.com/-/snippets/3735654" rel="nofollow noreferrer">zero-conf-safe wallets</a> and a subset of <a href="https://bitcoinmagazine.com/technical/op-checkseparatesig-and-actuaries-fixing-multiparty-channel-factories" rel="nofollow noreferrer">multiparty channel factories</a>.</p>
<p>If <code>OP_CAT</code> is enabled for bitcoin, there is no need for <code>OP_CHECKSEPARATESIG</code> as <code>OP_CAT</code> can be used to build a combined signature from the separate parts without a specialized opcode.</p>

CC BY-SA 4.0
2024-08-07T21:46:57.503Z
2024-08-08T16:02:51.357Z
2024-08-08T16:02:51.357Z
Brandon - Rearden
<p>I was reading about potential <code>OP_CAT</code> applications and read about <code>OP_CHECKSEPARATESIG</code>. This seems to refer to some shorthand, as I am not aware of an opcode by that designation. What is <code>OP_CHECKSEPARATESIG</code>?</p>

<signature><bip347-op-cat>
What does `OP_CHECKSEPARATESIG` refer to?
Murch
# What does `OP_CHECKSEPARATESIG` refer to?

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

I was reading about potential `OP_CAT` applications and read about `OP_CHECKSEPARATESIG`. This seems to refer to some shorthand, as I am not aware of an opcode by that designation. What is `OP_CHECKSEPARATESIG`?

**Tags:** signature, bip347-op-cat


---

## 1 answers

### Answer by username_1 on 2024-08-07. Score: 4 | Accepted answer

`OP_CHECKSEPARATESIG` has not been formally proposed for bitcoin, but it would amount to an opcode that consumes the parts of a bitcoin signature (`r` and `s` and `sighash mode`) separately, rather than from a single argument.

This separation of `r` and `s` allows the `r` value to be fixed by a bitcoin locking script, which ensures that only one signature for a specific script branch can be produced by the signer without [revealing](https://billatnapier.medium.com/ecdsa-signatures-are-great-but-be-carefull-of-nonce-reuse-eeba25d20ab7) their secret key.

Having a branch that can only be signed once enables the construction of spending bonds which could enable specialized protocols, including [zero-conf-safe wallets](https://gitlab.com/-/snippets/3735654) and a subset of [multiparty channel factories](https://bitcoinmagazine.com/technical/op-checkseparatesig-and-actuaries-fixing-multiparty-channel-factories).

If `OP_CAT` is enabled for bitcoin, there is no need for `OP_CHECKSEPARATESIG` as `OP_CAT` can be used to build a combined signature from the separate parts without a specialized opcode.


---

