← Back to team overview

mimblewimble team mailing list archive

Re: Fee burning and Dynamic Block Size


> Is the total miner reward calculated as: BaseReward - Burn [BaseReward * (N
> / MaxN)^2] + N * TxFee ?

That's a simplification of the general formulation where all
transactions have the same #inputs,
#outputs, #kernels, and fee.
The burning can be implemented either as a reduction in reward, or we
can have a burn output
in addition to the 60G reward output.

> If so, for a miner to maximize reward, would they solve for 0 marginal
> revenue Reward * 2 * (N / MaxN) + TxFee = 0 instead of solving for burn

That would be R * -2 * N / MaxN^2 + TxFee = 0,
giving N = MaxN^2 * TxFee / (2 * Reward)

> neutral i.e. Reward * (N / MaxN)^2 = N * TxFee?

No, this does not maximize payout to the miner. This is including more tx than
the above optimum to reduce the payout back to the 60G reward.

> That is to say, for the 1mG case, the miner would choose to include 8
> transactions to get a 60.004G reward; and for 0.1G case, miner would opt for
> ~833 transactions to get 101.7G reward.
> A minor difference but I just want to check my understanding. If that is
> correct, here is an interactive tool for people to play with different
> settings: https://beta.observablehq.com/@saurfang/grin-dynamic-block-rewards
> Feel free to be creative and add different burn functions in the BurnFuncs
> cell or add additional simulation features. I have included a targeted block
> size version without the burn free block size variable.

Thanks for providing the insightful notebook. The targeted block size formula
make little sense to me though; it would incentivize miners to add
spam tx to blocks
when the mempool is relatively empty.


Follow ups