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.


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!

  • 1
    Thanks for your extensive answer! Are there any stablecoins on the testnet, such as equivalents of USDT or DAI? I guess we could start our own fund selling the ERC20 fuel tokens in exchange for real dollars, but it would be nice if there were synthetic dollars on one of the testnets already. – Gregory Magarshak Jan 6 at 23:29
  • Our smart contracts are about sending real value, which would normally be pegged to dollars. For example payouts (github.com/Intercoin/IncomeContract) or contests (github.com/Intercoin/ContestContract) so we could def use a stablecoin. How would we use xDai in what we are doing? I realize I should probably ask a separate question, but maybe you can elaborate here. Is xDai bridged to Goerli or other testnets? What do you mean by "Starting with v4 they released on xDai"? We need the transactions to be cheap, but still have a stablecoin bridged to our testnet. – Gregory Magarshak Jan 6 at 23:37
  • There are test versions of various stablecoins on testnets, but none have market value. If you think through the ways that stablecoins get their value, a number of them couldn't really work on testnets (at least without bridging). – The Renaissance Jan 7 at 10:16
  • The xDai suggestion was meant as suggesting building on xDai instead of building on a testnet. I'll update the answer to make that a bit clearer. – The Renaissance Jan 7 at 10:17
  • is xDai capable of supporting smart contracts, is it compatible with Ethereum? – Gregory Magarshak Jan 7 at 16:50

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

Yes, Ethereum 2.0 aims to solve this problem by bringing more scalability through the use of side chains (shards). There is also the EIP-1559 (https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) which currently attracts a lot of attention : this proposition seeks to reduce transaction fees by implementing a new transaction pricing mechanism.

However, developers use Ropsten network all the time. What if the volume of transactions there was the same as on the mainnet?

That's very unlikely for these two main reasons :

  • Ropsten is, as you said, used by developers (for testing purpose) and test ethers (faucets) have no value. All the business happens on the mainnet and today Ethereum is used by non technical people. For example, Uniswap has a volume of several hundred million dollars per day. This is huge. In addition, “pending transactions” is a good metric to measure the difference in transaction volume between the mainnet and Rospten. As I write this answer, the mainnet is recording 125k pending transactions (https://etherscan.io/txsPending) while Ropsten has only 30 pending transactions (https://ropsten.etherscan.io/txsPending ).
  • There is one mainnet and several testnets (Ropsten, Rinkeby, Kovan, Goerli,...). Therefore, if one testnet is overloaded, users can migrate to another.

Anyone can get unlimited amounts of ETH on it, so why do miners mine the next block at all?

You are limited in the number of faucets you can request per hour. That's because the number of faucets, although very large (more than 1 000 000 000 000 according to https://teth.bitaps.com/), is limited on Ropsten.

What economic incentive does anyone have to mine Ropsten and other networks?

Most of the Ropsten miners are developers wanting to improve the dApp development on Ethereum by providing a test network, mirroring the main one, and where everyone can practice. They also gain a lot of faucets which saves them time and allows them to test their smart contracts more effectively. I believe the majority of those who maintain test networks are not actually motivated by economic incentives, but rather are enthusiasts who want to improve Ethereum.

On another side, there are several faucet websites with a ton of advertising and asking for registration. I wouldn't be surprised if they sold data registration (email, etc) to third parties. It is clear that some testnet miners try to take advantage of their faucets.

can they be used (the testnets) for smart contracts that expect payment in custom ERC20 tokens

To answer the last part of your question, you can create any dApps on a testnet and manipulate faucets and tokens. However, this is for testing purposes only and all ethers and tokens on it have no value.

You mention the "good-enough" security of Ropsten. Note that PoW testnets such as Ropsten are not very secure, as the amount of power needed for an attack is not quite expensive. It happened in the past (Ropsten testnet is under kind of attack? What can we do?).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.