[RFC-0011] PoS inflation adjustment

1 Like

So 5 would be a historically good number. The difference is a PR trade for what I see as a security measure.

it seems that this chart reflects older version of rfc11, where there was no cap on maximum coinage. here’s updated graph for main net

1 Like

I’d like to reiterate for anyone reading that the maximum coinage is a new restriction that reduces the reward for an output that is older than 1 year. While people have talked a lot about the increase in reward from the inflation adjustment, I’m not sure people have paid as much attention to this reduction in reward. For those that are continuous staking, the reduction is likely minimal. However, for those that stake only once a year or even wait multiple years to stake, this reduction will result in a sizable decrease in reward. In the short term, this reduction is likely trivial for all users compared to the increase offered by the adjustment. However, if we begin to attain mint participation over 50%, users that wait 2 years between minting will actually see an overall reduction in stake rewards after rfc11. This provides some motivation for continuous minting and also prevents someone from waiting years for a favorable adjustment before participating.

4 Likes

rc3 is out containing all discussed functionality, so now we need to test it sufficiently on the testnet at least.

Does this have any effect on small continuous minters that take over a year to mint a block due to their tiny stake?

Yes, of course. If someone is continuous minting with 0.01 ppc and it takes them 10 years to mint, then they will lose reward under rfc11. At current network conditions, any outputs that mint within a 4 year period end up with a higher reward under rfc11. There has always been a practical minimum to minting of around 100 ppc, and that is still the case here. The change is that before you would only lose compounding interest for minting with a tiny amount of ppc, now you will lose principal interest.

That is one drawback I guess, however it can be solved through pooled minting.

I don’t think it can. I’m not sure what you mean by ‘pooled minting’ in this context. RFC12 allows you to have others mint for you, but it does not allow you to add your outputs to other outputs to increase chance of block creation.

I just mean that people with small stake should be able to join a minting pool correct? That would turn a small stake into a larger one (with the help of funds from others), which prevents them from having to wait more than 1 year to earn a reward. Or am I missing something?

That’s not how mint pools work under any current proposal. The outputs are not added together, it’s just that there are special ‘mint keys’ that can mint an output separate from spending keys.

We could discuss possible solutions involving minting multiple outputs into a single coinstake. I’m not sure how hard/easy that is. Combined with rfc12, it could potentially do what you are trying to do.

I’m not sure how the hashing would work for multiple coinstake utxo’s. This might be a rather hard problem to solve to get the result you are hoping for.

1 Like

I don’t consider it an immediate problem, since coins are cheap right now and it’s easy to buy enough stake to mint blocks within the 1 year timeframe.

However longer term if it becomes more expensive to build enough stake to easily mint within one years time, we should have something available that can help these people participate, lest we open ourselves up to accusations of being unfair and favoring those with larger stakes.

Another possibility here is to reduce the frequency of splitting outputs from anything minting under 90 days to anything minting under 60 days. It’s a stochastic thing, so it’s hard to pinpoint the best number, but the difference between 90x2=180 and 60x2=120 when considering a 365 day max is pretty big in my opinion.

We have done some overhauling of this RFC. I’ll highlight a few of the changes, but it has been pushed to the main branch, so feel free to go read it.

Runaway Timing Attack

The biggest changes were driven by a desire to address @Otzi’s original concerns of the RFC. Essentially, we are striving to create a system wherein it is never beneficial, or even reward-neutral, to universally stop minting. The code as it currently stands can be considered reward-neutral, as the reward you earn today you can easily just wait to earn tomorrow without any cost. With the addition of an inflation adjustment variable that changes with time, there could be situations where you could earn more tomorrow than today. We want to fix that to prevent a runaway state where everyone turns off their minters at once.

Static Subsidy

Creating a constant block reward is a strategy that has been well-explored in crypto. Bitcoin, for example, has a clearly defined constant block reward. However, in Peercoin such a strategy would result in a ‘stake grind’ attack, whereby minting with lots of smaller stakes is beneficial compared to minting with one big stake. Still, a constant block reward would certainly give incentive to continue to mint at all times. So we decided to work the static subsidy concept into rfc11.

Dynamic Weight

Specifically, we have chosen to give out 75% of the inflation-adjusted coinage-dependent reward, and 25% a static reward. We feel this addresses both sides of the issue by creating lost reward when stake is withheld, but also giving a bigger reward to those that mint with stakes that are greater than dust values. Because of the design of rfc11, we can normalize both components to be a % of the total supply, and thereby compare them in size for a global PoS inflation rate that maintains its target of 1%/year.

What does this mean for my reward?

The static portion comes out to around 1.24 PPC/block (0.25 * 26mil * 0.01 / [365 * 144]).
The dynamic portion will be around 3x current rewards (if we assume that the current state of the chain is about 25% participation, for an adjustment of 4, with a 75% weight)
So overall, you should still expect to see a significant increase in rewards. More to the point, you should expect to see the maximum rewards when you behave the way we ideally would like you to: namely, leave your client on and minting at all times and let the automatic split function of the wallet do what it was designed to do.

With all of these changes put together, I personally believe that this will greatly increase continuous minting and ultimately the PoS difficulty. Delving deeper into a lot of these numbers, I was very surprised by the apparent difference between continuous minting and periodic minting. It seemed to me that we have ~10% continuous participation, i.e. the portion of minters that are actually helping to secure the network on a regular basis. On the other hand, we seem to have 20-50% of minters claiming yearly rewards. I sincerely believe that rfc11 can boost the continuous participation and the PoS difficulty to new levels not seen since this project began.

5 Likes

Hi Nagalim!

Just chiming in to say that this split between static and dynamic reward appears to be a good idea to me, on first thought. Althought I don’t have the time right now to dig into this.
I am relieved that my concerns have been taken into account.

I am trying to get my home renovations done to have a little more time for crypto…I even had to switch off my staking PC for the time being. :frowning:

1 Like

I’ve just been re-reading the Discord chat, regarding Sunny’s concerns. Essentially, this proposal introduces a stable 1% inflation rate (of total supply), but also seeks to trim the variability of the minting participation, by making 25% of the reward static and continuous, and only 75% dynamic - whereas the previous version of this proposal would have been 100% dynamic, resulting in greater wings in minting participation - is that right?

Yes, sunny’s concerns were very similar to otzi’s concerns expressed in detail at the beginning of this thread. We are balancing two opposing minter behaviors. On the one hand, you have ‘periodic minters’ who either turn off their minter for months at a time or keep their stake all combined into a single large output. They dont mint often, but when they do they get high rewards and spike up the PoS difficulty. On the other hand we have ‘stake grinders’ who split their outputs down to dust values (~0.01 ppc) in order to maximize the frequency of block output. They increase pos difficulty a lot, but they bloat the UTXO table a lot and if everyone did it then it would become prohibitively expensive to move minting coins around (because the fees generated would be nearly the same order of magnitude as the number of coins). The middle of the road ‘continuous minter’ who uses the standard splitting function of the client is almost as good for the PoS difficulty as the stake grinder, and they don’t bloat the UTXO table very much. So we are trying to implement a middle of the road reward system that promotes the balanced behavior over the two extremes.

1 Like

I just wanted to thank @Nagalim for continuing to work through feedback from others to continually improve this RFC. Thanks to his effort, RFC 11 has now arrived in its current state, which I believe solves many of the various drawbacks that have been previously identified.

Splitting between 25% and 75% static/dynamic reward seems to solve the unwanted behavior in a 100% dynamic reward system where stakeholders can stop minting in times with low reward in order to build coinage so they have a better chance of minting when the reward is highest.

With the updated RFC, minters are less likely to behave this way because they would lose out on a portion of the 25% from static rewards. This helps promote continuous minting because that is the only way for stakeholders to maximize the reward they earn.

1 Like

Do we still have the inflation capped at 5%, meaning an “ideal” minimum minting participation of 20% of coins?

If so, the potential top reward (5% per annum) would be 1.25% static and 3.75% dynamic - and when the minting reward is at its lowest (1%), 0.25% will be static and 0.75% dynamic.

In other words, I’m asking: is the 25%-75% split between static and dynamic maintained whatever the interest rate is, or is there a sliding scale?