A few months ago I started writing the Virtual Machine (VM) that will power the new 2nd layer Smart Contract platform I'm building for Hive. Building a VM is not that complicated. Really. Where I'm struggling right now is how to build a Smart Contract platform that's user and dev friendly.
There are different approaches to fuel Smart Contracts, but so far none of these has proven to be the best. Ethereum is one of the best place out there to host your contracts, the problem is that the gas implementation is just ridiculous. The speculation on Ether ruined it. Then you have EOS. The idea on paper is good, but it turns out that speculation ruined it too...It seems obvious now that if you want to run a Smart Contract platform on the cheap side you'll have to make up a way to fuel it with something that people won't speculate on.
That's when it gets very difficult because you also have to think about people that will run your software. No one will do that for free. So you have to find a way to remunerate them as well.
One idea is to make the platform's utility token a stable coin. 1 utility token would represent $1 on the platform. That's achievable through oracles, you just need to provide the smart contract platform with the price of Hive periodically. The Hive tokens received (in a centralized account) would be used to pay for the nodes owners and the platform developments.
Also, what I want to do is to let the devs of the smart contracts choose who will pay for the storage and the execution of their contracts. Let's say I need to issue tokens, then me, the developer, will pay for that. The users want to transfer tokens to someone else, then maybe I'll make them pay for that. (That's one thing I like about EOS, you decide who pays for the storage).
What do you think about these ideas? How would you fuel your smart contract platform if you were to create one? Don't tell me you would make it "free" for everyone, there's no such thing 🙂
PS: I'm planning on setting up a testnet soon. Maybe I'll first release a version without "gas" or maybe something where you'll be limited on how much "storage"/"execution time" you can use.