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 priorization. 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 accordingly to the tallying rule.
- Each pool's amount of rewards is distributed between the validator and the other parties. Validators first keep a commission (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.
Finally, let represent the share of stake managed by a validator that is owned by itself, while represents the share owned by third-party stakers. The rewards for users of validator's staking pool and for the validator itself equal:
The variable captures the output of the tallying rule computed as part of the gas price mechanism and corresponds to for performant validators and for non-performant validators. This variable ensures that validators have incurred monetary risk and therefore are incentivized to operate the IOTA network efficiently. The parameter captures each pool's share of total stake.
Consequently, validators with more stake earn more stake rewards and the joint 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, delivering a cost-efficient and decentralized network.
IOTA Incentives
The IOTA economic model bestows IOTA users with an important monitoring role. On the one hand, users want their transactions processed as quickly and efficiently as possible. User clients, such as wallets, encourage this by prioritizing communication with the most responsive validators. Such efficient operations are compensated with more rewards than less responsive validators. On the other hand, IOTA token stakers receive the same boosted or penalized rewards as their selected validator. An unresponsive validator is thus doubly exposed to IOTA incentives: they lose directly through slashed rewards and indirectly through reduced user stake in future epochs as stakers move their tokens to more responsive validators.