On 12/02/15 22:13, Luke Dashjr wrote:
Where is the Specification section?? Does this support arbitrary scripts, or
only the simplest CHECKMULTISIG case?
The BIP is a process for deriving only the type of scripts you would
encounter doing addmultisigaddress. More complicated scripts would
require more metadata to be shared, but the only case we describe is
when given public keys and the number of signatures required.
You're right, we're missing a Specification. I have tweaked the
document to cover this now.
On 13/02/15 07:53, Peter Todd wrote:
It might be enough to rewrite this BIP to basically
say "all pubkeys executed by all CHECKMULTISIG opcodes will be in
the following canonical order", followed by some explanatory
examples of how to apply this simple rule. OTOH we don't yet have
a standard way of even talking about arbitrary scripts, so it may
very well turn out to be the case that the above rule is too
restrictive in many cases - I certainly would not want to do a
soft-fork to enforce this, or even make it an IsStandard() rule.
It would be interesting, but I agree it should not be brought into
these validation rules - just a convention for people to follow for
now. I think it's fair that implementers are free to order them
however they please. But I think there is good reason for wallets to
opt in to the convention and declare this, for ease of recovery, and
for interoperability reasons.