From 11466f145c7f284f5cfb9f7075591e4e06836132 Mon Sep 17 00:00:00 2001 From: Filippo Date: Fri, 15 Nov 2024 15:54:54 +0100 Subject: [PATCH] edits --- docs/general/web3-and-polkadot.md | 3 +- docs/learn/learn-agile-coretime.md | 1 + docs/learn/learn-inflation.md | 106 ++++-------------- docs/learn/learn-kusama-inflation.md | 99 ++++++++++++++++ docs/learn/learn-polkadot-opengov-treasury.md | 4 +- .../maintain-guides-validator-payout.md | 10 +- polkadot-wiki/sidebars.js | 1 + 7 files changed, 128 insertions(+), 96 deletions(-) create mode 100644 docs/learn/learn-kusama-inflation.md diff --git a/docs/general/web3-and-polkadot.md b/docs/general/web3-and-polkadot.md index 1dcfb1937c37..f3cd54bfb490 100644 --- a/docs/general/web3-and-polkadot.md +++ b/docs/general/web3-and-polkadot.md @@ -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 diff --git a/docs/learn/learn-agile-coretime.md b/docs/learn/learn-agile-coretime.md index 12b67aa7cdba..20e33cc7c63d 100644 --- a/docs/learn/learn-agile-coretime.md +++ b/docs/learn/learn-agile-coretime.md @@ -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 diff --git a/docs/learn/learn-inflation.md b/docs/learn/learn-inflation.md index 357f30c82183..ea1695d417dd 100644 --- a/docs/learn/learn-inflation.md +++ b/docs/learn/learn-inflation.md @@ -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"; - + -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) - -

Source: Research - Web3 Foundation

- -- **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. diff --git a/docs/learn/learn-kusama-inflation.md b/docs/learn/learn-kusama-inflation.md new file mode 100644 index 000000000000..4c989ec4601e --- /dev/null +++ b/docs/learn/learn-kusama-inflation.md @@ -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"; + + + +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) + +

Source: Research - Web3 Foundation

+ +- **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. diff --git a/docs/learn/learn-polkadot-opengov-treasury.md b/docs/learn/learn-polkadot-opengov-treasury.md index 96d26faec8e0..0cc521b597a4 100644 --- a/docs/learn/learn-polkadot-opengov-treasury.md +++ b/docs/learn/learn-polkadot-opengov-treasury.md @@ -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). diff --git a/docs/maintain/maintain-guides-validator-payout.md b/docs/maintain/maintain-guides-validator-payout.md index 25017ff2adb2..1a549efeea60 100644 --- a/docs/maintain/maintain-guides-validator-payout.md +++ b/docs/maintain/maintain-guides-validator-payout.md @@ -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. ::: diff --git a/polkadot-wiki/sidebars.js b/polkadot-wiki/sidebars.js index ee0bcacf051f..92b0a5a6b8c6 100644 --- a/polkadot-wiki/sidebars.js +++ b/polkadot-wiki/sidebars.js @@ -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", ], }, ],