status

[deep dive] How distribution of rewards works on Cardano

Published 23.3.2023

Most stakers understand the basic principles of Proof-of-Stake and know that every epoch (5 days) they will receive rewards from the protocol if the pool to which the ADA coins are delegated has minted at least one block. There is confusion about how rewards are distributed by the Cardano protocol. In this article, we will explain this.

TLDR

  • Rewards for staking are accumulated in a reward account that uses a balance rather than a UTXO-style accounting model.
  • The reward balance increases every epoch and ADAs are automatically delegated to the pool.
  • Reward balance does not count as voting power in Catalyst. In order for ADA to be counted, a withdrawal is required through an on-chain transaction.
  • The current system does not require regular actions from stakers and saves resources.

Reward account

Cardano uses so-called reward accounts to distribute ADA rewards from staking. A reward account is associated with each registered stake address. Account-style bookkeeping is used for reward accounts. You can think of it as an account number that can change.

The reward account is not a classic blockchain address that would use UTXO-style accounting. So, the UTXO accounting model is not used to distribute ADA rewards.

A reward account has the following characteristics. It is used only for accumulating ADA rewards so it is not possible to send funds to it via transaction. The balance of the reward account can only be increased when rewards are distributed or decreased when the reward is withdrawn. Spending from a reward account requires a signature (stake credentials).

Withdrawing a balance from a reward account can be done through an on-chain transaction. The balance is used as input for the transaction, creating a new UTXO which the staker receives at her blockchain address.

The protocol requires that the full reward is always withdrawn. This rule ensures that there is only one withdrawal per epoch per staking key.

ADA coins are accumulated on a reward account every epoch and they are automatically delegated to the same pool as the stake. The user is not forced to collect rewards every epoch in order to increase the stake.

The reward account balance is not counted as voting power in Catalyst by the protocol, as only stakes are counted (not rewards). If you want to increase your voting power, you need to withdraw rewards to increase your stake.

Why are reward accounts used?

You may wonder why the team decided to implement the distribution of ADA rewards in this way. Let's explain.

One of the requirements for the functioning of staking was that it should be as automated as possible, i.e. not requiring stakers to perform regular actions. Stakers should receive rewards regularly and these rewards should be automatically delegated to the same pool. Stakers can be expected to delegate to the same pool for longer periods of time and it would be unnecessary for them to collect rewards manually every 5 days. There is no need to withdraw rewards even if you want to change the pool.

It is also beneficial for the protocol and the ledger since if rewards were to be distributed through on-chain transactions, the number of them would increase exponentially for a short time after the end of every epoch. Another reason is to prevent the creation of a huge number of UTXOs with a small amount of ADA (Lovelace). There are nearly 1.3M stakers in the Cardano ecosystem at the time of writing. Imagine how fast the UTXO-set would grow if it increased by 1.3M UTXOs every 5 days. It is smarter if the balance of the reward account becomes UTXO only when the staker wants to use the ADA reward (spend ADA).

If a staker collects rewards once a year, it needs only one on-chain transaction to do so and only one new UTXO with more ADA coins will be created. This saves resources significantly.

The current mechanism is transparent and user-friendly. Depending on the wallet used, users usually see something like "total funds", "balance" and "rewards". Some wallets may show only "total funds" and automatically combine balance and rewards. The wallet should allow you to withdraw rewards through a transaction.

Conclusion

The Cardano protocol automatically calculates rewards for all participants every epoch and distributes them (balances are updated). Stakers simply track pool activity and rewards. ADA coins accumulated in the reward account belong to stakers and no one can take them away. Coins can be in a reward account for years and stakers can withdraw them just to increase voting power in Catalyst or when they want to spend them.

Featured:

Related articles

Did you enjoy this article? Other great articles by the same author