In the Blockstack whitepaper, they contrast their approach to control logic with that of Ethereum, stating “Keep Complexity and Logic Outside of Blockchains… Nodes on the network should not be required to compute complex untrusted programs just to stay synced with the network… We introduce the concept of virtualchains (Section 4) that can build arbitrary state machines on top of blockchains without requiring any modifications to the underlying blockchains.”
However, it wasn’t clear to me, if the logic in virtualchains do not run on blockchain network nodes, then where in the Blockstack architecture does the virtualchain logic run? Who is computing the opcodes that get written to the blockchain? Is it the nodes on the peer network? Or is it the users that are running applications?
I would appreciate any insight anyone can share on this. Thanks.