Skip to content

Please consider removing the magnitude unit #1578

@a123b

Description

@a123b

When I saw issue #768, I realised that it could possibly allow to drop one of my top "annoyances"
in Gridcoin: the magnitude unit.
This motivated me to write this "proposal".
First, I'd like to mention that I don't even think I'm really qualified enough to talk about such important consensus rules, so please look at this more like a general idea than a definite proposal. So even in case there are some flaws in here, I hope it will start some discussion about this among the developers that could lead to much more fairness in the upcoming new reward mechanism than in the current one.

Proposed changes

  • Instead of using only the latest superblock and the one that was used for the last PoR stake,
    calculate the reward based on all superblocks in between.
    This has already been proposed as Base PoR rewards on superblock windows #768.
  • Use blocks as time unit instead of actual unix timestamps, with a PoR emission target of
    28800 GRC per 960 blocks (as defined by the CBR poll result)
  • Remove the magnitude unit, as the two points above have just made it obsolete.
    Total GRC rewarded for research per 960 blocks (~daily) per magnitude will now be constant:
NEURALNETWORKMULTIPLIER = 115000
POR_EMISSION_TARGET = 28800
GRC_PER_MAG_PER_960_BLOCKS = NEURALNETWORKMULTIPLIER / POR_EMISSION_TARGET
  • (Maybe raise the neural network multiplier to 115200 so that this constant will be an exact 0.25?)
  • (Alternatively, redefine magnitude as "GRC you get per 960 blocks" and use the emission target itself as neural network multiplier?)

Why?

As it is right now, you can gain a slight advantage by switching to investor mode when the mag unit is low and only start staking with your CPID when it gets higher (assuming your magnitude is fairly constant). If you have a decent balance (enough to stake daily, for example), this is actually very much viable. It would even be possible to automate this by changing the miner code to only stake with CPID if the mag unit is above a defined limit.
The problem is that this creates an unfair disadvantage for users who don't have a balance high enough to somewhat have control over when to do DPoR stakes. Some might stake so rarely that they have to do every stake with CPID if they don't want to risk losing rewards.

If #768 gets implemented in a way that uses block distance instead of timestamps, there would be absolutely no reason for the mag unit to exist anymore. Its sole purpose was to balance out fluctuations in the daily PoR emission, which are gone anyway with these changes. If there's a day paying out less GRC than the target, the difference is guaranteed to be owed and claimed on some other day in the future. Assuming MRC will get implemented, it's entirely up to the cruncher whether it will get claimed or will expire/get burned.

"But won't the emission get too high if the mag unit is raised and fixed to 0.25?"

No. The reason why the mag unit fluctuates between 0.175 and 0.225 right now is that a) some users are probably using the flaws in the current reward calculation to their advantage (see #768) and b) the difficulty has been too high lately, so instead of the targeted 960, only about 880 blocks are being generated per day. As the current reward calculation uses timestamps instead of block distance, this has to be balanced out by lowering the mag unit currently.
a) is fixed by the first point of the proposal, b) by the second one.

"Solo crunchers missing the ~6 months lookback window will lower the emission"

This will be very unlikely to happen once MRC is implemented. The only way this could happen will then be that the cruncher forgets about his pending rewards and doesn't open the wallet in time.
Just consider the burnt coins as a donation to all GRC holders.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions