Proposition for improved Sybil attack resistance in the Shelley reward formula

Hello, I am thinking about Shelley reward formula and influence of an increase of the a0 factor as I know this has been a lot discussed as a potential solution to limit the (existing and future) risks of Sybil attacks on the network.

Current formula is described in paper

I have run a small simulation (attached below some scenario in pdf) to see how the Return On Stake (ROS) would be affected by an increase in a0 factor for different levels of Pool Saturation, Pledge amount, and value of factor K.

It turns out that even though it would indeed increase the importance of pledge in the ROS efficiency, it will also penalize a lot small pools because they have small pledge by definition.

To illustrate that, we can even see that small pool (less than 10% of saturation level) would be penalized in their ROS as much as what a big saturated pool having 0 pledge would be !

All that being said it makes me think that there might be “something missing” in the reward formula that is not fully addressed by the a0 factor.
What if a0 could be “improved” by making it also dependent on the actual Leverage of a Pool (defined as TotalStake / Pledge) ?

For example we could imagine replacing the current a0 parameter by (a0 + b0 * Leverage) where b0 would be a new parameter (currently being valued at 0).

If we do that, we can see that even for quite small value of b0 (e.g. 0.001), pools being highly leveraged would be substantially penalized by b0 factor in a way that will mostly affect saturated pools with very low pledge while having almost no effect on small pools (with small pledge but also small leverage) or medium/big pools with substantial pledge (i.e. reasonnable leverage as well).

If it could work the way i think, introduction of b0 should create a global financial incentive to make small pools grow quite fast in terms of delegations until they reach a certain level of equilibrium in their Leverage.

Of course it will always be possible for a single operator to create multiple pools, make them grow fast until that point, but it will then cost them a lot more pledge capital to immobilize in order to make them all run at the same time. Also, instead of creating multiple pools, they could just then increase their current level of pledge and counter the effect of b0 more efficiently…

To sum up the idea we could just say that the incentive to counter Sybil attack risk should not only be materialized through absolute low-pledge penalization, but also by relative low-pledge penalization (i.e. leverage penalization) to better balance risk/reward fairness towards level of “skin in the game” each operator will finally have.

What do you think about that idea ? Maybe there will be some side effects i don’t have in mind…

Thanks for reading !

Scenarios for simulation below (ROS multiplier is the target ROS degradation factor resulting from the change in a0 for different values of pledge, and assumptions of K, Pool saturation level, and b0)


Thought about that a bit more deeply and also compare, and combine with the proposal of a Curved Reward Benefit made by Shawn Mc Murdo.

I landed in an hybrid solution which i think solves most of the caveats of the standard formula.

More details available below:

PDF documentation:

Excel simulations :

Feel free to give me your comments !

I hope this contributions will help improve even more the quality of the cardano network :slight_smile: