Incentives and Delegation Team


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.

Introduction

What are incentives?

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.

Monetary Incentives

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,

Our Goal

In Cardano, we strive for perfect alignment of incentives.

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.

Delegation

Configuration of stake pools

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.

Delegating stake in Cardano

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.

Control over funds

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.

Addresses

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.

  • Base address: The staking key is directly linked to the address.
  • Pointer address: The address contains a “pointer” to a delegation certificate on the blockchain which defines the staking key.
  • Enterprise address: Staking is not possible. This address type is meant for exchanges, who are not supposed to use funds entrusted to them for protocol participation.

Delegation Certificates

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.

Stake pool registration

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.

Scenarios

Using combinations of base and pointer addresses and “chains” of delegation certificates, a large number of scenarios can be covered, including:

  • Regular user wallets
  • Offline user wallets with cold staking
  • Wallets with enhanced privacy
  • Staking pool wallets
  • Enterprise (exchange) wallets

Fees

Transaction fees

There are two main reasons for having transaction fees in Cardano, or any other cryptocurrency:

  • The prevention of Distributed Denial of Service (DDoS) attacks. In a DDoS attack, an attacker tries to flood the network with spam transactions. If he was required to pay a sufficiently high fee for each of those dummy transactions, this form of attack would become prohibitively expensive.
  • To provide funds for incentives.

How transaction fees work

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.

Monetary expansion

  • Total supply of Ada today is approximately 31,000,000,000.
  • Maximum supply is 45,000,000,000.
  • So there are almost 14,000,000,000 Ada available for incentives.
  • This is a very large amount, but not an infinite one — its use should exponentially decrease over time.

Minimal fees

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

where:

  • a is a special constant, at the moment it is 0.155381 ADA;
  • b is a special constant, at the moment it is 0.000043946

ADA/byte;

  • size is the size of the transaction in bytes.

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.

Justification

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:

Year
Used for incentives
Remaining
1
700,000,000
13,300,000,000
2
665,000,000
12,635,000,000
3
631,750,000
12,003,250,000
4
600,162,500
11,403,087,500
5
570,154,375
10,832,933,125
6
541,646,656
10,291,286,469
7
514,564,323
9,776,722,145
8
488,836,107
9,287,886,038
9
464,394,302
8,823,491,736
10
441,174,587
8,382,317,149

Incentives distribution

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.

Basic idea of distribution

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:

  • Proportional to stake controlled at the beginning of that epoch.
  • Proportional to the number of slots the stake pool was elected slot leader (not to the number of blocks created).

Note

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.

First refinement: large pools

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).

Example

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%.

Motivation

This policy should prevent stake pools from growing too large, ensuring there is decentralization of users.

Second refinement: being online

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.

Eligibility

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.

Features

Undistributed funds

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.

Selfish mining

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.

No competition

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.

Distribution to stake pool members

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:

  • The pool leader herself should be compensated for her costs (computing power, online time) and rewarded for her efforts.
  • Pool members should be rewarded proportionally to the stake they delegated to the pool.

Example

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.

Note

This is a hypothetical example meant to explain the concept of reward distribution. The figures used do not reflect future actual reward amounts.