summaryrefslogtreecommitdiff
path: root/bip-0062.mediawiki
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-03-11 14:19:28 +0000
committerWladimir J. van der Laan <laanwj@gmail.com>2015-03-11 14:19:28 +0000
commitced361de1d47c71e967430e17339be520b71bb1a (patch)
tree647efe42d3673907123a13494b74b59ca50791fb /bip-0062.mediawiki
parentc3d6df15cc5ccd5ac23c3f12767f6d2ee3fc350c (diff)
parentcea602ef6c9b68483a696c3358f010f46915afe4 (diff)
Merge pull request #132 from petertodd/bip62-compact-validly-encoded-invalid-sigs
BIP62: Make OP_0 a validly encoded signature
Diffstat (limited to 'bip-0062.mediawiki')
-rw-r--r--bip-0062.mediawiki2
1 files changed, 1 insertions, 1 deletions
diff --git a/bip-0062.mediawiki b/bip-0062.mediawiki
index 99ff605..4846abf 100644
--- a/bip-0062.mediawiki
+++ b/bip-0062.mediawiki
@@ -38,7 +38,7 @@ The first six and part of the seventh can be fixed by extra consensus rules, but
===New rules===
Seven extra rules are introduced, to combat exactly the seven first sources of malleability listed above:
-# '''Canonically encoded ECDSA signatures''' An ECDSA signature passed to OP_CHECKSIG, OP_CHECKSIGVERIFY, OP_CHECKMULTISIG or OP_CHECKMULTISIGVERIFY must be encoded using strict DER encoding. Doing a verification with a non-DER signature makes the entire script evaluate to False (not just the signature verification). See reference: [[#der-encoding|DER encoding]].
+# '''Canonically encoded ECDSA signatures''' An ECDSA signature passed to OP_CHECKSIG, OP_CHECKSIGVERIFY, OP_CHECKMULTISIG or OP_CHECKMULTISIGVERIFY must be encoded using strict DER encoding. To provide a compact way to delibrately create an invalid signature for with OP_CHECKSIG and OP_CHECKMULTISIG the empty byte array (the result of OP_0) is also allowed. Doing a verification with a non-DER signature makes the entire script evaluate to False (not just the signature verification). See reference: [[#der-encoding|DER encoding]].
# '''Non-push operations in scriptSig''' Only data pushes are allowed in scriptSig. Evaluating any other operation makes the script evaluate to false. See reference: [[#push-operators|Push operators]].
# '''Push operations in scriptSig of non-standard size type''' The smallest possible push operation must be used when possible. Pushing data using an operation that could be encoded in a shorter way makes the script evaluate to false. See reference: [[#push-operators|Push operators]].
# '''Zero-padded number pushes''' Any time a script opcode consumes a stack value that is interpreted as a number, it must be encoded in its shortest possible form. 'Negative zero' is not allowed. See reference: [[#numbers|Numbers]].