For asset transfers, I need to think about the harm that can be done and whether the same problem applies. For scripting (with external I/O) it is clearly impossible to assume/enforce strict partitioning of state.
Case in point: atomic cross chain transfers. That's the realisation of the failure in contemporary blockchains. I don't believe it causes a breakdown of the nash equilibrium, though - the miners still follow their usual rules.
For readers, what monsterer is pointing out here is that the design of decentralized cross-chain (meaning two coins' block chains, not two candidate chains for the same longest-chain-rule block chain) exchange suffers from if either block chain orphans the block that the other block chain depended on, i.e. that a chain reorganization on one block chain of one coin isn't enforced on the other coin's block chain, thus one of the parties in the exchange steals from the other (because the one keeps the coins on both chains).
So monsterer is offering this as an example where even for only asset exchange block chains (i.e. no scripting), there is the case that external factors can cause the "system" to fail from the perspective of the user.
And this is the main problem with Blockstream's proposed Side Chains, in that chain reorganizations could cause a cascade of failure, which thus seem to make Side Chains totally insecure and unworthy of adoption. Some people have argued that exchanges could be delayed by sufficient confirmations, but remember that with proof-of-work a lie-in-wait 51% attacker can rewrite the entire block chain. Then again others point out that we are screwed any way with a 51% attacker and that the community will organize. Note I rebutted this in my video, by explaining that community can't organize. Please watch my video to get the full explanation. Note that the Chinese mining cartel already controls 65% of Bitcoin's hashrate and has vetoed any block size increase, not even allowing the doubling of block size for Bitcoin Classic, thus this has shown the community can't overcome a 51% attack.
You might argue that the author of any script which disobeys these hidden dependency rules isn't following the rules of the system.
For monsterer's example (not Side Chains), I argue that the user is capable of associating that failure with incorrect use of the system and localized to use of a decentralized exchange. Whereas the distinction from the partitioned scripting case is that users wouldn't even be able to know what service they used had caused the failure, because the failure could occur derivatively due to intertwined cascade from other scripts. In short, the users (or programmers) of violating scripts may be aware that the assumption of cross-partition has been violated, but
the rest of the users would be incapable of making this determination!
The question is: is this problem actually fixable in theory? Can you imagine a system whereby a single transaction contains multiple downward dependencies which potentially merge partitions? Is there a case where a conflict in ordering dependency can occur between scripts?
Even the script can't stop a user from copying data from one partition to another. So even if Ethereum only runs authorized and vetted scripts, this afaics wouldn't totally ameliorate the issue.
Edit: Of course (external) I/O from scripts can input to other scripts in a myriad of cascade and permuted entanglement.
When I write 'external I/O', I mean differentiated from referencing some data on the block chain as an input, e.g. UXTO. You see that for asset exchange, the data is deterministic because all I/O must sum to 0 and the directed acyclic graph assures us there is no recursion of the state.
Edit#2: It appears to me that for asset exchange all I/O is deterministic. For scripting, this is not the case due to external I/O, not even without partitions! But at least without partitions, then scripting apparently doesn't violate the Nash equilibrium in the sense that all scripts are validated by all validators (thus there is no way for the validators for a partition to lie to the other validators). Whereas in partitioning, sufficient (w.r.t. to the consensus-by-betting resolution) validators might lie about their partition (i.e. pursue another strategy) since that is another game theory strategy that is introduced by the partitioning given that the partitions can't be enforced externally. The distinction is about Nash equilibrium. Per
the definition of Nash equilibrium, then validators pursing another strategy (i.e. lying) destroys the Nash equilibrium.
No script fails from the perspective of the block chain. The external users see failure, because only the external users are aware they violated the strict partitioning of state. And thus the spaghetti of external failure becomes as intertwined as inputs and outputs from many partitions cross-pollute cascades and intertangled scripts.
Edit: the block chain thinks it is validating the block chain because it erroneously thinks strict partitioning is enforced. External users see that validation is failing, because they violated the assumption of strict partitioning by cross-polluting the state via the external I/O of the block chain. Thus holistically and systemically there is failure (from the perspective of the external users and thus the coin's market value plummets as users abandon the system due to failures).