Any system that involves human interaction to induce a certain behavior requires incentives (or disincentives).
An incentive is a mechanism that relates a reward (or a punishment) to a certain performance or behavior.
The incentives can be: social with moral objectives, or economic with lucrative objectives.
Cardano’s design has the philosophy of incentives among its principles, instead of punishments, as for example Ethereum with its system of slashing and other penalties, which financially penalize the Block Validator for wrong behaviors.
In Cardano there is a constant debate in the community about decentralization, and the main focus is at the heart of the Proof of Stake consensus protocol, between those who promote Operators of a single pool, against those who do not see dangers with Operators from multiple stakepools. A while ago I wrote an article on this topic: The Free Market and Game Theory in the Proof of Stake Consensus.
In the Cardano blockchain, for the Shelley Era, there are 16 parameters that are updatable (can be modified), and 13 that are not. You can see them on GitHub. You can see how the parameter changes evolved here (monetary values expressed in lovelaces).
The reward system is not static, since the parameters are upgradable, and thus the incentive scheme can be changed.
Stakepool operators have three parameters that they can set at their discretion to influence their rewards:
- The Pledge is the amount of the Operator’s $ADA delegated to the stakepool. It can be considered as the skin in the game.
- The Fixed Cost is deducted from the stakepool reward to cover the stakepool’s operating costs. The current minimum per protocol (minPoolFee) is 340 ADA.
- Margin is the percentage of rewards taken by the stakepool operator after subtracting the Fixed Cost, but before the rest of the rewards are distributed to delegators. It is possible to configure it between 0 and 100%, and its maximum implies not distributing rewards to its delegates.
The Cardano protocol has two parameters to avoid centralization to a0 and k.
- a0 is a value that determines the amount of rewards that are awarded per block signed according to the pledge of each stake pool, and
- k (described as nOpt) that indicates the desirable number of stakepools that can sign blocks at the same time, currently k=500. Thus, the parameter k establishes the so-called saturation point, that is, from how much staking in a pool the rewards begin to decrease. The more the saturation point is exceeded, the more they decrease. The saturation amount is calculated: (Circulating Supply – Reserves) / k
To change the protocol parameters, proponents must submit a CIP. Let’s see what it is.
Cardano Improvement Proposal
A Cardano Improvement Proposal (CIP) is a formalized design document for the Cardano community, which provides information or outlines a proposed change to the protocol, describes Cardano processes or environment concisely but with sufficient technical detail.
A CIP has its analogues in other blockchains, for example in the Bitcoin network as BIP, or in Ethereum as EIP.
The Cardano Foundation, the entity that manages the CIPs, intends that these be the primary mechanisms for proposing new features, gathering community input on a topic, and documenting design decisions that have been made in Cardano. The CIPs are listed on GitHub and also in a website that orders and labels them to improve reading.
In the CIP-9999: ‘Cardano Problem Statements’ and then in the CIP-0001: ‘Cardano Improvement Proposals‘ it explains what a CIP is, how the process works, what role CIP editors have, and how users should propose, discuss, and structure a CIP.
CIP editors review discussions and progress at regularly held meetings. CIP editors’ meetings are public, recorded and published. Currently the editors are: Frederic Johnson, Matthias Benkort, Sebastien Guillemot and Robert Phair.
The Reward Parameters: A Brief Explanation
It is not the intention of this article to delve into the debate of ideas, as it would make it extensive, but I want to present the current situation and proposals for change.
Then, knowing these topics, you can deepen the debates, and even get involved, if it is of interest to you.
To change the parameters of the protocol is to change the incentive scheme. If we talk about the parameters that influence the rewards, the community consensus defines them as Reward Sharing Schemes (RSS), and they are the ones I already mentioned: minPoolFee, a0 and nOpt.
The parameter to0 it is currently very low and has no impact on rewards. Its goal is to create incentives for an Operator to commit more ADA coins to a single pool, instead of dividing it up. This promotes decentralization by encouraging large Operators to control fewer high-pledge stakepools, rather than many low-pledge stakepools.
So, if the parameter a0 were increased, a stakepool with more pledge would have better rewards per block signed, that would serve to combat a Sybil attack, in which malicious actors create many stakepools to take control of the network. Ultimately this is one of the main reasons why the variable was created. But it happens that raising the a0 implies that the stakepools should have a lot of pledge and then the stakepools Operators would have a high economic barrier to entry.
Increasing the parameter k would imply that more stakepools sign blocks in each epoch, something desirable for decentralization, but it will also induce Operators to divide their validation units, since saturation would be at a lower staking value, something undesirable.
At the time of writing, there are 3,217 active stakepools connected to the network, of which 2,851 stakepools have signed at least one block since their inception on the network, and 2,959 are currently staked, so you can conclude that 108 stakepools have not signed. blocks despite having staking (the staking time factor is not considered in this analysis).
The MAV, Minimum Attack Vector, is the minimum number of consensus participants that, having control of more than 50% of the blocks created, could act maliciously, validating transactions at will, and even changing the ledger of the blockchain. It’s a Sybil attack.
Cardano’s MAV is 20, the one of Bitcoin and Ethereum is 3, at the time of writing this article.
Another parameter that presents strong debates in the community is the minPoolFee. Developer Adam Dean explained the history of this parameter in a tweet thread, when in the ITN (Incentivized Test Net) before the Shelley Era, its minimum was zero, and later it was increased to ₳340 as a measure to protect the network against a Sybil attack.
In this article you can read more about this topic: Staking parameters and network optimization – where next for ‘k’ and ‘min fee’?
The Proposals Presented
The community is very active, and has members with analytical skills and willingness to work. I will present the Abstracts of some of the proposals that have a clear foundation, and that have been formalized, or are being edited, to register as CIP.
CIP-0007 | Curve Pledge Benefit
Author: Shawn McMurdo. GitHub
“Modifying the current rewards calculation equation by substituting a n-root curved relationship between pledge and pledge benefit rewards for the current linear relationship will better achieve the original design goal of incentivizing pledge to help prevent Sybil attacks. This also reduces the unfortunate side effect in the current equation that over rewards private pools which provide no additional security benefit.”
CIP-0023 | Fair Min Fees
Author: Shawn McMurdo. GitHub.
“The current minimum fixed pool fee places a large and unfair burden on delegators to pools with smaller amounts of stake. This incentivizes people to delegate to pools with higher stake causing centralization and creating an unequal playing field for stakepool operators. Reducing the minimum fixed pool fee and adding a minimum variable pool fee reduces the imbalance between stakepools with less or more stake to a more reasonable range that allows for more fair competition between stakepools and more fair rewards for delegators to stakepools with less stake.”
CIP-0050? | Shelley’s Voltaire decentralization update
Author: Michael Liesenfelt. GitHub.
“Improving decentralization is absolutely necessary for the long term health and growth of the Cardano ecosystem. The current reward formula has resulted in a stable but stagnant level of decentralization. With the benefit of hindsight over the last year the intent of
has not resulted in the desired decentralization outcome. This CIP provides the justification, methods, metrics, and implementation for an improvement program to increase decentralization of the Cardano network…”
CIP-0074 | Set minPoolCost to 0
Author: Robin of Loxley. GitHub
“A minPoolCost of 340 ADA/epoch makes popularity the basis for pool desirability, causing preferred traits like pledge and performance to be overshadowed. This has promoted stake to centralize with operators who are effective at campaigning, but do not necessarily have any stake in the system of their own. We want to create a fair marketplace for stake pools that allows the network to decentralize with time; minPoolCost is averse to that goal.”
CIP-0082? | Improved Rewards Scheme Parameters
Author: TobiasFancee. GitHub.
“The current minimum fixed pool fee places a large and unfair burden on delegators to pools with smaller amounts of stake. This incentivizes people to delegate to pools with higher stake causing centralization and creating an unequal playing field for stakepool operators. Reducing the minimum fixed pool fee and adding a minimum variable pool fee reduces the imbalance between stakepools with less or more stake to a more reasonable range that allows for more fair competition between stakepools and more fair rewards for delegators to stakepools with less stake”.
⚠ There is a recent controversy: RSS CIPs were rated inactive? Tweet.
Final Words
The decentralization in the production of blocks is desirable, but this is not useful at any cost, because it is not healthy for participants without minimum conditions of technical capacity to maintain a node and without skin in the game, can sign blocks and receive payment for it.
Having skin in the game means responsibility conditioned by economic participation.
But neither is it about defining a very high level of demand to act in the network consensus because that would give exclusivity to few participants.
The question is to achieve a balance between decentralization and fairness in participation, since the security of the network depends, in addition to a coding without vulnerabilities, also on decentralization. A difficult balance to maintain.
Evolution is dynamic, and the adaptation of parameters to maintain an ideal incentive scheme is constant, and this is where we can apply the Japanese philosophy of continuous improvement, called Kaizen.