A signer modifying the order of inputs or changing outputs when "re-signing" a transaction (which already has dependent child transactions spending its outputs) seems like quite a different hazard than a malicious third party modifying a transaction in the mempool by twiddling opcodes in the signature scripts.  The former seems like more a matter of keeping your own house in order (an internal affair) while the latter is an external threat beyond the transaction writer's control.

While I agree that having a canonical ordering for inputs and outputs might be useful in some cases, there are also use cases where the relative positions of inputs and outputs are significant, where reordering would change the semantics of the transaction.  SIGHASH_SINGLE, for example, makes an association between an input index and an output index. Open Asset colored coins are identified by the order of inputs and outputs.

Let's keep canonical ordering separate from the normalized transaction ID proposal. Baby steps. Normalized transaction IDs provide an immediate benefit against the hazard of third party manipulation of transactions in the mempool, even without canonical ordering.  

-Danny





On Wed, Oct 21, 2015 at 1:46 AM, Luke Dashjr via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
On Wednesday, October 21, 2015 8:44:53 AM Christian Decker wrote:
> Hm, that is true as long as the signer is the only signer of the
> transaction, otherwise he'd be invalidating the signatures of the other
> signers.

Or he can just have the other signers re-sign with the modified version.
Even if it only worked with a single signer, it's still a form of malleability
that your BIP does not presently solve, but would be desirable to solve...

Luke
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev