We investigate the strategy where miners mine empty blocks to reduce the uncertainty of mining a block which is invalid because it contains a transaction that is already included by another block. In this case, the miner is aware of the new block, already has its hash and/or header, but has not downloaded the rest of the block which contains the transactions.
A lazy miner mines an empty block every seconds on average, and receives only . An honest miner mines a full block including transactions that add up to every seconds and receives .
The revenue per second of a lazy miner is
The revenue per second of an honest miner is
In order for a rational miner to choose the honest strategy, must be satisfied, giving us the following condition for the gas price
If assume that block time is a linear function of the gas in the block, we get the following formula for block time
which also gives us the following formula for the revenue per second
For the miners to be incentivized to include as many transactions as possible, the revenue must be an increasing function of the gas amount, i.e. . Taking into account that all variables are positive, this inequality yields the same condition for gas price that we have obtained above.
The linearity assumption should not be a problem as long as processing time scales linearly with gas amount, and its effect on the time required to hash the block is negligible.
Research has been done on Ethereum that miners used the lazy strategy from time to time. There, empty blocks are mined in ~13.2s and full blocks in ~14.6s, with a difference of ~1.4s on average. From these, we can calculate the minimum gas price that should be attached to the transactions, so that miners are incentivized to include them. We substitute , , , (these values are from the time of the article–-they have been changed since then, namely 3->2 and 8m->10m), which gives us roughly
This is close to but higher than the average gas price that we are used to in the last couple of years. In fact, gas price was in the 2-10 Gwei range at nominal demand, but historically went up to 40 Gwei and higher when demand surged and blocks became full.
The result is unexpected: the gas price at nominal demand is not enough to incentivize a miner to mine a full block. Let's assume that the gas price stays at 4 Gwei. The difference in revenue between mining an empty block and mining a full block is 3/13.2-(3+4e-9*8e6)/14.6 ≈ 0.0196 ETH/s
. That makes a ~1700 ETH "loss" incurred per day by the totality of Ethereum miners, comparing the case where everyone mines empty blocks with the one where everyone mines full blocks. However, if everyone started mining empty blocks all of a sudden, two things would happen:
For these reasons, the number of miners following the lazy strategy has been limited.
Formulation of a lazy strategy for Highway is similar to that of Proof of Work, but also fundamentally different. In Proof of Work, the difference between durations required to mine an empty block and a full block are generally smaller than an order of magnitude. Majority of the time between blocks is devoted to hashing, so the spread could never be too high, such as 15s for a full block and 2s for an empty block.
In Highway, however, it is the feature of the protocol that round lengths are adaptable. Without hashing, the duration between blocks is only devoted to
(1) and (2) are directly proportional to block fullness and size, so by proposing empty blocks, validators could dramatically increase the frequency at which they propose. For example, an empty block on Ethereum is around half a kilobyte, whereas the average block is around 25kB. If Highway had a similar distribution of block sizes, validators could collectively choose to propose an empty block every 2 seconds, as opposed to a full block e.g. every 15 seconds. Such a situation would be very destabilizing for a protocol which had constant block rewards. Thankfully, Highway's reward distribution is designed in a way that mitigates such malicious strategies.
To compare lazy and honest strategies, we introduce a similar toy model:
We consider and compare two versions of the validator set:
Quantities subscripted with "lazy" will correspond to the group from (1) which proposes empty blocks, whereas quantities subscripted with "honest" will correspond to the group from (2) with the same weight, but proposes full blocks. Also, note that sets a lower limit to , because a block with an assigned weight smaller than that does not earn any reward. Since is greater than 1/2 for a nonzero fault tolerance threshold, we can also say that
for a rational lazy group [1].
We assume that validators receive rewards proportional to the number of the blocks that they propose, i.e.
The era reward is shared among the two groups. We also assume that their seigniorage payout is proportional to the number of blocks that they propose[2]:
whereas
Formulating payouts in such a way will give us the ability to find out for which size of a lazy group are the payouts to the lazy group is maximized. We define the difference in a way that is independent of the total era reward:
We keep in mind that and for a lazy strategy to work. Solving for , we obtain weight of lazy validators which results in the maximum seigniorage payout:
To simplify our model, we define and substitute it above:
We then explore the values takes for . The minimum and maximum are and respectively, and increases monotonically in between. We can observe this by looking at the maxima (red dots) for different in the figure below:
The result is significant: the lazy group would ideally emerge at a size which maximized their payout, i.e. . However, we also have the restriction from above. Therefore, if a validator coalition with a lazy strategy were to emerge, they would want to keep their weight just above , because a higher weight would result in diminished payout compared to being honest. For that reason, we will assume that when comparing payouts including transaction fees below.
In addition to their seigniorage payout , the honest group would receive transaction fees. Total payout for each strategy is then
Although , we will equate it to 1/2 to simplify the equations. Then substituting , we obtain
For a rational group of validators to choose the honest strategy, must be satisfied. This gives us a condition for price similar to the previous section:
Payouts are similar to the previous case, but this time collected fees are shared proportional to weight among all validators:
We substitute again:
In that case, the terms with the gas price cancel out and the condition can never be satisfied for .
Reward distribution in Highway is actually a bit more complex: we assign reward weights to each block, which determine the amount of block reward for a given block. Since the reward weight is proportional to the weight of validators that have announced to participate on that block, lazy validators would receive less rewards than what is used in the toy model, because they would be going faster than honest validators, participating on blocks with low reward weight. ↩︎