← Back to team overview

mimblewimble team mailing list archive

Re: On block rewards

 

dear Seamus,

> The 7 years of rewards, plus the many hints at eventually switching to Proof
> of Stake and reducing rewards, make Ethereum an altogether bad point of
> comparison. Around 72 million coins were distributed via the crowdfunding
> sale and to the foundation/developers. Then another 12 million or so per
> year in their flat emission. That meant in inflation rate for that first
> year was less than 17%, and fell below 15% in the second year.

Yes; large ICOs limit inflation.

> Perhaps at the 9-year mark, that's not so bad... 11 percent drops to single
> digits in another year, drops below 5% in another 10 years. But those first
> 9 years are brutal to anyone using the coin as a store of value,

Yes; grin would look unsuitable as store of value (HODL unfriendly)
for the first few decades.
Only those who expect long term price growth will risk
substantial investments during this time.

> **unless user and transaction growth match the emission growth**.
> That is what needs
> to be considered here... the ramifications of a flat reward on users of Grin
> during the nascent years of it's chain. If the primary use is pegged
> confidential assets of other coins, than it's perhaps not a big deal. If the
> primary use is as a currency itself, then it's everything. It might be okay,
> but it deserves discussing.

The strong privacy, fungibility, and scalability features do suggest an
emphasis on use as a currency rather than a store of value.

> Of course, if a fee system is implemented that burns fees a la Peercoin (as
> has been suggested by some), then the inflation in the system is effectively
> decreased.

This will be a small effect though, as long as fees remain a small fraction of
block reward.

> The only deviation I"d like to make from that is a slow start, where
> block rewards are initially zero. This allows everyone to setup and
> test their miners and pools in a relaxed manner, no matter their
> timezone, and offers a unique opportunity to advertise an already
> up-and-running coin where people can still get ready to mine the first
> reward.
>
> Testing setups can be just as easily done via a testnet, and it is highly
> unlikely any large miner will test for any prolonged period.

The Zcash launch exposed many problems with mining services and pools
that were not exposed via testnet.

> The question is how long the slow start should last. To cover all
> timezones, it should be at least one day. Preferably a few. A week is
> probably more than enough. I propose two options:
>
> 1) At a fixed block height, [rest omitted for brevity...]
> 2) As soon as difficulty stabilizes [rest omitted for brevity...]

> A prolonged period of 0-reward blocks would be a mistake. First off, there
> would literally be 0 coins. What do you do with a chain with 0 coins?

You can make no-fee zero value transactions. 0-value outputs are like
karma points you can freely hand out. They allow you to test wallet
functionality without worrying about mishaps.

> Second, no reasonable miner would spend any longer mining than she has to in
> order to make sure she is set up correctly. Minutes, maybe hours at most.

You still need to cover all timezones to give miners worldwide a
chance to get setup for the first nonzero rewards.

> The problem here is that the first days or weeks would have basically no
> work behind them, which basically means that come day 1 of the block
> rewards, the chain is still basically 0% secure.

Security is not much of an issue with all outputs having 0 value.

> But even more problematic,
> any reasonable miner will just wait until the rewards start and then start
> mining, which will accidentally turn the whole thing into a small instamine
> because the difficulty will be too low.

Some miners may do that; but I expect a decent fraction, particularly
enthusiasts, will be happy to solo mine for a few days. If only for
the excitement of winning a block and being able to hand out free
karma
points for others to play with.

> Setting the difficulty overly high is an interesting idea, but only under
> scenario 1, and only if the difficulty adjustment algorithm would not allow
> the difficulty to adjust down to lower-than-expected-demand levels. Amending
> scenario 2, you would want to set the difficulty low, and then have some
> threshold of "X blocks over Y difficulty" as your activation. Going
> high-to-low (depending on the difficulty adjustment algorithm) would just
> further play into the hands of anyone waiting on the sidelines, as not
> mining is the best way to drop the difficulty.

I think option 2) no longer appeals much to me. I realized that a
high hashpowered attacker could keep delaying the nonzero rewards,
so it would need to be further complicated by widening the allowed
difficulty difference over time.

> Realistically, if you want to have 0-reward blocks as a startup, the best
> option is probably to set a constant difficulty for that period that is
> based off a best-estimate of the expected hashrate on Day 0, and then a
> target block height that will be the first block with rewards. As initial
> demand is very difficult to estimate (would requiring looking at recent
> launches of other coins), a mechanism could be put in place that will adjust
> the initial difficulty up but not down during that 0-reward period... as
> more miners ramp up to join, if it turns out there are more than expected
> the difficulty can adjust before rewards happen, avoiding an instamine.

Difficulty adjustment is based on a window of recent blocks. If that
window were to correspond to one day, then it is natural to not make
adjustments until a whole window of data is available. Afterwards,
there are limits to how fast difficulty can drop, and it should take
many days before it drops enough to allow for 1 second block intervals
(what i take instamine to mean). We
can set the blockheight for first-nonzero-reward to allow for only a
few difficulty halvings.

> But I don't really think a 0-reward start is a good idea... there's too much
> guesswork involved, and I'm not sure that it actually achieves any tangible
> benefit.

Giving every miner a chance to get setup in relaxed manner with the
actual live chain should not be dismissed as an intangible benefit.

> Something on the order of 1 day might be acceptable, but any longer
> is just missing the point. The simplest model for avoiding an instamine and
> allowing people to ramp up has already been played out in a number of
> cryptocurrencies: slowly increase rewards over a 1-2 week period, allowing
> block rewards to somewhat scale with mining demand, and have a good testnet
> available before launch for miners to test out if they would like.

Are you claiming ZCash had a smooth and insta-mining free launch?

> If someone sees reason to be there from the start, then they will
> make sure they are available and ready to go.

Why make them go to any trouble at all?
Why not be the first coin in cryptocurrency history to relieve any
burden for being ready for the first reward?
Why not strive to make the launch as fair as possible?
Even if the financial impact is negligible, perception is very important...

regards,
-John


Follow ups

References