The current Peercoin network parameters create an optimum output size around 112 PPC. At this optimum size, the number of expected blocks falls by -25.83% compared with a 1 PPC output. The security level is around 8.56% producing a max expected reward of around 4.9%. This assumes minters wait up-to 4 years and doesn’t take small compounding effects or stale blocks (rare) into account.
Substantially increase rewards when the security level is low to further incentivise minting when it is most required.
Incentivise overall minting.
Keep maximum PoS inflation at no more than 3.25%.
The following parameters can be changed:
Static reward: Currently 0.25%. Higher static rewards can incentivise continuous minting and reduce the blocks lost at optimum by moving the optimum output size downwards. There is greater incentive when the security level is low.
Coinage reward: Currently 3%. Benefits larger outputs that are more likely to mint within the 365 window and before being spent. This allows the economic optimum to be a reasonable number that isn’t too low and provides some level of incentive for people to mint occasionally who might otherwise not.
Ramp-up days: Currently 60 days. After a UTXO has reached maturity, it increases in probability over 60 days. This has the effect of reducing the probability of larger outputs that mint more often at the lower probabilities and increases the complexity of minting. Removing this entirely simplifies things and reduces blocks lost at optimum.
Minimum stake age: Currently 30 days. This needs to be longer than the stake modifier which can also be changed accordingly. Reducing the age reduces the time minters need to wait which may encourage more minting. Reducing this improves probability for larger outputs and makes the blocks lost at optimum smaller.
Block interval: Currently 10 minutes. Reducing this improves the on-chain experience by making confirmations faster. It also improves the likelihood of an output minting, which may incentivise smaller minters with greater chance to mint. Reducing it too far will increase stale blocks to an unacceptable level.
I propose the following parameters:
Static reward: 0.75%
Coinage reward: 1%
Zero ramp-up (with probability multiplied by 60 to match max probability today)
Minimum stake age: 21 days
Block interval: 5 minutes
At these new parameters and the same security level, the optimum falls to around 28 PPC with only -3.57% block loss at optimum. The reward rises to around 9% providing a higher incentive to mint continuously and raise the security level from the current level. There is much less drop-off for small outputs.
Most of these changes are ideal modifications to reduce the blocks lost at optimum and are generally considered final state changes. The change that is not considered “final state” here is the block interval change. It can be very tricky to model what happens at small block intervals. The change to 5 minutes instead of 10 minutes should be considered a step in the right direction, such that we will reassess things like orphan frequency and chain stability. The other changes proposed here are not tentative, they are long term permanent. But the block frequency is something we may continue to revisit going forward, even as it relates to scale up of transactions per second.
As can be seen in the blue line for “Mints / Coin / Yr”, the smaller the output size, the more blocks are expected to be produced over time. The “blocks lost at optimum” is the reduction of blocks produced for the optimum output size compared with 1PPC (which is close enough to the minimum of 0.01PPC). This number should be minimised to ensure that the number of blocks being produced isn’t compromised very much when minters target the output size with the highest reward.
I feel like I’m misunderstanding something. When you say optimum (the current 112 number), this is the output size you need to target if you want to maximize your annual reward, correct? I’m first making sure that is the correct definition of optimum. In the previous thread by Nagalim he referred to it as economic optimum.
Multiple times though, you seem to suggest that minting at the current optimum output size will result in less blocks being produced. Check the bolded quotes above for example.
This doesn’t make sense to me, because in my mind, you can only maximize your annual reward by maximizing the number of blocks you produce. The more blocks you mint, the more of the static reward you receive. How can it be that targeting the optimum 112 PPC output gives you the highest reward, but reduces the number of blocks you produce per year? It would seem to me that the optimum should be the output size where you produce the most blocks per year, earning you as much of the static reward as possible.
Anyway, something about my understanding is off. Maybe you guys can see what it is based off what I said above.
If there was only the static reward, then the smallest output would give the highest reward. However there is also the “percentage” reward relative to the coinage (probably better described as “coinage reward”?).
This reward is capped at 365 days and the expected reward calculation also assumes that minters wait up-to 4 years before spending the output (in reality it depends on the individual minter). Small outputs do not mint as fast and they are much more likely to exceed the 365 days or not be minted at all. They therefore can miss out on the coinage reward. There is also a slight compounding benefit for larger outputs minting more often.
Higher static rewards favour small outputs. Higher coinage rewards, favour large outputs.
Ok, so it seems I’ve been too focused on the static reward side of things, and took the coinage reward for granted. I guess you could technically maximize the number of blocks you mint, but end up sacrificing part of your coinage reward because your outputs were so small that they took longer than 365 days to mint.
So I guess the optimum output size would be minting as many blocks as possible WITHOUT sacrificing any of your coinage reward? Set your output sizes too low and you’ll negatively impact your coinage reward. Set them too high and you’ll negatively impact your static reward. You need to find the optimum size, which takes both into consideration, currently around 112 PPC. And around 28 PPC if we make these parameter changes.
Maybe this will help. The maximum probability of finding blocks is always the minimal utxo size, which I call the ‘stake grind’. The dropoff of block finding is due to the maturation period, as a single utxo can only mint once per maturation period no matter how many coins it has. The sharp dropoff of the coinage reward (green) is due to the cap, but the purple line is affected by the fact that you are only minting for a finite period of time, so very small utxo sizes with very very long expected mint times don’t even get the capped coinage part. The economic optimum does not coincide with the stake grind unless the difficulty (or normalized ‘security parameter’) reaches very low values. The ‘blocks lost at optimum’ is thereby a difficulty-dependent parameter that is very nonintuitive, but has certain properties. For example, reducing the coinage reward always reduces the blocks lost at optimum, because it makes the red curve more dominant.
I’m going to update the OP with a new minimum age of 21 days as there was concern that 14 days may be too short. The blocks lost at optimum barely changes at -3.57% and the optimum output value falls to ~20.5ppc. The reward at optimum may drop slightly.
In addition to the 21 min stake age, we can add a 7 day lock-up period before the coinstake outputs are mature for spending. The purpose is to prevent an attacker from being able to sell minted coins for 7 days giving time for the market to react and the attacker to experience the consequences of their actions. This 7 day period wouldn’t apply to PoW coinbase outputs.
The total minimum turnaround for minting an output would be 28 days.
To protect against long-range attacks, there can be a limit on the depth of re-orgs for fully synced nodes. If this limit is around 5 days for example, then an attacker wont be able to sell any coins from an attack for at least 2 days. This also provides finality for synced nodes but no guarantees for syncing nodes. If a large re-org against syncing nodes were to occur, an update can be provided with a hard-coded checkpoint. Peercoin should include a checkpoint in every release regardless in my view as an additional protection against long-range attacks for syncing nodes.
I’m not sure what your expectation is. If an attacker has over 50% minting power, they can use that to re-organise the blockchain as they see fit. It’s important to ensure there is a substantial cost to such an attack. By having a period where staked coins are locked, it gives time for a market reaction to an attack that would devalue the attacker’s coins.
Coinstake is the location in which the stake information is kept. The quantity of security provided by this coinstake can be numerically calculated, which is part of what we are doing. We have shown that larger coinstakes produce smaller amounts of security (i.e. blocks found per unit time) per unit coin. We are trying to idealize a scenario in which inflation remains the same, but higher security per unit coin is given more rewards per unit coin. That has not historically been the case with peercoin, as a single large output contributes nearly nothing to security but takes their 3% reward none the less. Our proposal is a way to bring rewards more in line with security, while still preserving concepts of fairness (i.e. not too aggressive or punishing for those slightly off-optimum) and practical utxo sizes.