I loved Itn and Cardano, but I may not love mainet because of a0!

This is an interesting discussion. I’ve only had time to scan it so far, unfortunately, but I’ve pointed my colleagues at it, who can hopefully answer in more depth. On the mainnet, rewards should be distributed more evenly to pools, so pool size should not matter as much as on the ITN (even small pools will receive rewards that are proportional to their stake). Our modelling shows that all pools in the top k will receive a similar RoS at saturation (the equilibrium). Pledge can be used to compensate for high pool operating cost and support higher margins.

There is ultimately a balance to be struck between the number and quality of pools, and also with the required level of security against attack. It is a complex dynamic system.

Hope that helps a little!

5 Likes

Hum this sounds very strange to me that you may say that. Can you then confirm that the formula that is going to be used in the mainet is still the following and that you did not change it (yet)? just to make sure this whole thing is not a terrible misunderstanding.

cardano2

(If so I really don’t see how higher values of a0 may not advantage more big pools really, or could distribute rewards evenly, see the thechnical post).

I was referring to the rewards for block production, which have edge effects on the ITN (small pools may/may not produce blocks and then may/may not receive rewards, so affecting their performacne). What value ranges are you assuming for a0?

I’m not assuming any particular value range for a0. If the formula in my previous post applies then the higher is a0 the worse it. But the problem to me is the logic of a0, so even with small values it’s not the right way to go. I cannot say let’s just take a0=0 and not change the formula, cos it would make the whole thing susceptible to Sybill attacks. So I say let’s just take f(σ,s)=R * min( σ , 1/k , b0 * s ).

so affecting their performacne

Short term performance but not necessarily long term right?

On my pool I had my higher lifetime RoS when I was very small, and validated blocks for the first time. I’ve needed to be patient and wait a while for RoS to go above 0, i.e validating my first block, but I’ve had luck so that I got my first block(s) a little before the Expected time, giving me a very good lifetime RoS at that time. But even without being lucky with a0=0 on average my expected lifetime RoS would not have been a disadvantage in the long run (except if I missed something).

On the ITN there can be something of a “death spiral”. You don’t have enough delegation, you make no blocks, your performance falls so your chance of gaining delegation falls. I tried to run a pool as an experiment and failed miserably (no ada was made in the course of the experiment, but some real money was lost on compute time :)).

If you’re lucky, you will at some point be picked and produce a block (as with your pool), in which case your performance spikes for an epoch. However, no sane delegator will touch you, so your performance falls again - you will have low desirability. On the mainnet, your pool would simply be starved at that point. a0 does influence desirability, but only because of the impact on rewards. Even with a0=0, the pool will not be desirable if it does not consistently produce blocks.

Fortunately, on the mainnet you will be rewarded on apparent performance. This measure can include an assessment of how well you do against your statistical behaviour. You will be higher in the ranking than on the ITN, there will be consistency of rewards, and you can attract delegation. You will be a desirable pool.

You could also, if you choose, use pledge to make your pool more desirable, in which case you would be raised higher in the ranking or could charge a higher margin, but there is no mandatory minimum pledge level, and the pledge that you require to achieve a higher ranking will depend on other public pool operators. In equilibrium, the model shows that all top-ranked pool operators will receive a similar RoS regardless of their ranking.

Remember also that if pool owners put too much pledge, they will be saturated and lose rewards. This means that their desirability will reduce, and delegators will choose alternatives. They will split their pledge and start another pool, or run as a purely private pool.

The main protocol parameter to be concerned with is “k” rather than “a0”.

1 Like

There can be such a spiral if people are delegating to you according to your RoS rather than because they trust you and/or want to help you because they are your friend, or one of your thankful follower on YouTube e.g . (And if they have good reasons to believe the expected RoS of your pool is the same than another one).

This highlights that this was kind of ridiculous to incentize people to delegate according to RoS, when RoS depended on luck. It’s not because you were lucky or unlucky in the past, that it will be the same in the future.

However, no sane delegator will touch you

When I was lucky with my pool some people delegated high amounts to my pool, only to take it away few days latter, when realizing I did not find a magic formula, but was just lucky. From what I’ve seen it happened in many pools.

Fortunately, on the mainnet you will be rewarded on apparent performance. This measure can include an assessment of how well you do against your statistical behaviour. You will be higher in the ranking than on the ITN, there will be consistency of rewards, and you can attract delegation. You will be a desirable pool.

Yes that’s a very good thing, but it does not change the point of this post, it’s something else.

You could also, if you choose, use pledge to make your pool more desirable

With the above formula it would not work if you are a small pool, as showed in the technical post

The main protocol parameter to be concerned with is “k” rather than “a0”.

I do not agree with that. k should ensure there are at least k pools, but not prevent that there are more if people want to. High a0 will imply there cannot be more than approximately k viable pools, by whipping out small pools.

Also a very important thing that needs to be noted

You might say small pools are not important let’s just ignore them. Actually they are. Many business that are huge today started small. Many youtuber that have millions of followers today, started very small. Bitcoin and cryptocurrencies started very very small.

If we kill the possibility to start small, and grow progressively that’s terrible!. We are killing future big pools that would have emerged. We are giving very dangerous monopoly to already established pools.

1 Like

There is a high probability that in a year we will see mega large pools.
And they will be exchanges…
This is already observed on the example of many projects using the corresponding algorithm.

https://staking.cardano.org/calculator/

I’d like to nail things down about the very dangerous monopoly

Suppose that we have k saturated pools with 10% pledge. How a new pool could compete with them?

Well at the very beginning a new pool will start only with pledge and no delegators so its reward formula will be f(s, σ) = R / (1+a0) * ( s’ + a0 * s’^3/z0^2 )

Now to attract delegators he will need to compete in the first place with the RoS of the k saturated pools. The reward formula for those pools is f(s, σ) = R / (1+a0) * ( zo + a0 * z0 / 10 )

Therefore to start competing in term of RoS the new will will need to have s’^2/z0^2=1/10 that is s’= z / sqrt(10) = z/ 3.16.

Therefore a new pool will need to invest a pledge almost 3 times superior than already established pools to start compete with them in terms of RoS and attract delegators, (then he will be able to lower it’s pledge as he gets delegators).

At this point it seems to me that it starts to be hard for anyone to argue that this formula is viable in any way.

“why do we introduce a0 rather than simply limit the ability to receive delegated staked ADA proportionally to pledged ADA?”

Short answer :

  • You don’t want an infinite number of pools for technical reasons (propagation…), nor too little for decentralization

Basically you want to make it expensive to gather 51% of the staked adas, while keeping the number of pools limited :

  • Your proportional approach answers the expensive part, but is unbounded in the upper number of pools

So to have a limited number of pools, you need them to be expensive :

  • Fixed registration fee : Mostly viable, but not dynamic and does not withstand a catastrophic market crash (fee is linked to market price).
  • Pledge : But you need to incentivize people to put money (or seen differently, reward people for securing the network) => a0. Dynamic

Proof of Stack protocols are plutocracies, the rich rule, nothing pretty about it

1 Like

“Suppose that we have k saturated pools with 10% pledge. How a new pool could compete with them”

From what I gathered, but still need to personally confirm :

Pools will be ranked by “desirability”, at least in daedalus. This desirability will be a function of your parameters and “potential” attractivness, not your RoS. I see it as “potential RoS if fully stacked” metric

That should tell stakers what pool has the more potential, opposed to short term RoS. A new pool would need to be better in pledge or cost, but only slightly, not to the extent you mention.

works in theory with informed actors

I wonder why you said that Mainnet is not live yet? so If I send ADA to Daedalus wallet what will happen to my ADA coins? should I get it back to the exchange and send it to Daedalus wallet after Shelly?

Can you elaborate on that. I don’t see any downside to having as many pools as people wish, as long as they do validate a block at least in a while (otherwise it’s pointless). You may have for constraint that you don’t get rewards if you did not validate block in the last 60 (or whatever amount of) days.

Anyways my approch won’t prevent to naturally steer things to having big pools. Because it’s always more cost effective, and easier to market to centralize things to one big pool than having a myriad. As we saw with ITN there were many big pools naturally, without need for a0.

Anyways with a0, there is no limit in the number of pools either, how can you be sure there will not be a Miriad of small pools, that do it even if it’s inefficient RoS-wise or money-wise , just for the fun of validating blocks, or to make sure the network is secure by participating to it? (That happened in ITN, that happened at the begining of bitcoin, money is not the only source of motivation fortunately). Or even to attack it (not Sybill attack to take control of it, but in a DoS-like attack), if you say it would be problematic for the network’s proper operation (of what I’m not convinced).

Your proportional approach answers the expensive part, but is unbounded in the upper number of pools

No, with my approach there is no advantage whatsoever for a Sybill attractant with an available pledge s to open many small pools rather than few large one. It’s easier to market and maintain and make grow few large ones, than many little ones, and he will not get more stake overall since it’s limited proportionally to their pledge in the first place.

Proof of Stack protocols are plutocracies, the rich rule, nothing pretty about it

It does not have to be if you don’t make it so. The rich do not necessarily have more stake than the many people sumed up. This whole formula is unfair and there is no rational for it. Anyways if Cardano intentionally and needlessly goes this way it will be without me for sure. And I would even say that It would need to be forked ASAP, because we need a fair PoS crypto.

But will people delegate according to what deadelus tell’s them, or according to how much money they will make if they delegate cleverly with all publicly available data, i.e delegating to higher RoS pools?

A pool may have a lot of “potential” according to Daedlus, but if it has currently low RoS, delegating to it now will mean loss of money. If people care about their own money and are clever they won’t do it., they will wait for the pool to have sufficient RoS (if they have that much potential why not wait and see?).

Even more true when there will be a bot for automatic delegation.

I meant shelley mainet. Currently it’s Byron, very different technically.

You do have a way to read what you want to read.

As mentioned, your proportional approach answers the sibyl attack. No need for an attacker with a lot of pledge to have a lot of pools, but it is still really expensive. So that part is covered.

But nothing prevents an explosion in pool numbers.
If it does cost “nothing” to have an efficient pool in term of RoS (not even an entry fee), you can potentially have 35 billion “efficient” pools. Not what would happen in real life indeed, but nothing prevents it in terms of incentive.
So, even if you take a “smaller” number, let’s say 100k pools :

  • Propagation time would explode, with multiple forks, transaction validation would increase. This is the network topology to propagation effect
  • The overall cost of your network is directly linked to the number of pools

So, do you agree that the number of pools need to be limited in some way ? That there is an optimal in terms of performance ?

If yes, how does your proportional approach answers this ?

I understand that pools would be expensive, in relative terms, however am I mistaken that I heard/seen Pools can collaborate in order to competitive?

Short answer: no

Long answer: No, expect maybe to give rewards only to pools that at leats got a block in last 60 days or so, because otherwise it becomes pointless to have a pool if you never get a block, and your pool may not but running at all.

I might change my mind if it’s proven there would be impracticable consequences to having a lot of pools, that may happen in my proposal, but will definitively not with a0 even in case of an attack.

That there is an optimal in terms of performance ?

I do agree with that: there is an optimal: to have only one pool and make a centralized thing.

have 35 billion “efficient” pools.

You may have as many efficient pools as you want you will always have a way more limited amount of slot leaders, for an epoch, that will be picked ahead of time.

but nothing prevents it in terms of incentive.

There are incentives to have a larger pool whenever possible in my proposal: similar operating costs and marketing costs, but way higher returns. (And to some extend the registration fee which is 500ADA might be nothing for one pool, but not anymore if you create 1000 or 10 000 pools)

The overall cost of your network is directly linked to the number of pools

Yes but let’s not revert causality, the amount of available rewards will determine the number of possible viable pools, not the contrary (and it also highly depends on the market value of ADA )

And even if I agreed with that ( Which I do not ) a0 would probably not be the way to go. There seemingly would be much less nasty side effects to enforce that a maximum of k’ pools would have rewards and chances to validate a block in an epoch (those who have the more stake). You could take k’=10 000 or whatever. Then a newcomer would only have to become bigger than the last k’th pool to enter the game, not come with a pledge 3 times higher than the currently largest established pools.