The details below reflect the work taking place on incentives in Cardano. The information is taken from a presentation on staking given by Lars Brünjes, IOHK Director of Education, earlier in 2018, and shows the general direction of the research though there will be refinements and additions as the work progresses.
Incentives in the context of a cryptocurrency are ways of encouraging people to participate in the protocol, follow it faithfully, and behave in a way that is in the best interests of other users and the system.
In the case of Bitcoin, this means mining blocks and including as many valid transactions in those blocks as possible. For Cardano, it means being online and creating a block when that user has been elected slot leader, and to participate in the election process of choosing a slot leader to create a block.
Participating in the Cardano protocol incurs far less computational costs than participating in Bitcoin. Nevertheless, having slot leaders online when it is their turn to create a block or to participate in the election process is important for both the security and efficiency of the protocol.
When we talk about incentives, we mean monetary incentives in the form of Ada. In exchange for participating in the protocol and supporting the efficient operation of the system, stakeholders get rewarded by a certain amount of Ada.
However, there are other types of incentives as well: factors such as idealism or morality or the general desire to “do the right thing”.
The aim is that monetary and moral incentives should align perfectly. However, this ideal is not always achieved,
We want to incentivize stakeholders to be online when they have to participate in the protocol, for example to create a block.
People who lack the interest, technical knowledge or time to be online when needed can still participate by delegating their stake to a stake pool.
For maximal efficiency and security, a solid majority of stake (about 80%) should be delegated to a number of stake pools (about 100 seems to be a reasonable number).
The stake pools should be online when needed, and they should provide relay nodes, which are additional network infrastructure.
The remaining proportion of stake (about 20%) should belong to “small” stakeholders, who can decide to either participate in the protocol on their own or to simply do nothing.
Cardano is a proof of stake system, so holding stake, i.e. owning Ada, means more than holding Bitcoin means for the Bitcoin protocol.
Cardano is a fully-fledged cryptocurrency, so of course Ada can be used to buy goods or services. In addition to that, holding Ada also comes with the right and obligation to participate in the protocol and to create blocks.
These two aspects of holding Ada can be separated by means of delegation: a stakeholder can delegate her right to protocol participation while retaining the monetary value.
The act of delegation does not relinquish spending power. Only the right to participate in the protocol is delegated. Funds can be spent normally at any time.
There are three distinct types of addresses, each of which is associated with two cryptographic key pairs, one for payment, one for staking. All three types behave identically as far as payment is concerned.
A delegation certificate delegates staking rights from one staking key to another.
It can be published on the blockchain as part of the metadata of a transaction, in which case a pointer addresses can refer to it. Such a published certificate is called heavyweight. In case of conflicting certificates, later in the blockchain wins.
The fees for creating a heavyweight delegation certificate are the transaction fees for the containing transaction.
A lightweight certificate is not published on the blockchain, but instead included in block headers to prove staking rights for the address that was elected slot leader. It also contains a “serial number” to break ties.
Somebody wanting to create a stake pool creates a registration certificate and embeds it in a transaction that pays the pool registration fees to a special address.
The certificate contains the staking key of the pool leader.
People wishing to delegate to the pool must create (heavyweight) delegation certificates delegating their stake to that key.
Using combinations of base and pointer addresses and “chains” of delegation certificates, a large number of scenarios can be covered, including:
There are two main reasons for having transaction fees in Cardano, or any other cryptocurrency:
Whenever somebody wants to transfer an amount of Ada, a minimal fee is paid for that transaction. That minimal fee validates the transaction, although the sender is free to pay higher fees if he so wishes.
For example, a transaction of size 200 bytes (a fairly typical size) costs:
0.155381 ADA + 0.000043946 ADA/byte × 200 byte = 0.1641702 ADA.
The minimal fees for a transaction are calculated according to the formula:
a + b × size
The reason for having parameter a is the prevention of DDoS attacks mentioned above. Even a very small dummy transaction should cost enough to hurt an attacker who tries to generate many thousands of them.
Parameter b has been introduced to reflect actual costs: storing larger transactions needs more computer memory than storing smaller transactions, so larger transactions should be more expensive than smaller ones.
Although particular values for parameters a and b were calculated, these values will probably be adjusted in future to better reflect actual costs.
Over time as more people use Cardano, more transaction fees will be available to compensate for the decrease in monetary expansion.
For an arbitrary example of exponential decrease, we could set the policy of using 5% of the remaining Ada per year for incentives:
In the operation of Ouroboros, the proof of stake protocol running Cardano, time is divided into epochs and slots.
A slot lasts 20 seconds, while an epoch contains 21,600 slots and lasts five days.
Incentives are distributed each epoch. Transaction fees of the blocks created during that epoch (together with Ada from monetary expansion) are collected into a virtual rewards pool and that total is distributed amongst the stakeholders.
The rewards pool from one epoch is distributed amongst stake pools (and individual protocol participants) according to their stake.
There are two conceivable ways of doing this:
Due to how the Cardano protocol works, these methods have the same expected reward, because the probability of being elected slot leader is proportional to the controlled stake.
As a first refinement to the basic idea, the maximal proportion of the rewards pool that a stake pool can receive will be limited by 1/k, where k is the number of desired pools (k ∼ 100).
Let us assume k = 100, and consider stake pools A and B with 0.3% and 1.2% of stake respectively. Then A will receive 0.3% of the rewards pool, but B will only receive 1%.
This policy should prevent stake pools from growing too large, ensuring there is decentralization of users.
As explained in the introduction, the whole point of incentives is to incentivize people to follow the protocol. Thus stake pools should be penalized for not following the protocol and not being online when it is their turn.
As a consequence, there will be a predicate that, looking at the slots a given stake pool was elected for as leader and the number of blocks it actually created, will decide whether the stake pool is eligible for its share of the rewards pool.
This predicate might also not be all-or-nothing, but instead award a certain percentage of available rewards based on adherence to the protocol.
The predicate cannot be as simple as “created at least x% of the blocks it was supposed to”, because this could lead to nobody being online towards the end of an epoch.
Note that the two refinements explained before can lead to a situation where not all funds contained in the rewards pool will be distributed. This is a feature that allows the remaining funds to be put to use in the treasury.
Attacks like selfish mining or block withholding cannot work, because the pools are fenced off from each other. The actions of one pool only affect its own rewards.
The way the distribution of funds works means that there is no competition between pools: There is nothing one pool can do to increase its rewards by decreasing another pool’s rewards.
Note also that the way distribution of funds works implies that there is no competition between pools: There is nothing one pool can do to increase its rewards by decreasing another pool’s rewards.
Neither is there any incentive for any pool to sabotage another pool’s work.
After the rewards pool has been split between stake pools, each stake pool leader has to distribute her share of the rewards amongst her pool members, i.e. the people who delegated their stake to her pool.
The way this happens should follow two guidelines:
As an arbitrary example, consider pool leader Alice with 0.2% of stake, who forms her pool with Bob (0.1% of stake) and Charlie (0.2% of stake).Let us further assume that the reward pool for a fictional epoch contains 5,000,000 ADA and that Alice’s pool dutifully created blocks during all slots it was elected slot leader.Then Alice’s pool, which holds 0.5% of stake, will receive 25,000 ADA from the reward pool for this epoch.
Of the 25,000 ADA, Bob will get half of what Charlie gets, but Charlie will get less than Alice herself, to reward Alice for the cost and trouble of running her pool.
If Alice gets an additional 5,000 ADA for her trouble, she would end up with 13,000 ADA, Bob with 4,000 ADA and Charlie with 8,000 ADA.
This is a hypothetical example meant to explain the concept of reward distribution. The figures used do not reflect future actual reward amounts.