Cardano: Securing the network with incentives
In this article, we will discuss on how Cardano “Proof-of-Stake” (PoS) protocol is designed to incentive people getting involve in the project helping to secure the network.
According to IOHK, “A design goal of the mechanism is to align monetary incentives as perfectly as possible with protocol adherence: If every stakeholder follows their own ﬁnancial interests, the system should settle into a desirable state. If possible, there should never be a conﬂict of interest between maximizing rewards and “doing the right thing”.
PoS vs PoW
As discussed in detail in a previous article, Cardano blockchain uses a PoS consensus protocol for several security and efficiency reasons.
As you probably know, Bitcoin blockchain uses the “proof-of-work” (PoW) algorithm which pushes everybody participating in the network to compete to mine new blocks and get the associated rewards.
On the other hand, the Cardano blockchain uses “Proof-of-stake” in which the block validator and producer is randomly chosen by the blockchain algorithm. Thanks to the “Ouroboros” protocol, the Cardano Blockchain tackles some of the main issues of first generations blockchains:
- Scalability problems will be solved by using Cardano scalability protocol, Ouroboros Hydra
- Energy consumption, the entire Cardano Blockchain could be powered with using only 10 kW (power needed for few houses) which would decrease the energy consumption by million times compared to the Bitcoin blockchain.
- Centralization with its pool saturation parameter which mitigate the predominance of validators having too much influence in the network.
But unfortunately, some security issues also appear in the form of Sybil attacks “where someone with very little personal stake can create a lot of stakepools with low margins and try to attract the majority of stake within the network. They could then control consensus and damage or even destroy the system”.
In the next sections, we will see how Cardano consensus protocol intends to tackle those security issues thanks to incentives mechanism.
Cardano PoS Protocol: Blocks validation and minting
Eventually, a blockchain network is just a group of interconnected nodes, all working simultaneously to validate transactions and blocks by means of consensus. The definition of consensus for any given network varies, but for Cardano it is defined by the Ouroboros protocol.
In Cardano blockchain, time is divided into distinct pieces, called slots and 21600 slots are grouped into longer periods, called epochs.
Before an epoch starts, a draw (automatically managed by the protocol) determines who gets the right to create a new unique block for every slot, selected ones are called slot leaders.
The draw is based on the generation of a random number corresponding to one circulating ada which determines who will get the right to become a slot leader.
To simplify this, we could say that, potentially, all ada holders participating in the network could be randomly chosen to become a slot leader and produce the new related block.
But participating in the network does not only means holding ada. Participating in the network means to set up a block producing node connected to the network and being able to run the protocol, validate and sign off a block when selected, which means potentially every slot (~20 seconds). By running a Cardano block producing node, users participate in and contribute to the network.
As an incentive to participate, if a slot leader succeeds to produce a block in a given slot, it is rewarded by the network. The network rewards participants based on their stakes and conditions that are valid and immutable during a given epoch.
In the next paragraph, we will explain how every ada holders can participate in the protocol even without being able to run a block producing node on their own thanks to the concept of stakepools and delegation.
Delegation is a mechanism that allow ada holders to transfer their rights to participate in the PoS protocol to another entity.
Those entities are called stakepools and are responsible to run the protocol and block producing node 24/7, on behalf of ada holders who have organized themselves into a collective pool. These reliable block-producing nodes hold the combined stake of the group of delegators in a single entity.
Delegation is important to increase the stability and performance of the network, indeed:
- Not every ada holder will be able to continuously run a block producing node that is well-connected to the rest of the network just to have the chance to produce new blocks on very rare occasions.
Delegation allows all ada holders to participate in the protocol, regardless of their technical skills and the amount of ada that they hold.
- Even if every user were able to run a node that was online at all time, it would be hard to keep all those nodes well enough synchronized to avoid unexpected forks and keep a short slot length.
Cardano delegation mechanism is designed at maintaining the number of nodes that produce a signiﬁcant number of blocks reasonably small (about 100 or 1000 nodes), so that effective communication between them is realistic, it is called the “k” parameter.
To be efficient, a stakepool needs to collect a certain amount of ada (representing consensus power) in order to actively participate in the network consensus.
The consensus power of one stakepool is determined by its total stake which represents the sum of ada staked by a stakepool operators and its delegators.
Following this principle, chances of winning for any given slot is proportional to the stake one stakepool control. To avoid people to take over most of the consensus, a block producing nodes in the Cardano blockchain reaches the point of saturation when it gathers a certain percentage of the total ada staked. This value is directly linked to the “k” factor defining the desired number of pools on the network.
When a stakepool reaches that saturation point it starts receiving less block assignments from the network and proportionally their rewards.
Delegators can freely choose to which stakepool they want to trust to produce blocks on their behalf. Thus, delegators can directly increase or decrease the consensus power of a stakepool.
Delegators will act in their best interest, so they are motivated to choose a stakepool that performs well and provide them with the best possible rewards.
Stakepool must then act in the best interest of the network. Delegators are expected to receive rewards so they will be guarantors of the honest behaviour of stakepools.
Incentives in Ouroboros
As defined by IOHK engineers in a dedicated peer-reviewed technical report, “On a high level, the goal of the incentives mechanism is to incentivise stakeholders to follow the protocol and thereby to guarantee the secure and efﬁcient operation of Cardano”.
Although Ouroboros protocol is not as expensive to run than a PoW protocol, running it still leads to some costs. Consequently, stakepool operators are rewarded for running the protocol in the form of incentives (in form of ada) that come from the transaction fees and from inflation of the circulating supply of ada.
To recognize their work, stakepool operators are allowed to declare additional costs when registering their stakepool :
- Pool costs for running the hardware per epoch (expressed in ada),
- Profit margin (by percentage) which is an incentive to keep the infrastructure reliable up-to-date and secure.
After each epoch, rewards are distributed among all stakeholders who have delegated to a stakepool. These rewards come from two sources:
- All transaction fees: collected from transactions comprised in a block that was minted during that epoch,
- Monetary expansion.
The following formula defines how the rewards mechanism works.
“The available rewards amount, transaction fees, plus monetary expansion, is denoted by R. First, the share of all available rewards that a specific pool can receive is determined, as follows”:
After pool rewards have been calculated and adjusted for stakepool performance, they are distributed among the stakepool operator and people who delegated part, or all their stake, to that stakepool.
This happens in several steps:
- First, the declared costs are subtracted and given to the stakepool operator.
- Next, the declared margin is subtracted and given to the stakepool operator.
- Ultimately the remainder is split fairly (proportional to delegated stake), among all people who delegated to the pool, including the pool owners through his pledge.
The actual amount of ada received in rewards may vary, and will depend on a number of factors including; stakepool performance which is, the actual number of blocks produced in a given epoch, compare to the number it was expected to produce. Changes to network parameters may also affect rewards.
How to benefit from securing the network — Cardano protocol rewards
The overall objective of staking in a PoS protocol is to provide security to the network. The more stakepools is online and producing blocks, the more secure the network becomes.
The reward associated with validating blocks is intended to work as an incentive (in the form of Cardano native token ada) paid for running the protocol and producing blocks 24/7.
So, there are two ways an ada holder can earn rewards, and thus be incentivized to keep the network running: by delegating their stake (staking) to a stakepool run by someone else or running their own stake pool.
As we have seen only block producing nodes / stakepools can be elected by the network to produce the new block for each slot. Running those nodes requires two important things:
- expertise and resources to reliably operate a node 24/7
- a significant amount of ada staked
The amount of ada delegated to a given stakepool is used by the Ouroboros protocol to select who should add the next block to the blockchain and get a reward. The more stake is delegated to a stakepool (up to a certain saturation point), the more likely it is to mint the next block and then the rewards are shared between everyone who delegated their ada to that stakepool.
The overall idea behind it is to create good behaviour between all the people who wants to participate in the network. If you have the technical ability to run a block producing nodes and you have enough ada to reach saturation, you can decide to run a private pool and keep all the rewards that going to be generated by your work.
But for most of ada holders, it would be more relevant to team up with other Cardano community members to run stakepools that are efficient and bring utility to the network in order to share rewards. The main idea within Cardano is always to reach a win-win solution for all individuals wanting to help running and securing the network.
In the following article, we describe how one can choose a stakepool regarding their intrinsic performances but also regarding the underlined project they want to conduct.