While adding an EVM to a feeless network might not be a good idea, I’ve come across the following solutions that might be perfect in our case:
- GitHub - starkware-libs/cairo: Cairo is the first Turing-complete language for creating provable programs for general computation.
- GitHub - facebook/winterfell: A STARK prover and verifier for arbitrary computations
This could allow users to do all the processing off-chain and only store on-chain the following components:
- compiled contract
- execution proof
- inputs (parameters)
- outputs (result)
Why is this better than EVM?
On EVM when a user interacts with a smart contract, all the nodes in the network need to execute the contract and every new node needs to re-execute all the smart contract interactions when it syncs.
Using Cairo + Winterfell, on the other hand, nodes would only need to verify the proof and all the execution is done by the user off-chain, only once.