How XION aims to overcome hyperinflation
In the third part of the powering XION series we will discuss the intricacies of the cosmos mint module, explore how XION aims to overcome hyperinflation, and examine the platform’s unique approach to token inflation on staked tokens.
What is the mint module?
The mint module’s goal is to maintain the ratio of staked vs held tokens in an ecosystem. This is achieved by setting three values: the upper bound for inflation, the lower bound for inflation, and the target staking ratio.
For the Cosmos Hub, these values are 20%, 7% and 2/3 of tokens staked. If more than 2/3 of tokens are staked, the inflation rate will slowly drop to 7% over multiple blocks. If less than 2/3 are staked, it will slowly climb to 20%.
The module will then calculate how many tokens need to be generated in that block in order to meet the inflation percentage. These tokens are then distributed to the validators and stakers via other modules.
As anyone paying attention to the Cosmos and general crypto community in recent months has noticed, hyperinflation isn’t a sustainable model for most platforms. It hurts users and holders of the platform token, and shifts value to generally inactive investors and stakers. Even the Cosmos Hub recognizes that inflation must be abated, and value must accrue, a large part of the Atom 2.0 proposal being set to address the issue of inflation.
In order to address a post-inflation crypto era, we have decided to fork and extend the Cosmos SDK Mint module and make two small, though significant, changes:
First, accumulated fees will be used in lieu of inflation, when possible. We intend our platform and token value to stand on their own, which means the majority of tokens used to incentivize validators and stakers should come from platform value, not from inflation and speculation.
Second, token inflation will be calculated against staked tokens, not all tokens. This will be discussed further on.
Paying validators with fees
The default Mint module and Cosmos Hub currently take fees accumulated in a block and pass them to validators, on top of the tokens that get minted every block. For instance, if 10 tokens worth of fees were collected in a block, and inflation calls for 1000 to be minted, then 1010 will be distributed to validators.
The first change we have implemented is to use the fees that have been collected in a block, and offset how many tokens need to be minted in the block by the accumulated fees.
For example, if 1000 tokens are due to be minted to distribute to stakers/validators, and 600 tokens have been collected that block via fees, then only 400 tokens will be minted by the x/mint module. The 400 minted tokens will be collected with the 600 accrued tokens so the full 1000 can be passed to x/distribution.
This will result in inflation decreasing as chain utility and popularity increases, stabilizing token value while maintaining incentive for validators and stakers.
This has an interesting follow on effect; when fee accrual exceeds the number of tokens per block necessary to distribute to stakers, then the extra tokens are burnt. Successful platform and tokens will naturally become deflationary, if only momentarily.
Existing Model: Token inflation on all tokens
Because the default mint module calculates inflation against all existing tokens, the realized staking APY is usually much higher than the inflation rate.
If for example there are 1,000 tokens, and only 500 are staked, at an inflation rate of 10%, stakers will realize a 20% APY. This creates unaligned incentives with validators to get into chains early in order to get extreme hyperinflation rewards, that will quickly disappear. It also causes APY to be volatile, as it depends heavily on how many tokens are staked.
The XION Model: Token inflation on staked tokens
Our change uses all of the same mechanics from the x/mint module, but changes one significant variable. Instead of calculating against all tokens, we calculate against staked tokens.
For example, if the inflation rate is 10%, and there are 1000 total tokens, of which 500 are staked, then we will generate 50 in the year, instead of 100. Stakers will always see their APY as the inflation rate.
If 100% of tokens are staked, there would be no calculable difference from the default x/mint module. In the worst case, this module will operate with as much inflation as the default module. In the average case, we expect to see much less, and to also attract more long term validators that aren’t chasing early payoffs on new chains.
What isn’t changing
The other mechanics of the x/mint module remain unchanged. Calculation of how much to change the inflation rate, storing the calculations to the store, and interacting with other modules is the same. Networks still provide upper and lower bounds, within which the module will move rate depending on how many tokens are staked.
This intends to be a drop in replacement with minimal change in app configuration.
Burnt is evolving the future of Web3 with the introduction of XION, the first chain purpose-built for consumer adoption. We believe everyone, regardless of technical knowledge, should be able to have the same access to true ownership.