Carrying on, if the rule on double-spends in order to defend against the attack I described is that all double-spends are invalid (since I have already shown the game theory that it is impossible to conclude which one has more weight[1]), the attacker can introduce double-spends at any time to reverse historical transactions. Thus the coin would be entirely untrustworthy and thus that rule can not be chosen.
We can't use time, remember there is no clock and no time. The only metric we have is cumulative PoW weight.
[1] In case my elucidation upthread was not clear, the more general flaw is that when a double-spend appears there is no way to know which of the chains will end up having the most weight. The attacker for example could continue appending transactions to the shorter chain. The honest payer has no incentive to risk it and will just choose to reference chain which has no conflict. Thus the attacker has all the PoW resources on the chains with double-spends. Iota's white paper makes the assumption that the honest payers will follow a different rule, but why would they follow a rule which pits them against the PoW resources of the attacker? They have no way to know how much resources the attacker has. Also they have no way to know how long ago the attacker precomputed a chain and is hiding it in wait. A few attacks by powerful adversaries will teach payEEs that they do not accept transactions from conflicting chains. The generalized description of the flaw is in addition the natural latency case of the flaw I described upthread.
But the key point is that due to latency (or the attacker just delays issuing the double-spend slightly), there will be some honest transactions on the tips of the double-spends. Thus the attacker can jam Iota because no payers will reference those transactions so they become orphaned. I haven't computed what level of PoW resources the attacker needs to effectively jam all transactions under the game theory assumption I outlined.
monsterer continues making the nonsense the that following transactions are not invalidated by the double-spend (DSPEND -> GOODA -> GOODB), but that is not the point. They become orphaned. Is there something not clear about the different meaning of those two words, orphaned and invalidated.
The fundamental problem is a DAG has no reference point. This is why all crypto currencies needs a single LCR with blocks. I await Fuserleer's design.
My early opinion is Iota's white paper makes assumptions that are not realistic. I will need to spend more time on it to be more forceful in my conviction.