Hey zathras,
thanks for the answers.
Both perfectly still redeemable by the same private key but the addresses differ, hence confusion.
No objection for compression at all, but I think the "02" and "03" is in the wrong order. At least according to brainwallet.org.
pubKeyUncompressed % 2 == 0 -> 0x02 + ...
pubKeyUncompressed % 2 == 1 -> 0x03 + ...
My question is how to deal with those and other non-data-package-and-not-the-input-pubKeys in the future.
There is an amendment to the spec that needs to be made - it's actually not largest input, it's largest input by sum - so the input address is selected from the address that contributed the highest sum input value.
Ah, I see. Well, not much a difference. To get the sum you'd need to query the blockchain for each input to determine which one is used as input. But is this really needed on such a deep protocol level? In my opinion keeping things simple and more atomic may be preferred.
Sequence numbers are there for packet ordering, though there may be some shortcuts/assumptions in Masterchest code that assume a given packet order in the multisig (but that's not a spec problem, that's just code)
Yes, it's used for ordering, but the trouble starts, if you don't know the order before trying to extract the sqeuence numbers. Say you have 4 packages, one of them is your input pubKey, so we can remove that one, the other three are unknown. You may now create three SHA512 hashes of the input pubKey according to the spec and then try to deobfuscate each package with each hash - that's six combinations. If you find a combination which results in a sequence of 01, 02, 03 it would be perfect, but what if one of the pubKeys was actually not a properly and valid encoded data package, but something else? That's why I posted the transactions with unknown or potentially prefix-swapped pubKeys. This could lead to collisions and it's no longer clear, if it's indeed a data-package with sequence number n or simply junk that appeared to result in a conflict. Well, in the later case of compressed pubKeys with swapped prefix it wouldn't be a problem, because the first byte is stripped, but the broader issue remains and I'm trying to see this as general as possible. Maybe I miss something essential the whole time?
OK great - it's good that you two work the same way, but do you guys not see this as a massive flaw? User A has accepted 100 MSC and made full payment within the allotted timeframe, yet only receives 70 MSC?
That's indeed counterintuitive.