Steem Smart Contracts: make the sidechain(s) private?

Hi there,

Since days I'm trying to think of the best way to use the Steem Smart Contracts (SSC) tool. The purpose of a sidechain is to add features to an existing blockchain but this tool has to be performant. As of now there is no incentive to run a node so basically no one will run one and as the sidechain will grow the bigger the hosting servers (node) will have to be. (and this could turn into something costly to maintain)

Having a big and unique sidechain doesn't really meet the above conditions if this sidechain becomes saturated and unusable because the nodes aren't performant enough so I was thinking, the best approach will be to have the ability to set private sidechains, by private I mean that only a few accounts would be able to deploy smart contracts on a sidechain.
Let's say you're working on a dapp project and you want to host your contracts with the SSC tool, either you'll have to deploy your own sidechain (basically run a node with the id of your sidechain) or find someone that allows you to deploy your contracts on his sidechain. The sidechains will be actually semi private because only the contract deployments will be, the rest will still be completely public (and owning a sidechain doesn't mean that you can change the smart contracts either).

This will create two type of sidechain economy:

private sidechain

  • only the owner of the sidechain can deploy smart contracts on it
  • the smart contracts are still immutable
  • anyone can interact with the smart contratcs
  • anyone can deploy a node that will run your sidechain (you could incentivize people to maintain nodes for your sidechain (upvotes, etc...)

shared sidechain

  • only a group of person can deploy smart contracts, the owner of the sidechain decides
  • the smart contracts are still immutable
  • anyone can interact with the smart contratcs
  • anyone can deploy a node that will run your sidechain (you could incentivize people to maintain nodes for your sidechain (upvotes, etc...))

However, having different sidechains will imply to have a way of transferring safely assets from a sidechain to another.

I'm trying to make this tool as easy to use and deploy as possible and I'd like it to be a tool that doesn't require crazy servers to run it so privatizing the sidechain(s) could be a solution.

Your feedbacks on this thoughts will be highly appreciated :)

Sort:  

How about charging people to use the sidechain? Everyone that deploys a contract can pay a fee per run? A bit like gas costs in ethereum?

I feel like it will loose one of its main feature if a usage fee is involved, Steem is "free to use" so to me this tool should be too. However, by implementing private sidechains, the "owners" could enforce fees.