Skip to content

Commit

Permalink
edits
Browse files Browse the repository at this point in the history
  • Loading branch information
filippoweb3 committed Nov 15, 2024
1 parent 615d2c7 commit 11466f1
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 96 deletions.
3 changes: 1 addition & 2 deletions docs/general/web3-and-polkadot.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,7 @@ and work together to improve it.

But from where are those incentives coming from? Polkadot's native token
[DOT is inflationary](../learn/learn-inflation.md). Inflation is used to pay validators for running
nodes and reward nominators for providing the necessary stake to secure the network. Depending on
the staking rate, part of the inflation is diverted to the treasury.
nodes and reward nominators for providing the necessary stake to secure the network.

### Governance and Treasury

Expand Down
1 change: 1 addition & 0 deletions docs/learn/learn-agile-coretime.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ Coretime is managed through the
which is deployed on the Coretime Chain. In theory, the Polkadot relay chain can support around a
hundred cores seamlessly and can support over a few hundred cores through optimizations. Preliminary
tests ran successfully with 80 cores with 12-second block times.
[**Coretime revenue sales are burned**](https://app.regionx.tech/?network=polkadot).

### Coretime Sales

Expand Down
106 changes: 20 additions & 86 deletions docs/learn/learn-inflation.md
Original file line number Diff line number Diff line change
@@ -1,104 +1,38 @@
---
id: learn-inflation
title: Token Inflation
sidebar_label: Token Inflation
description: Explanation of Token's Inflation in the Polkadot Ecosystem.
keywords: [token, DOT, KSM, inflation]
title: DOT Inflation Model
sidebar_label: DOT Inflation
description: Explanation of DOT's Inflation.
keywords: [token, DOT, inflation]
slug: ../learn-inflation
---

import MessageBox from "../../components/MessageBox"; import "../../components/MessageBox.css";

<MessageBox message="[A simpler inflation model modifiable by OpenGov and a reduction in DOT inflation are currently being discussed.](https://forum.polkadot.network/t/proposal-for-adjusting-polkadots-inflation-system-reducing-issuance-and-complexity/9157)" />
<MessageBox message="[Polkadot transitioned from an exponential inflation model to a linear inflation model in November 2024.](https://forum.polkadot.network/t/proposal-for-adjusting-polkadots-inflation-system-reducing-issuance-and-complexity/9157) The exponential inflation model is still in use for [Kusama](./learn-kusama-inflation)." />

DOT (and KSM) is an inflationary token. Inflation is
[set to be 10% annually](https://github.com/paritytech/polkadot-sdk/blob/756ccc35e93d1a78e3c71a0e67ae4da5f1d09f69/runtime/polkadot/src/lib.rs#L576)
on Polkadot (same on Kusama, see
[here](https://github.com/paritytech/polkadot-sdk/blob/756ccc35e93d1a78e3c71a0e67ae4da5f1d09f69/runtime/kusama/src/lib.rs#L535)).
Depending on the supply staked and the ideal staking rate (more about this below), part of the
inflation is distributed to the stakers and part to the
[treasury](./learn-polkadot-opengov-treasury.md).

:::info

DOT went through [redenomination](./archive/learn-redenomination.md) in 2020 that saw the DOT token
supply increase by 100 times.

The current token supply can be seen [here](../general/chain-state-values.md#total-issuance).

:::
DOT is an inflationary token, with
[**fixed annual inflation of 120,000,000 DOT**](https://github.com/polkadot-fellows/runtimes/pull/471),
of which 15% goes to the [treasury](./learn-polkadot-opengov-treasury.md) and 85% to
[stakers](./learn-staking.md).

It is essential to understand that the primary objective of inflation is to incentivize network
participants through
[Nominated Proof of Stake (NPoS)](./learn-consensus.md#nominated-proof-of-stake) and to grow the
network through funding the on-chain treasury. There is an opportunity cost of keeping the number of
tokens idle with the current inflation model as the tokens get diluted over time. Economics and game
theory suggest that setting an ideal inflation rate is essential for incentivizing the network
participants as well as the growth of the network, and any deviation from it can have adverse
effects. Reducing the inflation rate could limit growth, while increasing the inflation rate could
break the incentive model of the token. Hence, **token inflation rate is not a forever fixed value,
and inflation can be updated in the future through
[on-chain governance](./learn-polkadot-opengov.md)** based on thorough tokenomics research.

## Inflation Model

The chart below shows the inflation model of the network. Depending on the number of staked tokens,
the distribution of the inflation to validators and nominators versus the treasury will change
dynamically to provide incentives to participate (or not participate) in staking.

There is a [dynamic _ideal staking rate_](#ideal-staking-rate) (in the figure set to 0.6 or 60%)
that the network tries to maintain. The inflation model will incentivize network participants to
stake when the _current staking rate_ < _ideal staking rate_ and disincentivize staking when
_current staking rate_ > _ideal staking rate_. The goal is to have the staking rate meet the ideal
staking rate. The current staking rate would be the total amount staked in the current era over the
total token supply, where the total amount staked is the stake of all validators and nominators on
the network. The ideal staking rate accounts for having sufficient backing of tokens to prevent the
possible compromise of security while keeping the native token liquid.

![staking](../assets/rewards-inflation.png)

<p style={{textAlign:"center"}}>Source: <a href="https://research.web3.foundation/Polkadot/overview/token-economics">Research - Web3 Foundation</a></p>

- **x-axis**: Proportion of staked tokens
- **y-axis**: Annualized percentage (inflation and staking rewards, see below)
- **Blue line**: Annual inflation rate diverted to NPoS, i.e., the total amount of tokens minted to
pay validators and nominators. For instance, 0.1 corresponds to 10% of token inflation diverted to
stakers. Since annual token inflation is 10%, all inflation is used to pay validators and
nominators, and 0% of token inflation is diverted to the treasury.
- **Green line**: Annual rewards rate for stakers. For instance, 0.2 corresponds to 20% of annual
returns on the staked tokens. You can determine the current annual staking rewards rate by looking
at the top bar of the staking overview on
[the Polkadot Staking Dashboard](https://staking.polkadot.cloud/#/overview).

Assuming that the ideal staking rate is 60%, all of the inflation would go to the validators and
nominators if 60% of all tokens are staked. Any deviation from the 60% - positive or negative -
sends the proportional remainder to the treasury. Deviations from the ideal staking rate are
referred to as _staking inefficiencies_. Thus, the treasury does not receive an inflow of funds from
inflation when the system staking rate equals the ideal staking rate. See
[this page](./learn-polkadot-opengov-treasury.md) for more information about treasury inflow
sources.

For those who are interested in knowing more about the design of the inflation model for the
network, please see [here](https://research.web3.foundation/Polkadot/overview/token-economics).

## Ideal Staking Rate
network through funding the on-chain treasury. Token inflation rate can be updated in the future
through [on-chain governance](./learn-polkadot-opengov.md) based on thorough tokenomics research.

The ideal staking rate can vary between 45% to 75% based on the number of parachains that occupied a
core (this excludes the system parachains), based on the implementation
[here](https://github.com/paritytech/polkadot-sdk/blob/cd901764a52edc04a6d22bea3a526def593ab2a7/polkadot/runtime/common/src/impls.rs#L80).
Below is a 25-year prediction of DOT gross annual inflation assuming current fixed inflation rate.

Briefly, the ideal staking rate can be calculated as follows:
Net DOT inflation depends on [treasury expenditures](./learn-polkadot-opengov-treasury.md) and
[coretime sales](./learn-agile-coretime.md#agile-coretime-implementation), and thus cannot be
predicted. Net inflation can be defined as follows:

`0.75 - auction_proportion`
```
where `auction_proportion` is obtained by computing `min(auctioned_slots, 60) / 300`. The
`auctioned_slots` are all the auctioned slots (or cores) without the cores for system parachains.
Net Inflation = Gross fixed inflation - burned supply (treasury + coretime sales)
Assuming there are 50 filled cores, of which five are dedicated to
[system parachains](./learn-system-chains.md), there are 45 auctioned cores. The
`auction_proportion` is thus `45 / 300 = 0.15`. The ideal staking rate is `0.75 - 0.15 = 0.6`.
```

If the amount of tokens staked goes below 60%, then staking rewards for nominators increase,
incentivizing them to stake more tokens on the network. On the contrary, staking rewards drop if
staked tokens exceed the ideal staking rate. This results from the change in the percentage of
staking rewards that go to the Treasury.
Where `Gross fixed inflation` is the annual inflation of 120M DOT and the `burned supply` is the
annual burn supply due to treasury burns and coretime sale burns.
99 changes: 99 additions & 0 deletions docs/learn/learn-kusama-inflation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
id: learn-kusama-inflation
title: Kusama Inflation Model
sidebar_label: KSM Inflation
description: Explanation of KSM's Inflation Model.
keywords: [token, KSM, inflation]
slug: ../learn-kusama-inflation
---

import MessageBox from "../../components/MessageBox"; import "../../components/MessageBox.css";

<MessageBox message="[Learn about Polkadot's native token DOT inflation](./learn-inflation)." />

KSM is an inflationary token. Inflation is
[set to be 10% annually](https://github.com/paritytech/polkadot-sdk/blob/756ccc35e93d1a78e3c71a0e67ae4da5f1d09f69/runtime/kusama/src/lib.rs#L535).
Depending on the supply staked and the ideal staking rate (more about this below), part of the
inflation is distributed to the stakers and part to the
[treasury](./learn-polkadot-opengov-treasury.md).

:::info

The current KSM token supply can be seen [here](./../general/chain-state-values.md#total-issuance).

:::

It is essential to understand that the primary objective of inflation is to incentivize network
participants through
[Nominated Proof of Stake (NPoS)](./learn-consensus.md#nominated-proof-of-stake) and to grow the
network through funding the on-chain treasury. There is an opportunity cost of keeping the number of
tokens idle with the current inflation model as the tokens get diluted over time. Economics and game
theory suggest that setting an ideal inflation rate is essential for incentivizing the network
participants as well as the growth of the network, and any deviation from it can have adverse
effects. Reducing the inflation rate could limit growth, while increasing the inflation rate could
break the incentive model of the token. Hence, **token inflation rate is not a forever fixed value,
and inflation can be updated in the future through
[on-chain governance](./learn-polkadot-opengov.md)** based on thorough tokenomics research.

## Kusama Inflation Model

The chart below shows the inflation model of the network. Depending on the number of staked tokens,
the distribution of the inflation to validators and nominators versus the treasury will change
dynamically to provide incentives to participate (or not participate) in staking.

There is a [dynamic _ideal staking rate_](#ideal-staking-rate) (in the figure set to 0.6 or 60%)
that the network tries to maintain. The inflation model will incentivize network participants to
stake when the _current staking rate_ < _ideal staking rate_ and disincentivize staking when
_current staking rate_ > _ideal staking rate_. The goal is to have the staking rate meet the ideal
staking rate. The current staking rate would be the total amount staked in the current era over the
total token supply, where the total amount staked is the stake of all validators and nominators on
the network. The ideal staking rate accounts for having sufficient backing of tokens to prevent the
possible compromise of security while keeping the native token liquid.

![staking](./../assets/rewards-inflation.png)

<p style={{textAlign:"center"}}>Source: <a href="https://research.web3.foundation/Polkadot/overview/token-economics">Research - Web3 Foundation</a></p>

- **x-axis**: Proportion of staked tokens
- **y-axis**: Annualized percentage (inflation and staking rewards, see below)
- **Blue line**: Annual inflation rate diverted to NPoS, i.e., the total amount of tokens minted to
pay validators and nominators. For instance, 0.1 corresponds to 10% of token inflation diverted to
stakers. Since annual token inflation is 10%, all inflation is used to pay validators and
nominators, and 0% of token inflation is diverted to the treasury.
- **Green line**: Annual rewards rate for stakers. For instance, 0.2 corresponds to 20% of annual
returns on the staked tokens. You can determine the current annual staking rewards rate by looking
at the top bar of the staking overview on
[the Polkadot Staking Dashboard](https://staking.polkadot.cloud/#/overview).

Assuming that the ideal staking rate is 60%, all of the inflation would go to the validators and
nominators if 60% of all tokens are staked. Any deviation from the 60% - positive or negative -
sends the proportional remainder to the treasury. Deviations from the ideal staking rate are
referred to as _staking inefficiencies_. Thus, the treasury does not receive an inflow of funds from
inflation when the system staking rate equals the ideal staking rate. See
[this page](./learn-polkadot-opengov-treasury.md) for more information about treasury inflow
sources.

For those who are interested in knowing more about the design of the inflation model for the
network, please see [here](https://research.web3.foundation/Polkadot/overview/token-economics).

## Ideal Staking Rate

The ideal staking rate can vary between 45% to 75% based on the number of parachains that occupied a
core (this excludes the system parachains), based on the implementation
[here](https://github.com/paritytech/polkadot-sdk/blob/cd901764a52edc04a6d22bea3a526def593ab2a7/polkadot/runtime/common/src/impls.rs#L80).

Briefly, the ideal staking rate can be calculated as follows:

`0.75 - auction_proportion`

where `auction_proportion` is obtained by computing `min(auctioned_slots, 60) / 300`. The
`auctioned_slots` are all the auctioned slots (or cores) without the cores for system parachains.

Assuming there are 50 filled cores, of which five are dedicated to
[system parachains](./learn-system-chains.md), there are 45 auctioned cores. The
`auction_proportion` is thus `45 / 300 = 0.15`. The ideal staking rate is `0.75 - 0.15 = 0.6`.

If the amount of tokens staked goes below 60%, then staking rewards for nominators increase,
incentivizing them to stake more tokens on the network. On the contrary, staking rewards drop if
staked tokens exceed the ideal staking rate. This results from the change in the percentage of
staking rewards that go to the Treasury.
4 changes: 2 additions & 2 deletions docs/learn/learn-polkadot-opengov-treasury.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ mechanisms:
The outflow is determined by the following mechanisms:

- **Burned tokens:** at the end of each spend period,
[a fraction](../general/chain-state-values.md#treasury-burn-factor) of the available funds are
burned.
**[a fraction](../general/chain-state-values.md#treasury-burn-factor) of the available funds are
burned**.
- **Treasury proposals & Bounties:** they make up the largest share of outflow tokens to the
community and need to be approved by governance. Then, payouts occur at the end of a
[spend period](../general/glossary.md#spend-period).
Expand Down
10 changes: 4 additions & 6 deletions docs/maintain/maintain-guides-validator-payout.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,12 +184,10 @@ This includes the stake of the validator itself plus any stake bonded by nominat
:::info

Validators set their preference as a percentage of the block reward, _not_ an absolute number of
DOT. Polkadot's block reward is
[based on the _total_ amount at stake](../learn/learn-inflation.md#ideal-staking-rate). The
commission is set as the amount taken by the validator; that is, 0% commission means that the
validator does not receive any proportion of the rewards besides that owed to it from self-stake,
and 100% commission means that the validator operator gets all rewards and gives none to its
nominators.
DOT. Polkadot's block reward is based on the _total_ amount at stake. The commission is set as the
amount taken by the validator; that is, 0% commission means that the validator does not receive any
proportion of the rewards besides that owed to it from self-stake, and 100% commission means that
the validator operator gets all rewards and gives none to its nominators.

:::

Expand Down
1 change: 1 addition & 0 deletions polkadot-wiki/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -1001,6 +1001,7 @@ module.exports = {
"general/kusama/kusama-adversarial-cheatsheet",
"maintain/kusama/maintain-guides-society-kusama",
"maintain/kusama/maintain-guides-how-to-validate-kusama",
"learn/learn-kusama-inflation",
],
},
],
Expand Down

0 comments on commit 11466f1

Please sign in to comment.