An Alternative to a0 and k

TLDR: k is a soft cap on the number of pools, but says little about the decentralization state of Cardano, due to pool splitting. It appears that a0 allows for ‘affluent’ individual’s (whales) and organization’s pools the ability to receive 20% or more return on stake compared to most stake pools. An alternative set of parameters is proposed that still provides resistance to Sybil attack while reducing or removing altogether the incentive for pools splitting. While these new parameters might provide an improvement over the current a0 and k parameters, as discussed previously (Proof of stake, decentralization, and network parameters), they cannot in and of themselves counteract the centralizing effects of free market capitalism in systems such as PoS networks.

Notation:
a0 – parameter determining owner-stake influence on pool rewards
z0 – relative pool saturation size
k – 1/z0
f – optimal pool reward function
f0f(a0 = 0), maximum pool reward function
R – total available rewards for the epoch in ada
S – stake pledged by pool owners
s – relative stake pledged by pool owners (vs pool’s stake)
Σ – stake delegated to the pool
σ – relative stake of the pool (vs total stake)
L – leverage factor
B – Baseline (or bonus) saturation
ΘL * S + B, pool saturation limit
θΘ/Σ, relative pool saturation
θ’ – min(1,θ), saturation function

Current Parameters
k is a soft cap saturation limit for the size of a stake pool, which divides the total stake into k units. The predicted response of the system assuming ideally rational delegators is that over time all k stake pools would become fully saturated with any pool outside of the top k pools eventually dissolving. The reality is that economics is a major factor, but not the only one, determining a delegators preference and a system with mostly rational delegators would present a perturbation to the ideal system and more than k pools would exist, some number of those not fully saturated.

a0 determines the reward structure as a function of pledge for unsaturated pools. Higher a0 means that rewards are skewed more towards those with higher pledge, thereby incentivizing pledge and making a Sybil attack less likely.

The “optimal” rewards for a pool is given by the equation, f, in the following figure (pg 37 in https://hydra.iohk.io/build/3744897/download/1/delegation_design_spec.pdf). When a0 = 0, pledge has no effect and each pools optimal reward and is simply the proportion of their stake to the total stake of the network, σ, or the relative pool saturation limit z0, whichever is lower. If we plot the optimal reward equation, f, after normalizing it to the baseline of when a0 = 0, f0 = f(a0 = 0), it becomes apparent that the rewards with a0 > 0 are always less than that for when a0 = 0 and f/f0 < 1. If the equation is implemented directly as written (someone please correct me if they know that it this is not the case of if this analysis is not correct), the effect of a0 is to reduce the rewards that everyone receives, but with a more substantial reduction for pools with lower pledge. The presumption is that the discrepancy in rewards between f and f0 is either returned to the reserves or simply never withdrawn to begin with, either effectively reduces the monetary expansion coefficient, ρ.

f

An example plot for f/f0 vs σ is shown in the second figure for k=500 (z0 = 0.002), a0 = 0.3 (current value), and the relative pool pledge s=0.0001 (~3.1M ada), showing that this pool’s optimum reward is more than 20% lower than would be expected with a0 = 0 regardless of how many delegates they attract (i.e. even when fully saturated at σ = z0 = 0.002). The relative rewards only approach 1 in the limit that the pools pledge approaches the saturation limit. This allows IOG, Emurgo, CF, exchanges, and whales who own ~1/k of the total stake (~64M ada with k = 500) to make saturated pools entirely of pledge that generate an additional 20% or more in rewards than most regular pools, under the current a0. Any increase in a0 exacerbates this issue (ex: doubling a0 to 0.6 would create more than a 35% discrepancy). This discrepancy in rewards, “the affluence advantage,” is a0/(1+a0) vs a pool with no pledge and decreases linearly as the pledge of the ‘regular’ pool is increased (assuming saturated with delegates, see the third figure).

Pool Rewards Rel a0 Affluence Advantage

This situation seems even worse if one considers that the current a0 = 0.3 is so low that it is ineffective at preventing a Sybil attack due to the negligible change in rewards at low pledge amounts (pools with 0 to ~1 million ada pledge). Now, it is worth mentioning that there is a difference between earning rewards, as a SPO, based upon your own capital (pledge) vs someone else’s capital (delegation). Perhaps, some discrepancy in relative reward is justified between the two cases, but I might argue both over the magnitude of what an appropriate discrepancy would be as well as that such a discrepancy should not be tied to Sybil resistance. A full evaluation of the rewards of a saturated stake pool vs a pure pledge pool under the various possibilities of margin costs and network parameters is beyond the scope of this post. In lieu of suggesting optimal parameters, I propose a new set of parameters altogether.

An Alternative: Pledge leverage factor L
Since saturation via k incentivizes a certain number of pools, but does nothing to assure decentralization and a0 merely incentivizes being wealthy, the simplest solution is to do away with both k and a0. One simple solution is to make each pools saturation directly linked to the its pledge via a leverage factor, L. For example, each pool would receive equal relative returns so long as their pledge + delegates was less than or equal to the pools pledge multiplied by the leverage factor, i.e. Σs * L. As is currently the case, an oversaturated pool’s reward would be capped to its rewards at saturation.

The use of such a simple methodology achieves a number of things:

  1. It prevents Sybil attack as the number of delegates a pool can have (before saturation) is limited by their pledge
  2. It reduces or altogether prevents pool splitting (if L is a constant) as there is no longer any incentive to create more pools (aside from taking up a larger portion of “real estate” in stake pool browsers)
  3. L does not couple with the monetary expansion parameter (unlike a0) unless oversaturated pools exist (with negligible effect unless pools are grossly oversaturated).
  4. The reward structure is more equitable by not strictly favoring stake pools with large amounts of ada pledged.
  5. Due to 4, delegators choices are made simpler as there are fewer variables to weigh.

Some side effects to consider are:

  1. There will still effectively be a minimum amount of capital required to stay viable. While rewards on a percentage basis are more equitable, there will still be contention for consistent block production. (Note: while at best it is a soft limit, the number of blocks per epoch is likely to contribute to an ‘effective’ k parameter. This would be partially psychological in nature due to delegators evaluating pools on a per epoch basis, with viable pools likely to only be ones that can consistently mint at least one block per epoch.)
  2. It limits pool options for large delegations or “golden tickets” as the saturation limit depends on the SPOs capital.
  3. There is very little incentive for setting up private pools.

It is suggested that initially L be set quite high (≥ 20) to allow for small stake pools time to migrate from the previous system, establish themselves, and earn sufficient rewards to be able to improve their pledge and grow. Additionally, a baseline parameter B is proposed to be added to the saturation limit to aid small pools. B should be large enough to incentivize pool formation, while being small enough to not enable a saturated 0 pledge pool the ability to consistently mint blocks. Should this not be sufficient, the saturation could be changed to any arbitrary function dependent on pledge (for example, an exponentially decaying function). It should be noted; however, that certain functions, including the addition of a baseline B, may reintroduce an incentive for pool splitting.

To recap the proposal is to:

• Changing the rewards function to f = R σ θ’ where θ’ = min(1, (L * S + B) / Σ)
• Set L = 25
• Set B = 100,000 ada

Please consider this set of parameters, debate over what they should optimally be, add suggestions, and correct me if I have made any mistakes, misunderstandings, or poor assumptions. I would also be interested in seeing someone run this through some sort of a game theory analysis to see if the network converges to some equilibrium.

7 Likes

Thank you for highlighting the issues and the outlined proposal.
What would be the incentive towards decentralization (or here, “number of pools”) via the use of the Pledge leverage? It seems as though it would form clusters of sorts similarly to current setup, is that what you hint in your first point about PoS systems / the inevitability of concentration of affluence? (and if that is the case, wouldn’t an artificial k still be a better option?)

FYI - Another proposal was looking at tweaking the reward model directly: CIP 7 - “Pledge Curve Benefit”

This at least partly explains how Binance can offer extra returns to lock in and delegate with them (they may be additionally subsidising).

If correct, in the longer term we might expect this to lead to exchanges or other custodial services running stake pools as they will be able to outcompete the market. Unless delegators value keeping direct control of their ADA more…however human nature suggests most people will not care that much about direct control or decentralisation.

CIP 7 would appear to be a simpler way to get to the same goal of preventing this?

You are correct, in that, as I alluded, I see it that both systems do not incentivize decentralization directly. I would argue that a good metric for decentralization is not as straightforward as the number of pools or even the number of SPOs. To me, a better metric would be the average number of unique block producers per epoch. Even this can be somewhat skewed though. This proposed solution is meant to be more of an iterative improvement on the current method, as a “best” solution (in my mind at least) is likely to require re-examining PoS entirely. I hope that the current solution is both more equitable and would lead to an easier analysis of the state of the network (i.e. as there is no/less incentive to split pools the number of pools more closely relates to the degree of decentralization than in the current system).

To answer if I think an artificial k is still a better option, I would say no, not in its current form. I would say that it is worse because it can lead to a false sense of security in the network. We could have k=1000 pools, but if 80% of the blocks were to be produced by the same entity, we’d be no more decentralized than when Shelley first released. Aside from the decentralization aspect, I find the current optimal rewards function overly-complicated by seemingly coupling with the monetary expansion term. Note: It would be great if someone could verify that this is the case, as I haven’t compared the true expansion with the intended expansion. Or if someone can link me to the reserves, T-T, (between Shelley launch and epoch 234) I could run the numbers myself.

That being said, the incentive for “real” decentralization with this solution is the same as in the current system, free market competition for resources. If a person thinks that they can provide a better stake pool service, then are free to compete with the rest of the market (on what I would consider a more level playing field with this proposal). On the flip side, a truly free market (no regulation) allows those on top to engage in anti-competitive behavior. Of course, if we go much further, the question becomes one about what behaviors a protocol can incentivize/enforce and what is outside of the domain of the protocol.

Thank you for the link, I hadn’t seen the other CIP! It looks similar to where I started with this proposal and think it could be an improvement. However, I also think that it muddies an already complicated optimal reward function by adding two more parameters. After a certain point, you might as well ditch an explanation of all of the parameters and just use the curve itself (lookup table). I went through and found CIP: change the reward formula which has a similar approach, but still puts a 1/k saturation limit (though I don’t necessarily share the proposers viewpoint on the subject, in general).

Edit: @danny_cryptofay linked me to some circulation/reserve data he has. I’m a bit confused about the drop at epoch 209, but if I’m interpreting it correctly it appears that the current optimal rewards function does indeed interfere with monetary expansion. The effective expansion coefficient appears to be closer to 0.0015 which is about 68% of the expected expansion coefficient of 0.0022 (see slopes in plot). I realize that I’m fitting a linear curve to an exponential decay, but at short time scales such as this, it’s a close approximation.
ADA Reserves

1 Like

I suppose that it depends on what you mean by simpler. I find my proposal much simpler overall, however, I acknowledge that there is some “complexity” involved with transferring from one system to an entirely different one. CIP 7 has the benefit of keeping the terms some are familiar with (k, a0), but I think that it’s evident that most people are confused as to how modifying these terms changes things. So, in short, I would say that my reward function is far simpler, but CIP 7 might be more familiar.

P.S. While Binance could use this, they aren’t currently (their pools have 0 pledge, not to mention that they’re over saturated). Why they don’t, I have no idea. Maybe they should do it and pay me a commission for pointing it out :wink:

2 Likes

There is evidence that whoever is running the Binance pools is not on top of their game. They forgot to register them on the usual places like adapools and so they were claimed by other actors, with negative (but possibly fair) pool descriptions added.

1 Like

The big drop initially is due to ITN rewards in amount of about 593,555,933 ADA being moved over. It is listed in the Treasury tab in the Catalyst Dashboard, too.

1 Like

What about 2mil max stake / 20,000 pools = 40,000,000,000 ADA :smiley: seems like a diverse eco system