Skip to main content

Delegated Proof of Stake

The IOTA platform relies on delegated proof-of-stake (DPoS) to determine the set of validators that process transactions.

IOTA Token Staking

Within each epoch, all operations on the IOTA network processed by a fixed set of validators, each with a specific amount of stake from IOTA token holders. A validator's share of total stake is relevant in that it determines each validator's share of voting power for processing transactions. Staking IOTA implies that the staked IOTA tokens are locked for the entire epoch. IOTA token holders are free to withdraw their IOTA or to change their selected validator when the epoch changes.

Economic Model

This section covers how the different components of the IOTA economy interact with each other to introduce the IOTA DPoS system. For reference, see the Staking and Tokenomics diagram in the IOTA Tokenomics overview. The IOTA economic model works as follows.

At the beginning of each epoch, the delegated tokens for a given validator are added up, and a new validator committee is formed.

Following this action, the protocol computes the total amount of stake as the sum of staked IOTA.

During each epoch, users submit transactions to the IOTA platform and validators process them. For each transaction, users pay the associated computation fees, the storage deposit and, optionally, a tip for prioritization. In cases where users delete previous objects or data within objects, users obtain a rebate of their storage deposit. Validators observe the behavior of other validators and evaluate each other's performance.

At the end of each epoch, the protocol distributes stake rewards to participants of the DPoS mechanism. This occurs through three main steps:

  • The total amount of stake rewards is calculated. The stake rewards are composed of a validator subsidy, which is currently set as 767,000 IOTA tokens per epoch, plus any tips from user transactions.
  • The total amount of stake rewards is distributed across various pools, proportionally to their stake and adjusted by validators' performance.
  • Each pool's amount of rewards is distributed between the validator and the other parties. Validators first keep a commission δv\delta_v (maximum 20%) of the total pool rewards as a fee to cover their costs. The rest of the rewards (i.e., after discounting the validator's commission) is distributed among all users (including the validator) proportionally to their stake.

To mitigate stake centralization, the protocol enforces a dynamic minimum commission based on each validator’s voting power (VP%). In particular, the effective commission applied during an epoch is set to the maximum between the validator’s chosen commission and its VP%. This prevents large validators from attracting disproportionate stake through very low fees, while preserving flexibility for smaller validators and maintaining a balanced, competitive staking ecosystem.

Finally, let βv\beta_v represent the share of stake managed by a validator vv that is owned by itself, while (1βv)(1-\beta_v) represents the share owned by third-party stakers. The rewards for users of validator's vv staking pool and for the validator vv itself equal:

UserStakeRewardsv =(1δv)×(1βv)×μv×σv×TotalStakeRewards,UserStakeRewards_v \ = (1-\delta_v) \times (1-\beta_v) \times \mu_v \times \sigma_v \times TotalStakeRewards, ValidatorRewardsv = (βv+δv×(1βv))×μv×σv×TotalStakeRewards.ValidatorRewards_v \ = \ \Big(\beta_v + \delta_v \times (1-\beta_v)\Big) \times \mu_v \times \sigma_v \times TotalStakeRewards.

Tallying Rule

The μv\mu_v variable is used to incentivize validators to process transactions efficiently. Throughout each epoch, validators observe the behavior of other validators and evaluate their performance. This information is used in the tallying rule, whereby each validator assigns performance multipliers to others based on observed behavior. At the end of the epoch, these evaluations are aggregated into a global performance factor μv\mu_v for each validator which directly affects each validator’s share of staking rewards:

  • Validators that operate efficiently at the reference gas price receive full rewards (μv=1\mu_v = 1).
  • Validators that deviate or perform poorly receive reduced rewards (μv<1\mu_v < 1).

This variable ensures that validators have incurred monetary risk and therefore are incentivized to operate the IOTA network efficiently. The σv\sigma_v parameter captures each pool's share of total stake.

Consequently, validators with more stake earn more stake rewards and the joint μvσv\mu_v\sigma_v term incentivizes validators to increase their share of the stake while also operating the network performantly. In the long-run, this incentive encourages users to shift the stake distribution towards the network's most efficient validators.