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, a fixed set of validators process operations, 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 the 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, two important events happen:
- The delegated tokens for a given validator are added up and a new committee is formed.
- The reference gas price, set as described in IOTA Gas Pricing, is updated.
Following these actions, 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 and storage deposits. 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. Currently, the stake rewards per epoch is set as 767000 IOTAs per epoch.
- 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 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 proportionally to their stake (including to the validator).
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 staking 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 "skin in the game" and are incentivized to operate IOTA 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 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.
On net, this design encourages validators to operate with low gas price quotes, but not too low or they receive slashed stake rewards. Consequently, the IOTA gas price mechanism and DPoS system encourages a healthy competition for fair prices where validators set low gas fees while operating with viable business models.
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 boosted rewards relative to 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.