No problem. I’d be really interested to discuss that separately though :).
[A6] is pretty similar to what we do currently. The issue with A6 is its susceptibility to front-running: if Alice has to include the data to recreate existing storage hash in her transaction, and Eve manages to get a transaction that changes the storage state mined first, then Alice’s transaction will fail. If Eve can do this consistently, she can prevent any of Alice’s transactions from being mined.
That said, we probably should include A6 for completeness sake. I guess O7 is really “make no change”, which should definitely be an option!
For anyone interested, we’ve now updated the force-move contracts to use checkpoint
over respondWithAlternative
and @AndrewStewart currently has a PR open to implement a proof-of-concept for storing the turnNumRecord
and finalizesAt
in the storageHash
. There’s also a separate discussion on whether this approach is sufficiently secure.