<p>On that wiki <a href="https://en.bitcoin.it/wiki/Script" rel="nofollow noreferrer">link</a> you posted it states:</p>
<blockquote>
<p>If any opcode marked as disabled is present in a script, it must abort and fail.</p>
</blockquote>
<p>An attempted UTXO spend with a failed script will not be relayed between nodes running Bitcoin Core (and other major implementations) and certainly won't be included in a mined block.</p>
<p>The mainnet coinbase <a href="https://www.blockchain.com/btc/tx/bcd93f13f78bc66e4ab5c3e468c386466d0aa307b15b58d0e42b8afa4fffaaba" rel="nofollow noreferrer">transaction</a> you link to includes an OP_AND in an input scriptSig. But input(s) in a coinbase transaction are ignored as it is mining new Bitcoins and is not spending from any output from another transaction.</p>
<p>The testnet <a href="https://www.blockchain.com/btc-testnet/tx/19f8799e074bf253ac1ed39aa25d97b7fd5d82d962d268723971dd84a7cd08f3" rel="nofollow noreferrer">transaction</a> you link to includes an OP_AND in an output scriptPubKey. It hasn't been spent and can't be spent because there is no scriptSig that can spend from it.</p>
<p>BIP-Tapscript (<a href="https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#specification" rel="nofollow noreferrer">BIP 342</a>) proposes to make disabled opcodes like OP_AND OP_SUCCESSx which would mean that the Tapscript would automatically succeed if the opcode is encountered. This is so that new opcode functionality could potentially be introduced in a future soft fork without breaking backwards compatibility. But Taproot/Tapscript is not yet activated on the network at the time of writing (October 2020).</p>

CC BY-SA 4.0
2020-10-25T23:20:01.503Z
2020-10-26T16:19:22.080Z
2020-10-26T16:19:22.080Z
Michael Folkson
<p>Many OPCODES like OP_AND, OP_CAT, OP_SUBSTR are disabled as described in <a href="https://en.bitcoin.it/wiki/Script" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Script</a>. Although, with Bitcoin Core 0.10.0 Gavin Andresen <a href="https://github.com/bitcoin/bitcoin/pull/4365" rel="nofollow noreferrer">proposed</a> &quot;any Script&quot; in P2SH transactions to be relayed/mined:
<a href="https://i.sstatic.net/Z9pPN.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/Z9pPN.png" alt="enter image description here" /></a>
I'm still unsure if this applies disabled opcodes. I've come across a Mainnet coinbase transaction with disabled &quot;OP_AND&quot; opcode <a href="https://www.blockchain.com/btc/tx/bcd93f13f78bc66e4ab5c3e468c386466d0aa307b15b58d0e42b8afa4fffaaba" rel="nofollow noreferrer">here</a>, and a Testnet transaction <a href="https://www.blockchain.com/btc-testnet/tx/19f8799e074bf253ac1ed39aa25d97b7fd5d82d962d268723971dd84a7cd08f3" rel="nofollow noreferrer">here</a>. I'm very curios if P2SH transactions with disabled opcodes in the redeem script relayed and mined on the BTC Mainnet.</p>

<script><bitcoin-core-development><p2sh><taproot><opcodes>
Are P2SH transactions with disabled opcodes relayed/mined?
Brqoo
# Are P2SH transactions with disabled opcodes relayed/mined?

(Asked by: username_0 on 2020-10-25)

Many OPCODES like OP\_AND, OP\_CAT, OP\_SUBSTR are disabled as described in <https://en.bitcoin.it/wiki/Script>. Although, with Bitcoin Core 0.10.0 Gavin Andresen [proposed](https://github.com/bitcoin/bitcoin/pull/4365) "any Script" in P2SH transactions to be relayed/mined:
[![enter image description here](https://i.sstatic.net/Z9pPN.png)](https://i.sstatic.net/Z9pPN.png)
I'm still unsure if this applies disabled opcodes. I've come across a Mainnet coinbase transaction with disabled "OP\_AND" opcode [here](https://www.blockchain.com/btc/tx/bcd93f13f78bc66e4ab5c3e468c386466d0aa307b15b58d0e42b8afa4fffaaba), and a Testnet transaction [here](https://www.blockchain.com/btc-testnet/tx/19f8799e074bf253ac1ed39aa25d97b7fd5d82d962d268723971dd84a7cd08f3). I'm very curios if P2SH transactions with disabled opcodes in the redeem script relayed and mined on the BTC Mainnet.

**Tags:** script, bitcoin-core-development, p2sh, taproot, opcodes


---

## 1 answers

### Answer by username_1 on 2020-10-25. Score: 2 | Accepted answer

On that wiki [link](https://en.bitcoin.it/wiki/Script) you posted it states:

> If any opcode marked as disabled is present in a script, it must abort and fail.

An attempted UTXO spend with a failed script will not be relayed between nodes running Bitcoin Core (and other major implementations) and certainly won't be included in a mined block.

The mainnet coinbase [transaction](https://www.blockchain.com/btc/tx/bcd93f13f78bc66e4ab5c3e468c386466d0aa307b15b58d0e42b8afa4fffaaba) you link to includes an OP\_AND in an input scriptSig. But input(s) in a coinbase transaction are ignored as it is mining new Bitcoins and is not spending from any output from another transaction.

The testnet [transaction](https://www.blockchain.com/btc-testnet/tx/19f8799e074bf253ac1ed39aa25d97b7fd5d82d962d268723971dd84a7cd08f3) you link to includes an OP\_AND in an output scriptPubKey. It hasn't been spent and can't be spent because there is no scriptSig that can spend from it.

BIP-Tapscript ([BIP 342](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#specification)) proposes to make disabled opcodes like OP\_AND OP\_SUCCESSx which would mean that the Tapscript would automatically succeed if the opcode is encountered. This is so that new opcode functionality could potentially be introduced in a future soft fork without breaking backwards compatibility. But Taproot/Tapscript is not yet activated on the network at the time of writing (October 2020).


---

