
Introduction:
The introduction of crypto tokens has created a variety of innovations in the digital space. Tokens have enabled the creation of new open networks, the ability to align incentives among network participants, new governance structures and forms of capital coordination, ways for products to address the cold-start problem, and more. Amidst all of this innovation, one aspect remains clear: proper design plays a critical role in a network’s ability to effectively incentivize its participants to contribute to its stability and security.
In this installment of the learning series, we’ll cover the intricacies of Cosmos’ money creation module, explore XION’s unique approach to token inflation on staked tokens, and explore modifications aimed at combating hyperinflation. A sustainable economic foundation is key to building a sustainable ecosystem, and XION’s design places significant emphasis on this aspect to realize its vision of making Web3 accessible to all.
Introduction:
XION is a Proof-of-Stake blockchain, and as such it is secured by a set of validators — network participants responsible for proposing and validating new blocks. They are selected to participate in block production and validation based on the amount of tokens they stake as collateral. If they act maliciously or fail to perform their duties properly, a portion of their staked collateral will be taken away. To encourage these validators to participate in the network consensus and contribute to its security, they are rewarded with staking.
As a PoS blockchain, XION’s security is determined by the number of validators and the value of their staked assets. The higher the value of the staked assets, the more capital an attacker would need to compromise the network. This also means that poorly designed networks with declining asset values will face an increased risk of attack.
Overcoming Hyperinflation:
In recent years, emerging ecosystems have attempted to attract more validators and players by offering unreasonably high staking rewards. However, this approach has had the unintended consequence of causing hyperinflation. Over time, it has become increasingly clear that hyperinflation is not a sustainable model. It has hurt active users and platform token holders, who have seen their assets depreciate rapidly. Simultaneously, it has shifted value to generally inactive staking participants. This has led to a network that is losing stability and security.
To address concerns raised by hyperinflation, XION is built on a modified and extended version of the Cosmos money creation module. Two small, but significant, changes have been made:
Accumulated fees will be used to offset inflation, where possible.
Token inflation will be calculated based on staked tokens only, not all tokens.
Before discussing the implications of this change further, it is important to first understand how the money creation module works.
Money Making Module:
The goal of the money creation module is to maintain a predetermined ratio of staked tokens vs. liquid tokens in an ecosystem. This is achieved by setting three values: an upper limit for inflation, a lower limit for inflation, and a targeted staking ratio. This is an important balance between market liquidity and staked supply, as it affects the long-term security and growth of the network.
To illustrate this dynamic, we will use the Cosmos Hub as an example. It sets an upper limit for inflation of 20%, a lower limit of 7%, and a targeted staking ratio of 2/3 of total tokens. If more than 2/3 of tokens are staked, the inflation rate will slowly decrease to 7% over several blocks. If less than 2/3 are staked, the inflation rate will slowly increase to 20%. And if exactly 2/3 of tokens are staked, the inflation rate will remain constant. The module will then calculate how many tokens need to be generated in that block to meet the inflation percentage. These tokens are then distributed to validators and stakers.
Change #1: Offsetting inflation with costs
The default money creation module and Cosmos Hub currently collect fees accumulated in a block and give them to validators, on top of the tokens generated each block. For example, if 10 fee tokens are collected in a block, and inflation requires 1000 tokens to be generated, then 1010 tokens will be distributed to validators.
The first change we made was to use the fees accumulated in a block, and offset how many tokens need to be generated in that block with these accumulated fees.
For example, if 1000 tokens need to be generated to be distributed to validators, and 600 tokens have been collected through fees in the same block, then only 400 tokens will be generated by the money creation module in that block. These 400 generated tokens will then be combined with the 600 fee tokens, resulting in 1000 tokens.