From d34877f48228d6007825ac3dd947b351a6c01fc0 Mon Sep 17 00:00:00 2001 From: Johnson Lau Date: Tue, 7 Jun 2016 01:34:19 +0800 Subject: BIP141 script failure clarifications Footnotes to clarify some special conditions which witness scripts will fail --- bip-0141.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bip-0141.mediawiki') diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index ed025ac..6694a68 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -98,9 +98,9 @@ If the version byte is 0, and the witness program is 32 bytes: * The witnessScript is deserialized, and executed after normal script evaluation with the remaining witness stack (≤ 520 bytes for each stack item). * The script must not fail, and result in exactly a single TRUE on the stack. -If the version byte is 0, but the witness program is neither 20 nor 32 bytes, the script must fail. +If the version byte is 0, but the witness program is neither 20 nor 32 bytes, the script must fail.For example, a scriptPubKey with OP_0 followed by a 40-byte non-zero data push will fail due to incorrect program size. However, a scriptPubKey with OP_0 followed by a 41-byte non-zero data push will pass, since it is not considered to be a witness program -If the version byte is 1 to 16, no further interpretation of the witness program or witness happens, and there is no size restriction for the witness. These versions are reserved for future extensions. +If the version byte is 1 to 16, no further interpretation of the witness program or witness happens, and there is no size restriction for the witness. These versions are reserved for future extensions.For backward compatibility, for any version byte from 0 to 16, the script must fail if the witness program has a CastToBool value of zero. However, having a hash like this is a successful preimage attack against the hash function, and the risk is negligible. === Other consensus critical limits === -- cgit v1.2.3 From 7304edc475a93a4add0320907b2fe61c4f331720 Mon Sep 17 00:00:00 2001 From: Johnson Lau Date: Fri, 10 Jun 2016 13:14:25 +0800 Subject: BIP141: clarify size restriction for witness stack --- bip-0141.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bip-0141.mediawiki') diff --git a/bip-0141.mediawiki b/bip-0141.mediawiki index 6694a68..f02acf9 100644 --- a/bip-0141.mediawiki +++ b/bip-0141.mediawiki @@ -100,7 +100,7 @@ If the version byte is 0, and the witness program is 32 bytes: If the version byte is 0, but the witness program is neither 20 nor 32 bytes, the script must fail.For example, a scriptPubKey with OP_0 followed by a 40-byte non-zero data push will fail due to incorrect program size. However, a scriptPubKey with OP_0 followed by a 41-byte non-zero data push will pass, since it is not considered to be a witness program -If the version byte is 1 to 16, no further interpretation of the witness program or witness happens, and there is no size restriction for the witness. These versions are reserved for future extensions.For backward compatibility, for any version byte from 0 to 16, the script must fail if the witness program has a CastToBool value of zero. However, having a hash like this is a successful preimage attack against the hash function, and the risk is negligible. +If the version byte is 1 to 16, no further interpretation of the witness program or witness stack happens, and there is no size restriction for the witness stack. These versions are reserved for future extensions.For backward compatibility, for any version byte from 0 to 16, the script must fail if the witness program has a CastToBool value of zero. However, having a hash like this is a successful preimage attack against the hash function, and the risk is negligible. === Other consensus critical limits === -- cgit v1.2.3