summaryrefslogtreecommitdiff
path: root/bip-0141.mediawiki
diff options
context:
space:
mode:
authorChris Stewart <stewart.chris1234@gmail.com>2017-01-03 17:07:37 -0600
committerGitHub <noreply@github.com>2017-01-03 17:07:37 -0600
commitd84186c01caa6728aff157b596908e8c5fdd2ad0 (patch)
tree5a559ce0b8c242e72b84a907c3b9b85899f00af8 /bip-0141.mediawiki
parent04875c6d6e6c066377b14f056159a65e2db00254 (diff)
Specify which 1 byte push op codes are valid
This adds documentation to BIP141 about which 1 byte push op codes are valid for segwit. This is needed because `OP_1NEGATE` is a 1 byte push op code, but is NOT a valid 1 byte push op code for segwit. See the implementation here for why `OP_1NEGATE` is not valid: https://github.com/bitcoin/bitcoin/blob/14d01309bed59afb08651f2b701ff90371b15b20/src/script/script.cpp#L228
Diffstat (limited to 'bip-0141.mediawiki')
-rw-r--r--bip-0141.mediawiki2
1 files changed, 1 insertions, 1 deletions
diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki
index 7cc587a..cbdf5ce 100644
--- a/bip-0141.mediawiki
+++ b/bip-0141.mediawiki
@@ -83,7 +83,7 @@ If all transactions in a block do not have witness data, the commitment is optio
=== Witness program ===
-A <code>scriptPubKey</code> (or <code>redeemScript</code> as defined in BIP16/P2SH) that consists of a 1-byte push opcode (for 0 to 16) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program".
+A <code>scriptPubKey</code> (or <code>redeemScript</code> as defined in BIP16/P2SH) that consists of a valid 1-byte push opcode (<code>OP_0,OP_1,OP_2...,OP_16</code>) followed by a data push between 2 and 40 bytes gets a new special meaning. The value of the first push is called the "version byte". The following byte vector pushed is called the "witness program".
There are two cases in which witness validation logic are triggered. Each case determines the location of the witness version byte and program, as well as the form of the scriptSig:
# Triggered by a <code>scriptPubKey</code> that is exactly a push of a version byte, plus a push of a witness program. The scriptSig must be exactly empty or validation fails. (''"native witness program"'')