View on GitHub
File Changes
  \begin{changelog}
        \change{2019/10/09}{Kevin Hammond}{FM (\IOHK)}{Initial Version.}
        \change{2019/10/14}{Kevin Hammond}{FM (\IOHK)}{Polished slightly.}
-
        \change{2019/10/15}{Kevin Hammond}{FM (\IOHK)}{First draft of main net calculation.  Fixed error in Delegator calculation.}
+
        \change{2019/10/15}{Kevin Hammond}{FM (\IOHK)}{First draft of main net calculation.  Fixed small error in Delegator calculation.}
        \change{2019/10/16}{Kevin Hammond}{FM (\IOHK)}{Checked against design document. Further clarifications.}
+
        \change{2019/10/17}{Kevin Hammond}{FM (\IOHK)}{Further checking and clarification.}
      \end{changelog}
      \clearpage%
\begin{landscape}
\end{landscape}
%\floatstyle{boxed}
\restylefloat{figure}
+
\pagestyle{empty}
\cleardoublepage
% \begin{center}
% \large{Executive Summary}
% \end{center}

                      
% \cleardoublepage
-
\renewcommand{\thepage}{\arabic{page}}
-
\setcounter{page}{1}
+
% \renewcommand{\thepage}{\arabic{page}}
+
% \setcounter{page}{1}

                      
\title{An Introduction to the Shelley Incentives Scheme}

                      
  (Formal Ledger Specification. Version 1)~\cite{shelley_spec} as well as the online rewards calculator and the Shelley Incentivised Testnet and Mainnet  implementations and quality assurance programmes.
\end{abstract}

                      
+
\vspace{3.5in}
+
\noindent
+
%\begin{center}
+
\textbf{\emph{Note: this document is subject to change.  In particular, it may be necessary to include a simplified fees calculation
+
    in the incentivised testnet, where all the fees accrue to the treasury.
+
Also note that some terms and symbols that were used in SL-D1 have been changed in this document
+
in order to simplify the explanations that are given here.  These are outlined in Appendix~\ref{app:diffs}.
+
}}
+
%\end{center}
+

                      
+
\thispagestyle{empty}
\clearpage
+
\pagestyle{myheadings}
+
\renewcommand{\thepage}{\arabic{page}}
+
\setcounter{page}{1}
\section{Introduction}
\label{sec:introduction}

                      
The purpose of this document is to precisely explain the incentives schemes that will be used by the Shelley implementation
-
of the \cardano blockchain, giving step-by-step explanations of the rewards calculations.
+
of the \cardano{} blockchain, giving step-by-step explanations of the rewards calculations.
It follows Section~5 of SL-D1 (Delegation/Incentives Design)~\cite{delegation_design}, but aims to provide a more approachable
-
description that can be used by e.g. Stakepool operators or \ada{} holders who wish to delegate to Stakepools.
+
description that can be used by e.g. Stakepool owners/operators, delegators etc.
It also explains the differences between the simplified scheme that will be used in the Shelley Incentivised Testnet implementation and the
full scheme that will be used in the Shelley Mainnet implementation.

                      
The overall theory that ensures this is described in the Ouroborous Praos research
paper~\cite{ouroboros_praos}; Section~5 of SL-D1~\cite{delegation_design} provides the design rationale
for the actual incentives scheme.
-
\textbf{\emph{Note: this document is subject to change.  In particular, it may be necessary to include a simplified fees calculation
-
    in the incentivised testnet, where the fees are given to the treasury\khcomment{Check fees.}.}
-
ASlsdo note that some terms and symbols that were used in SL-D1 have been changed in this document
-
in order to simplify the explanations that are given here.
-
}

                      
\begin{figure}[t]
  \begin{center}
  Stake & An amount of \ada{} that is \emph{controlled} by a Stakepool.\\\hline
  Epoch & A fixed period of time during which blocks are created, transactions run, and rewards earned.\\\hline
Operator & The entity that is responsible for running a Stakepool. \\\hline
-
Owner(s) & The entities that \emph{Pledge} stake to the Stakepool when it is registered. \\\hline
+
Owner(s) & The entities that \emph{pledge} stake to the Stakepool when it is registered. \\\hline
  Delegator(s) & The entities that \emph{delegate} stake to the Stakepool.\\\hline
-
  Treasury & The central Repository of \ada.\\\hline
+
  Treasury & A Central Repository of \ada{} to be distributed in future.\\\hline
  Reserve & The \ada{} that is not yet in circulation.\\\hline
-
  Reward & The \ada{} that is distributed to the Owner(s) and Delegator(s) of a performant Stakepool.\\\hline
+
  Distribution & The \ada{} that put into circulation in an Epoch.\\\hline
+
  Reward & The \ada{} that is distributed to the Owner(s) and Delegator(s) of a sufficiently performant Stakepool.\\\hline
+
  Mainnet & The full Shelley \cardano{} implementation.\\\hline
  \hline
\end{tabular}
\end{center}
\end{figure}

                      
\newpage
+
\subsubsection*{Notation}
+

                      
+
Throughout the document, the colour coding below is used to distinguish the sources of various parameters.
+

                      
+
\begin{tabular}{||l|l||}\hline\hline
+
  \textbf{\color{green} Green} & Parameters that are set by the \cardano{} system \\\hline
+
  \textbf{\color{red} Red} & Parameters that are set by a Stakepool's Owner(s)/Operator \\\hline
+
  \textbf{\color{blue} Blue} & Parameters that are set externally \\\hline
+
  \textbf{\color{cyan} Cyan} & Parameters that are observed from the running implementation \\\hline
+
  Black & Calculated parameters \\\hline
+
\hline
+
\end{tabular}
+

                      
\subsection{General Parameters}

                      
\begin{figure}[h!]
\begin{center}
\begin{tabular}{||l|l|p{10cm}|l||}
  \hline \hline
\textbf{Parameter} & \textbf{Expected Value} & \textbf{Definition} \\\hline
-
\emph{k} & 50-1000 & The Target Number of Stakepools \\\hline
-
$T$ & 10\% & The Treasury Top Slice Percentage \\\hline
-
$\textit{MER}$ & 10\%-15\% &  The ``Monetary Expansion Rate'' per Year \\\hline
-
$\textit{DPE}$ & 1-5 &  Elapsed days per \cardano{} Epoch \\\hline
+
\textbf{\color{green} \emph{k}} &\textbf{\color{green}  50-1000} & \textbf{\color{green} The Target Number of Stakepools} \\\hline
+
\textbf{\color{green} $T$ } & \textbf{\color{green}  10\% } & \textbf{\color{green}  The Treasury Top Slice Percentage } \\\hline
+
\textbf{\color{green} $\textit{MER}$ } & \textbf{\color{green}  10\%-15\% } & \textbf{\color{green}   The ``Monetary Expansion Rate'' per Year } \\\hline
+
\textbf{\color{green} $\textit{DPE}$ } & \textbf{\color{green}  1-5 } & \textbf{\color{green}   Days per Epoch: Duration of a \cardano{} Epoch } \\\hline
  \hline
\end{tabular}
\end{center}
%
The target number of Stakepools is used to cap the rewards that any individual Stakepool can receive. The intention is to encourage the creation of more Stakepools, and to avoid domination by any single stake holder.
The \emph{treasury top slice percentage} is the fraction of reward that is allocated to the treasury to cover fixed operating costs, and
-
ensure the long-term viability both of the \cardano{} system and of \ada{} as a currency.  It is initially set to a small percentage (10\%) of the rewards.
+
ensure the long-term viability both of \cardano{} and of \ada{} as a currency.  It is initially set to a small percentage (10\%) of the rewards.
The \emph{monetary expansion rate} is the rate at which rewards are allocated from the \emph{reserves} of \ada{}.

                      
\begin{figure}[h!]
\begin{center}
\begin{tabular}{||l|l|p{6cm}|l||}
  \hline \hline
\textbf{Parameter} & \textbf{Value} & \textbf{Description} & \textbf{Calculated as} \\\hline
-
$\textit{Ada}^{Tot}$ & \ADA{45bn} & The total \ada{} that could ever be created & \\\hline
-
\emph{P} & 20\%-50\% & Participation Rate in the Shelley Incentivised Testnet & \\\hline
-
$\textit{Ada}^{\textit{Circ}}$ & \ADA{31bn} & The total \ada{} in circulation at Shelley launch & \\\hline
-
$\textit{Ada}^{\textit{Rsv}}$ & \ADA{14bn} & The total \ada{} in the reserves at Shelley launch & $\textit{Ada}^{Tot} - \textit{Ada}^{\textit{Circ}}$ \\\hline
+
\textbf{\color{blue} $\textit{Ada}^{Tot}$ } & \textbf{\color{blue}  \ADA{45bn} } & \textbf{\color{blue}  The total \ada{} that could ever be created } & \textbf{\color{blue}  } \\\hline
+
\textbf{\color{blue} \emph{P} } & \textbf{\color{blue}  20\%-50\% } & \textbf{\color{blue}  Participation Rate in the Shelley Incentivised Testnet } & \textbf{\color{blue}  } \\\hline
+
\textbf{\color{blue} $\textit{Ada}^{\textit{Circ}}$ } & \textbf{\color{blue}  \ADA{31bn} } & \textbf{\color{blue}  The total \ada{} in circulation at Shelley launch } & \textbf{\color{blue}  } \\\hline
+
\textbf{\color{blue} $\textit{Ada}^{\textit{Rsv}}$ } & \textbf{\color{blue}  \ADA{14bn} } & \textbf{\color{blue}  The total \ada{} in the reserves at Shelley launch } & \textbf{\color{blue}  $\textit{Ada}^{Tot} - \textit{Ada}^{\textit{Circ}}$ } \\\hline
\hline
\end{tabular}
\end{center}
and the \ada{} that is held in reserve when the system starts.
These values are fixed and will not change.

                      
-
\clearpage
+
%\clearpage
\subsection{Stakepools}

                      
\subsubsection*{Operator-Set Parameters}
\begin{tabular}{||l|l|p{9cm}||}
  \hline \hline
\textbf{Parameter} & \textbf{Range} & \textbf{Description} \\\hline
-
{\color{red} $\textit{Pool}^{\textit{Cost}}$} &  & {\color{red} Cost per day in \ada{}} \\\hline
-
{\color{red} ${\textit{Pool}}^{\textit{Margin}}$} &  {\color{red} 0\%-100\%} & {\color{red} Percentage fee on rewards (the ``margin'')} \\\hline
+
       \textbf{\color{red} $\textit{Pool}^{\textit{Cost}}$} &  \textbf{\color{red}  \ADA{0} $\ldots$} & \textbf{\color{red} Cost
+
         \emph{per day} in \ada{}} \\\hline
+
\textbf{\color{red} ${\textit{Pool}}^{\textit{Margin}}$} &  \textbf{\color{red} 0\%-100\%} & \textbf{\color{red} Percentage fee on rewards (the ``margin'')} \\\hline
  \hline
\end{tabular}
\end{center}
\caption{Key Parameters that are set by the Stakepool Operator.}
\end{figure}

                      
\noindent
-
The two main parameters that need to be set by the \emph{operator} are the cost per day that will be charged to
+
The two main parameters that need to be set by the Stakepool \emph{Operator} are the cost \emph{per day} that will be charged to
the pool (in \ada), $\textit{Pool}^{\textit{Cost}}$; and the percentage of any rewards that will subsequently be taken as a fee, ${\textit{Pool}}^{\textit{Margin}}$.
The cost is subtracted from the total rewards that are earned by the pool before any rewards are distributed.
These parameters are advertised by the Stakepool and used as part of the public ranking scheme.
  non-refundable deposits.
\end{enumerate}

                      
+
\noindent
+
In the Incentivised Testnet, only the first source is likely to be used.
+

                      
\subsubsection*{The Rewards that are received by a Stakepool}

                      
The rewards that are received by a Stakepool will be proportional to the total amount of \ada{} that it controls
as a fraction of the total \ada{} that is in circulation.  The \emph{treasury top slice} is deducted from the total \emph{distribution}
in an epoch, then the remainder plus any fees is distributed proportionately to each Stakepool.  In order to avoid domination by large Stakepools,
a rewards \emph{cap} will be applied to any single pool, based on the target number of Stakepools, $k$.
-
This is described in more detail in Sections~\ref{sec:testnet} and~\ref{sec:mainnet}.
-
\khcomment{Check: fees before or after cap?}
+
This is described in more detail in Sections~\ref{sec:testnet} and~\ref{sec:Mainnet}.
+
% \khcomment{Check: fees before or after cap?} Before, as described

                      
+
\clearpage
\begin{figure}[h!]
\begin{center}
\begin{tabular}{||l|p{9cm}|l||}