I am struggling to come up with reasons to launch a dApp intended of reaching significant size completely on the main chain vs a customized side chain. I think either would utilize a token. By completely on the main chain, I mean by having to buy/hold/lease EOS to stake for CPU, NET, and RAM (IPFS later) to run all contracts associated with changing the state of the system.
I can see the argument for dApps that amplify the current chain's usability (like Scatter, EOS Tool kit, etc) but I'm not seeing much benefit for many other proposed dApp ideas. (Ono, and others, are launching a side chain)
When a dApp scales and its contracts receive more activity, that dApp developer will have to go out to the open market and purchase/lease additional EOS to perform operations. I believe this cost would be higher by comparison on average over time to a side chain in part to reasons explained below.
In the case of launching a typical large dApp, I think the interaction with the EOS main chain should be limited to:
- Air dropping tokens to provide a decentralized distribution
- Enabling IBC
- Using eosio's constitution as base constitution
- Using eosio's arbitration system
- Voting on WPs / BPs
And in the case of bootstrapping:
- Courting BPs for side chain
- Using EOSIO to host MVP
Aside from that, I think the benefits of launching a side chain are much better.
- Fee-less transactions
- Reduce total BPs needed to run the system
- Host eosio complementing constitution
- Host CPU / NET / RAM / IPFS for developers to build
- Reduce latency down to potentially 20ms with 1 producer
- Scale costs with side chain's inflation