Hi all, one of the rules in BIP62 is the "clean stack" requirement, which makes passing more inputs to a script than necessary illegal.
Unfortunately, this rule needs an exception for P2SH scripts: the test can only be done after (and not before) the second stage evaluation. Otherwise it would reject all spends from P2SH (which rely on "superfluous" inputs to pass data to the second stage). I submitted a Pull Request to clarify this in BIP62: https://github.com/bitcoin/bips/pull/115 However, this also leads to the interesting observation that the clean-stack rule is incompatible with future P2SH-like constructs - which would be very useful if we'd ever want to deploy a "Script 2.0". Any such upgrade would suffer from the same problem as P2SH, and require an exception in the clean-stack rule, which - once deployed - is no longer a softfork. Luke suggested on the pull request to not apply this rule on every transaction with nVersion >= 3, which indeed solves the problem. I believe this can easily be generalized: make the (non mandatory) BIP62 rules only apply to transaction with strict nVersion==3, and not to higher ones. The higher ones are non-standard anyway, and shouldn't be used before there is a rule that applies to them anyway - which could include some or all of BIP62 if wanted at that point still. Opinions? ------------------------------------------------------------------------------ _______________________________________________ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development