On Tue, Oct 14, 2014 at 11:54:36AM -0700, Pieter Wuille wrote: > > I think a decent argument *for* doing this is that if a script author > > fails to properly 'bool-ize' every boolean-using path that can have > > non-minimal encodings in normal execution, you can always create a > > nVersion=1 transaction manually to spend the output, preventing funds > > from getting lost. Meanwhile in the general case of a compenent script > > author having the canonical bool testing in every boolean-using opcode > > saves a lot of bytes. > > The real question is whether there are use cases for not having this > requirement. I can't come up with any, as that would imply a boolean > that is also interpretable as a hash, a pubkey or a signature - all of > which seems crpytographically impossible to ever result in false. I'm kinda inclined to agree, however there is an opposing argument too: How often is BOOLAND and BOOLOR applied to unsanitised input from the scriptSig? I can't think of a script type where that would be the case, unlike OP_IF where the logical way of writing scripts is to have the scriptSig select which brance you take. In every script I've ever thought of BOOLAND and BOOLOR is applied to stuff generated within the script itself, which isn't a malleability concern. -- 'peter'[:-1]@petertodd.org 000000000000000005f3f265a1636bd90c2c8098093c2db2ccfc91c17890a714