From 54384a5710b4bf167dfe6ac5c9cca131f4c954f7 Mon Sep 17 00:00:00 2001
From: Max Hillebrand <30683012+MaxHillebrand@users.noreply.github.com>
Date: Mon, 18 Nov 2019 14:56:29 +0800
Subject: [PATCH] make clear it's script branch
In this context we are talking about the script branch, not the Merkle tree branch, right? If so, then this should clear things up a little.
---
bip-tapscript.mediawiki | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bip-tapscript.mediawiki b/bip-tapscript.mediawiki
index d4cd5da6..c80433d0 100644
--- a/bip-tapscript.mediawiki
+++ b/bip-tapscript.mediawiki
@@ -68,7 +68,7 @@ Validation of such inputs must be equivalent to performing the following steps i
===Script execution===
The execution rules for tapscript are based on those for P2WSH according to BIP141, including the OP_CHECKLOCKTIMEVERIFY
and OP_CHECKSEQUENCEVERIFY
opcodes defined in [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP65] and [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP112], but with the following modifications:
-* '''Disabled script opcodes''' The following script opcodes are disabled in tapscript: OP_CHECKMULTISIG
and OP_CHECKMULTISIGVERIFY
['''Why are ]OP_CHECKMULTISIG
and OP_CHECKMULTISIGVERIFY
disabled, and not turned into OP_SUCCESSx?''' This is a precaution to make sure people who accidentally keep using OP_CHECKMULTISIG
in Tapscript notice a problem immediately. It also avoids the complication of script disassemblers needing to become context-dependent.. The disabled opcodes behave in the same way as OP_RETURN
, by failing and terminating the script immediately when executed, and being ignored when found in unexecuted branch.
+* '''Disabled script opcodes''' The following script opcodes are disabled in tapscript: OP_CHECKMULTISIG
and OP_CHECKMULTISIGVERIFY
['''Why are ]OP_CHECKMULTISIG
and OP_CHECKMULTISIGVERIFY
disabled, and not turned into OP_SUCCESSx?''' This is a precaution to make sure people who accidentally keep using OP_CHECKMULTISIG
in Tapscript notice a problem immediately. It also avoids the complication of script disassemblers needing to become context-dependent.. The disabled opcodes behave in the same way as OP_RETURN
, by failing and terminating the script immediately when executed, and being ignored when found in unexecuted branch of the script.
* '''Consensus-enforced MINIMALIF''' The MINIMALIF rules, which are only a standardness rule in P2WSH, are consensus enforced in tapscript. This means that the input argument to the OP_IF
and OP_NOTIF
opcodes must be either exactly 0 (the empty vector) or exactly 1 (the one-byte vector with value 1)['''Why make MINIMALIF consensus?''' This makes it considerably easier to write non-malleable scripts that take branch information from the stack.].
* '''OP_SUCCESSx opcodes''' As listed above, some opcodes are renamed to OP_SUCCESSx
, and make the script unconditionally valid.
* '''Signature opcodes'''. The OP_CHECKSIG
and OP_CHECKSIGVERIFY
are modified to operate on Schnorr public keys and signatures (see bip-schnorr) instead of ECDSA, and a new opcode OP_CHECKSIGADD
is added.