Ethereum has a dynamic gas limit, a market governed by the miners. Does the block difficulty change if the gas limit is changed? For example with an increased gas limit from 3 million GAS to 6 million GAS, would the block difficulty increase, or is the miner reward adjusted, or how is the crypto economic game theory balanced for different gas limits?
1 Answer
No.
Currently, difficulty is computed as:
adj_factor = max(1 - ((timestamp - parent.timestamp) // 10), -99)
child_diff = int(max(parent.difficulty + (parent.difficulty // BLOCK_DIFF_FACTOR) * adj_factor, min(parent.difficulty, MIN_DIFF)))
As you can see, there is nothing about gas in the formulas.
A Metropolis EIP to adjust the difficulty also does not involve gas:
adj_factor = max((2 if len(parent.uncles) else 1) - ((timestamp - parent.timestamp) // 9), -99)
The block gas limit in Ethereum is similar to the blocksize in Bitcoin, and has similar game theory. Basically, higher block gas limits mean a miner can include more transactions in a block and thus collect more fees. But larger blocks take more time to propagate in the network, increasing the chance that one won't be the "winning" miner. Ethereum also implements some GHOST: basically the added rule that "runner-up" miners still get their blocks included in the blockchain as uncle-blocks and still get a portion of the mining reward. So the analysis isn't as clear-cut as winning/losing the block reward and see https://blog.ethereum.org/2016/10/31/uncle-rate-transaction-fee-analysis for more analysis such as:
In Ethereum’s current environment, block rewards are 5 ETH and will stay that way until the algorithm is changed. Accepting 1 million gas means a 1.86% chance of the block becoming an uncle. Fortunately, Ethereum’s uncle mechanism has a happy side effect here: the average uncle reward is recently around 3.2 ETH, so 1 million gas only means a 1.86% chance of putting 1.8 ETH at risk, ie. an expected loss of 0.033 ETH and not 0.093 as would be the case without an uncle mechanism.