Hi Dimitri,
Michael Smolenski

Interesting. So you’re trying to split state from function. I hope more people will adopt that strategy when designing smart contract platforms :). It makes sense to make the state recording IO bound and the compute consensus process bound and async.

So, if I get it right: the compute consensus at the application layer (ie smart contract state) is only to be verified by nodes that have access to the secure vault that stores the referenced state messages. UTXO consensus on extending the state with new messages is achieved by all nodes.

What would happen if a state message yields erroneous execution. It seems a bit like permissioned nodes can arbitrarily add state messages irrespective of final the turing state. But maybe I am missing something?