This is an attempt to understand whether we can simply divide coins by total supply when computing leadership proofs? or is it necessary to actually infer total stake?
We’ll refer to Cardano’s implementation of Ouroboros to understand what was in their heads when they came up with this design.
First some definitions, what is meant by “relative stake?”
:Relative stake and phi link
Relative stake and
ϕ, aka phi: If some stake pool containsUada in the stake distribution from epoch numberE, and that whole distribution sums toVada, then that pool leads each slot in epochE+2with an independent probability ofϕ_f(x) = 1 - (1 - f)^(x)forx = U/V, the pool's relative stake
Ok so ignoring the “pool” aspects of this definition, we have U coins held by a validator and it’s relativized by dividing with V, the “stake distribution” from two epochs ago
What is this “stake distribution”?
:Stake distribution link
The ledger state maintains the amount of stake controlled by every issuer (every issuer is registered). The ledger takes a snapshot of this distribution at the boundary between two epochs. The snapshot taken at the boundary of epochs
eande+1is used by VRFs in epoche+2.
And “issuer”?
:Issuer link
Who can make blocks. Every issuer runs a node, but not every node is an issuer. We distinguish block-producing nodes.
So, what we call a “validator.”
In other words, stake distribution V is something like the sum of all ADA dedicated to the act of producing blocks. So the intention is to relativize w.r.t. the total active stake, not total supply.
To understand if using total-supply is a “good enough” proxy, we can have a look at today’s (Jan 23 2023) Cardano metrics, we have 22.81B **staked vs. 36.56B total supply, ~62% of ADA is staked.
For a sense of how using total supply would affect block proposal rates consider the simple case where one validator controls all the stake and we take the ratio of the probability of producing a block when relativized with total supply vs. total stake.
$$ \frac{\phi_f\left(\frac{22.81}{36.56}\right)}{\phi_f\left(\frac{22.81}{22.81}\right)} \simeq \frac{\phi_f(0.62)}{\phi_f(1)} \simeq \frac{\phi_f(0.62)}{f}\simeq0.62 \text{ for $f$ = 0.05} $$
That’s roughly a 40% reduction in occupied slots.