[Ethereum] What economic incentive does anyone have to mine Ropsten and other networks

blockchaincryptoeconomicseconomicsminingropsten

Ethereum 1.0 has a basic limitation, as all global blockchains do: each block can only hold so many transactions. Due to this scarcity, every time even one application gets too popular on the main network, gas prices for transactions shoot up. At current prices of ETH, you might end up paying $5 or even $99.

However, developers use Ropsten network all the time. What if the volume of transactions there was the same as on the mainnet? Anyone can get unlimited amounts of ETH on it, so why do miners mine the next block at all? Is it basically a gift economy, that would come crashing down if someone actually deployed a popular app (say, voting on the blockchain) on Ropsten?

I am considering doing just this… meaning I want to build dapps which sidestep the high cost of ETH, and take advantage of the "good-enough" security of Ropsten etc. and also reward our own nodes and contracts in various ERC20 contract currency, rather than ETH. Presumably there are no faucets that just mint arbitrary amounts of arbitrary ERC20 contracts, since the mint methods are actual code deployed by someone. Like our own ERC20 contract… we can tell it to mint on Ropsten to those who send us wires, paypal, ETH on the mainnet, or whatever.

Best Answer

Some answers

Yes, miners mine Ropsten in order to provide a public good, not for profit. Would this disappear if there were to be an app with enough traction to clog Ropsten? Most likely. Ropsten has been plenty clogged before, not due to a popular dApp, but because of spam or 51% attacks. We did not see mining fall off during the attacks, nor did we see it cause ropETH to appreciate in value.

Let's break this into two sections, one about building on Ropsten, and one about building on a testnet in general.

Why you shouldn't build on Ropsten

Main source: Afri Schoeden's EthCC[3] speech

Even though Ropsten might look like mainnet at first glance since both are governed by a straight PoW algorithm, there are a couple reasons why it is not advisable to build on Ropsten.

  • Ropsten is sometimes used as a testing ground for core changes, so your applications may unexpectedly break, and some clients may not be able to support your application
  • Ropsten has been the target of spam attacks before, and has quite unfortunately become something of a testing ground for 51% attacks against Ethereum Classic, so there are also DDOS and 51% attacks to take into consideration

Building applications on a testnet

There are other testnets, though, and some of them offer better security than Ropsten by sacrificing some decentralization. What about building an application on top of, say, Goerli?

Let's break applications into two broad categories: those that predicate a valuable currency, and those that do not. For example, if you are building a blockchain game, you might not necessarily need the underlying ETH to have any value. Dark Forest did precisely this, and released the first three rounds of their game on Ropsten. Starting with v4 they released on xDai, though I am not aware of any public explanation for the migration. If this fits your use case, you may want to contact them to ask their experiences running on a testnet. (If you are set on running on Ropsten, than you can ask them about that specifically, too.) In other words, it may be possible to build a production-grade application on a testnet if it does not count on having a vluable currency integrated, and if the builder and users are comfortable with the consensus and/or security tradeoffs.

The OP's question seems to indicate deploying an ERC20 token to a testnet, though. The question becomes if the ERC20 could have value on a testnet, at that point. I cannot think of a clear reason why it would not be able to have value; if there is organic supply and demand, the supply and demand should be able to give the token a value. That being said, the token will lose the network effects of being able to interact with the ETH ecosystem. You would need some kind of bridge to ETH, as being an ETH testnet does not mean that there is a way to access mainnet contracts, just that the testnet itself resembles mainnet's architecture.

If you do need interoperability with the ETH ecosystem, you would need a bridge between the testnet and mainnet. At that point, I would recommend looking at building on L2 solutions, or a chain that is already bridged, such as xDai instead of building on a testnet. You may still need to deploy a contract on mainnet to mirror your token contract, wherever it is, but interaction with your "original" token contract, whether it is on a L2, side chain, or testnet, would remain cheap (or potentially free).

An extension of this arises if the ERC20 token being deployed is intended to be collateralized. If the OP's ERC20 token is deployed on testnet, the collateral would also need to be there. Here, even if there is a bridge or an oracle (such that the collateral can be on mainnet), moving the collateral around mainnet will still incur the gas prices of mainnet. To elaborate a bit more based on a question in the comments, DAI and other stablecoins don't exist on testnets in a way that has any value (though I think there are test implementations of DAI on various testnets, and the Oasis app can open up a vault on Kovan); what would collateralize them? The testnet ETH is worthless, so how would the DAI derive any value? It may in theory be possible to create an algorithmic stablecoin on a testnet, though they are currently (Jan 2021) not very stable. In theory I don't see why USDC or Tether couldn't decide they were releasing a stablecoin collateralized off-chain on a testnet, though know of no plans to do so. Testnets, at the end of the day, are viewed and maintained as places to test.

Hope this helps, and happy building!

Related Topic