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

When you said that “bigger pools do not have an advantage” I guess you mean an “unfair” advantage? If a bigger pool means a pool with more stake, and chances in the lottery are proportional stake, then it should follow that bigger pools will win the lottery more times due to their larger stake. Or am I missing something?

Thanks so much for taking the time to respond to these questions!

It’s precisely as you say, monetary expansion and fees: Each epoch, a fixed percentage of the remaining reserves (we’ll probably start with 0.22%) is used for the rewards pot. All transaction fees contained in blocks created during that epoch are added. Then a certain percentage (we’ll start with 5%) is subtracted and sent to the Treasury. The rest is used for rewards for that epoch.

Yes, exactly. The only caveat here is that those lotteries are private, so we don’t really know how oftern anybody was elected slot leader. We estimate this by looking at the pool’s stake - because we know chances of winning the private lottery are proportional to stake. This is only an estimate, so there will be some statistical fluctuation, so even when a pool faithfully creates all the blocks it can, the pool’s performance won’t always be 100%. Sometimes is will be higher, sometimes it will be lower. But on average, in the long run, it will be correct.

The number of created blocks is significant because of its influence on performance, as explained above. So what matters is the ratio of created blocks versus the estimated number of blocks that should have been created. Apart from that, pool rewards depend on pool size (stake) and pledge.

In principle, rewards should be proportional to total stake in the pool: I pool with twice as much stake should get twice the rewards. But there are a number of modifications to that basic principle:

  • When a pool becomes saturared (in our case 1/150 of total stake), rewards are capped at that point. This prevents pools from growing too large.
  • Pledge has an influence: Pools with higher pledge get slightly more rewards. This is for Sybil protection.
  • Performance, as explained above, is taken into account: If you miss half your blocks, you only get half your rewards.
1 Like

I was alluding to the Bitcoin slogan “one CPU, one vote”, which people use to explain how hashing power determines influence in Bitcoin or other Proof-of-Work systems. In Proof-of-Stake systems this gets replaced by “one coin, one vote”.

“Vote” here is taken as general influence on the stability of the system. When people talk about “51% attacks”, they talk about votes in that sense. It’s not 51% of people, it’s 51% of hashing power in the case of PoW and 51% of stake in the case of PoS.

But yes, you are right. When we get to Voltaire, the “voting power” will acquire a more literal meaning.

Your “voting power” (= influence on the system) only depends on your stake. But two people with the same stake could get different rewards if they delegated to different pools. So what I tried to say was: Your influence on the system only depends on your stake, but your rewards for that stake may depend on your delegation choices.

1 Like

One more (for now!!) question - if a pool creates all the blocks it can but still has a performance of less than 100%, is that because the “performance” metric is calculated based on approximate number of block elections compared to actual blocks produced (due to the privacy of the lottery that you mentioned)?

And who is/can calculate the performance metrics? I assumed Pools were calculating this themselves based on the number of assigned blocks compared to the actual blocks produced. But are you saying that no one knows (not even the pool themselves) how often they are elected to be the slot leader?

And again - many, many thanks for the time you are spending answering these questions.

The performance should be number of produced blocks divided by times elected slot leader, but yes, because the lotteries are private, we don’t know the latter number and have to estimate it. So we replace it by relative stake times number of slots per epoch.

The pools themselves know, but we can’t take their word for it - it would be in the pool’s interest to lie and inflate their performance. The pool performance calculation must be verifiable by all participants, just looking at public chain data. So even though the pools themselves know their true performance, we have to get by with an estimation.

It’s a pleasure! One of the really cool things about Cardano (and other open source blockchains) is that everything is transparent and publicly verifiable. But this only helps if the “public” actually understands what’s supposed to happen and how it all works. So it’s important to explain the mechanisms to the Community.

2 Likes

@Lars_Brunjes
Just so that things are clear. Do you plan to keep on with our discussion later? Are you making a pause to take the time to reflect more deeply on what I have expressed in my last messages? Or because you won’t have time to go on with this conversation?

Thank’s a lot! :slight_smile:

@pparent76 I do plan to keep on, yes. Sorry for not answering sooner, lot’s of things going on. I’ll answer when I find a quiet moment. It’s not something I can just pull out of my sleeve, I’ll have to think carefully about how to answer you. :smile:

4 Likes

Ok looking forward to it. I’m extremely curious to see if you’ll be able to give new elements that would provoke an unexpected turnaround; or if not, when and how you will admit that I am right, if at all! :smile:

Nash equilibrium with k pools

Just to avoid any confusion here, I mean that in my scheme, there is ONLY one class of Nash equilibrium with k saturated pools. And there can be no other situation being a Nash equilibrium without k saturated pools, (if we suppose there is no problem of trust between actors). Like for other good properties I claim, I can give a proof, if needed! :wink:

Thank you for your patience and also for summarizing the state of our discussion from your point of view so far - very helpful!

I didn’t really admit to the “complicated” bit. The formula may look unwieldy, but the priciples are simple: Generally proportional, capped at 1/k, pledge influence against Sybil.
You will probably reply to that that your proposal has the same properties while being simpler, but I doubt the “same properties” part - we’ll get to that.
As for “unfair”, I still maintain that this is a necessary evil, the price to pay for Sybil protection, at least until it can be replaced by something else like a “reputation system”.

The indicator people get is in their best interest. It is the utility they can expect if everybody acts rationally. We also have done simulations of the dynamics of our system, where players simply tried to maximize their rewards (not some “indicator”), and those simulations ended in the desired configuration of k equally sized pools.
Furthermore, coming back to your “cartel attack” more directly, you assume that it would take a while for a small, yet attractive new pool to fill up. This is not the case, I think. There are a lot of “whales” in the ecosystem that can saturate a pool by themselves (IOHK being one of them). Such whales could jump on a new, better opportunity immediately.

People still have incentive to delegate to whom they know and trust, because pool performance also is very important for rewards. Furthermore, if they really trust a pool, they can become co-owners of that pool and help with the pledge.

I had missed your “DDoS attack” angle until now. But in the scenario you describe, where an attacker with a lot of stake oversaturates a pool on purpose and then delegators leave that pool, this is actually desired: You must keep in mind that the most important goal of the incentives scheme is to guarantee decentralization. If people did not leave the attacked pool, that pool would become too large and get too much influence on the system, which is exactly what we want to avoid. Your “protection” would encourage people to stay in that pool, allowing the pool to become oversaturated.

You are right, I think, that such an attacker could harm the attacked pool, but I think that is the lesser of two evil. And - as you pointed out yourself - such an attack would be really expensive - orders of magnitude more expensive than a Sybil attack, and orders of magnitude less efficient.

Now let’s look at the scheme you propose. Let me first emphasize, as I did before, that “Nash equilibrium with k pools” is not enough. We need k pools of equal size. I claim that your scheme does not have that property.

(Being pedantic, I could also point out that the proof obligation lies with you. We have proven that our scheme has the desired properties. If you legitimately want to replace our scheme with a different one, you have to prove that your scheme works. We don’t have to prove that it does not.)

But instead of being nasty, let me try to explain why I believe your scheme does not have the desired properties. Let’s look at a very simple case where only two players A and B have enough stake to make running a pool feasible (because costs are so very high), and let’s assume that k=2. I realize, of course, that those are extremely unrealistic assumptions. But if your scheme doesn’t work under those conditions, then it is up to you to clarify (and prove) precisely under which conditions your claims hold - something we did for our scheme.

In my unrealistic scenario, let’s further assume that A has stake 0.1, B has stake 0.2 and b_0 is 3, Then for A, we have

f(sigma, 0.1) = R * min(sigma, 0.5, 0.3) = R * min(sigma, 0.3),

and for B we have

f(sigma, 0.2) = R * min(sigma, 0.5, 0.6) = R * min(sigma, 0.5).

If sigma=0.5 was a Nash equilibrium as you claim, then rewards for delegators in Pool A to rewards for delegators in Pool B would be as 0.3 : 0.5 = 3 : 5 (ignoring operational costs), so people from Pool A would have incentive to move to Pool B. So the situation is not a Nash-Equilibrium. People in that scenario would migrate to Pool B until rewards equal out, leaving Pool B oversaturated and Pool A undersaturated.

Again, this is totally unrealistic, but my gut feeling tells me that something similar would happen in more realistic scenarios. It’s up to you to prove me wrong. :smiley:

Let me summarize my point on a “meta”-level: We have proven that all Nash-Equilibria in our scheme (under conditions that have been clearly explained and written down) are of the desired form, k pools of equal size. We have also proven that our scheme is Sybil-resilient in a precisely formulated sense.

It is of course legitimate to point out attacks we have not considered (like your “cartel”- and “DDOS”-attacks). I believe I have explained why our system does work against those two as well, although they were not part of our core analysis.

And you are free to propose an alternative scheme at any time. I am not saying that our scheme is the best possible one.

But it is your obligation to prove that your scheme is at least as good as ours (by proving it has the desired Nash equilibria), and only then does it make sense to discuss possible advantages it might have over ours.

This is not to discourage you. Again, I am not saying that our scheme is the best possible one. I am just pointing out that the bar is quite high: It’s not enough for an alternative scheme to sound good. It must withstand the same rigorous scrutiny that we applied to our own scheme - at least before we can seriously consider adopting it.

I am also not saying that you have to publish a paper in a mathematical journal before I am willing to listen to you. Of course not. Otherwise, I wouldn’t have spent so much time discussing with you. This is fine. But ultimately, when everything looks good (and I think your scheme does not, for the reasons explained above), there must be a formal proof.

3 Likes

Ok so I have many things I could answer to the defends you make on your scheme, because I do not agree at all.

But I think the real important point is about the Nash equilibrium of equal size, on my scheme, right?

I do agree with the calculations you made, but it works only if you have only 2 possible actions for players:

-Delegate
-Create a pool.

I think we should take another possible action in the real world:

-lend.

(of course lending requires trust and identity verification.)

Then, if we take that into account, I will give you a proof that my scheme leads only to Nash equilibrium with k pools of equal size. (When I have time).

Actually, in our paper, we considered the following actions (that we called “strategies”):

  • delegate to one or more pools
  • run a pool with a certain margin
  • don’t do anything

We did not include “lending” into our formal analysis. I suppose you could, but it would be quite complicated, because then you also somehow have to quantify risk and trust…

Right - so that we don’t compare apples with oranges. :smiley:

So the situation is not a Nash-Equilibrium.

By the way, before I attempt any proof, let’s be clear over what we want to prove here. I did not claim that any equal-size k pool situation was a Nash equilibrium, in my scheme. But that the only existing Nash equilibrium where equal size equal-size k pool situation. That’s what we want right? (Because I’m sure I can find equal-size k-pool situation that are not a Nash equilibrium as well in your scheme).

So the fact that your conter-example is not a Nash equilibrium does not show anything right?

Exactyl right.

Yes, you’re right, it wasn’t a prove - just trying to express my gut feeling about what seems to be wrong with your scheme.

Also, I should admit that I forgot about margin when I made my argument: In our analysis, pool operators can pick a margin. So when their pool is more attractive than their competition, they can claim a higher margin, so that in equilibrium, all pools are equally attractive.

I am not sure how margin influences my example for your scheme. I’ll have to think about this more carefully.

But in any case, yes - the theorem you should try to prove would be that with your scheme, all Nash equilibria have k pools of equal size.

1 Like

Ok but if we’re talking about feelings here, I think you may get the wrong feelings, since you deliberately choose a b_0 value too low in your example, that we will never choose in the real world. In my scheme it would be as in yours b_0 would be chosen by the community, who would probably not let it so low, if in practice we observed that (total stake)/(total pledge) was significantly under b0 for a significant period of time, as in your example. (Except if it was already as high as we can tolerate for Sybill resistance).

I think I might be starting to understand why really you introduced the “strange factor”, in the formula. Is it precisely so that the only existing Nash equilibrium are equal size equal-size k pool situation? Which would not have been the case with simply f(sigma, 0.1) = R *( sigma + a_0 * s ) ? ( Or maybe not, just guessing?)

1 Like

I don’t recall exactly how we came up with it, but in principle: yes. It was the easiest function we could come up with that had the property that all Nash equilibria had k pools of equal size (and offered Sybil protection on top of that).

We didn’t try to be complicated for the sake of being obscure :smiley:

2 Likes

Amazing discussion @pparent76 @Lars_Brunjes @AllisonFromm!
Really appreciate transparency with such high granularity, thank you!:pray:.

3 Likes

I get that, though I have to admit I have hard time understanding you seemingly have/had so few interest in exploring the design space starting with simple schemes, and that you still now seemingly don’t want to do it by yourself, except if I come with an irrefutable proof that there is something good to find there. Honestly when I first mentioned this scheme, which I qualified of “naive”, I was convinced that somebody would have replied “Of course we thought about it at early design stage, but then saw that we obviously cannot take it because of … which everyone will agree is a complete game killer” and I was just asking for this explanation not thinking a second, that seemingly nobody studied it before, and that this could become a serious proposal.

Anyways I just wanted to mention that your answers about the flaws I pointed out, did not convince me. And to me, whether there is a better scheme or not, this is anyway a complete game killer, enough to have me disengage fully from Cardano/ADA in the future (of course at a clever times), if the scheme is not changed (which seems probable now). And I’m very surprised you are happy with it, and seemingly suspending active research for a better model (other than reputation based).

But it is your obligation to prove that your scheme is at least as good as ours

And I just wanted to mention here that I’m not paid for anything there, so I do not have any obligations. I am here only trying to help, out of pure passion and benevolence, in you in your research and in your obligation to build a good product, by showing you attack vectors that seemingly you did not study yet, and promising schemes that seemingly you did not study yet, which could/should interest you if you’re looking for making the best choice possible. And I pointed at several times that if my help was not welcome I could leave without a problem.

Anyways I will redact in LaTeX a proof for the Nash equilibrium in my scheme, under a game model with realistic actions for the players in the real world, when I have time. I’ve got most of the things in mind, except if I missed an unexpected thing it will be possible. It might not be before a few weeks, and it will be some work, I’m not sure it is usefull to anything I that I do that, but I do not want to give the impression that it cannot be made, if it can.

On top of that I have to admit I don’t understand why you give so much importance to this Nash equilibrium story. Giving importance to ensuring that none gets more that 1/k of the ability to create blocks or too high σ/s ratio I get it. But scarifying so many things for a theoretical property , in a simplified game model…

Thank’s for reading, and thank’s for your replies! :slight_smile:

2 Likes

We did explore the design space and always made the scheme as easy as we could to achieve the properties we wanted. Every additional complication of the formula was done for a good reason. I did try to point out to you why your scheme won’t work, but this is difficult to do if we don’t first agree on which properties a scheme needs to have - hence my insistence on precision.

It’s the best one that has the properties we want that has come up so far.

I was talking about your obligations in a scientific discussion, it’s how science works. If you want to attack a scientific theory, nobody will take you seriously if you just complain. You are expected to come up with something better, at least as good as the existing theory, and (in the case of science) have to prove your point with data (or in the case of mathematics, with actual proofs). I am not implying that you should work for us for free. Just that this is how science works: In order to improve on an existing theory, you have to have good arguments for an alternative.

On a personal side, I am of course grateful for you investing so much of your personal time into this discussion. When I spoke about “obligations”, I was talking about obligations in scientific discourse.

I am looking forward to this. :smiley:

Well, it’s what makes IOHK and Cardano stand apart from our competition: We don’t just write whitepapers that may sound good, we actually use the full rigor of established scientific processes to motivate everything we do. I personally am very proud of this approach, and I am convinced it is the right one. There are too many scammers and charlatans in the crypto space, and using proper science and engineering is the only way to go, I believe.

The Nash Equilibrium is just a minimal bar each reasonable scheme has to pass. We are not claiming that our model is not simplified and that having the right Nash equilibria is enough, but it’s a well established first necessary step when trying to analyze and understand a given “game”. Refinements can always be made later.

A pleasure! :smiley:

6 Likes

Just to let you know that I did not give up, this is coming. I’ve redacted all of the proof on paper, and have typed most of it, which unfortunately takes a quite large amount of time, which sometimes is a bit annoying (1). But in the end I’ll be happy with this demonstration, since I’ve had no bad surprises, actually I only found some more elegant way to do some of the things, than I at initially thought. And everything seems to me as sound and reasonable, and to clearly prove what I claimed. I will probably post it here by the end of the week.

(1) That’s why I have to confess some of my last messages may sometimes have been written with some slightly pissed off notes, and I apologize for that, and thank you for staying cool with it.