Created
March 5, 2025 18:15
-
-
Save disassembler/d94c81ec1a0698112a7002ea26fced4a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Originally, shortly before the Shelley launch, in reviewing the incentives spec | |
engineers in formal methods and architecture noticed that there was a 'lambda' | |
parameter (between 0 and 1) that was basically the fraction by which an | |
adversary could undercut everyone else on costs. If this param was 0 then the | |
whole thing collapsed to 0, i.e. the sybil attack became cheap, but there was no | |
mechanism in the design to make sure this parameter was bigger than 0. So we | |
added one: the min fee, to stop the adversary from undercutting everyone and | |
making themselves look super-competitive. | |
If someone creates many pools, they will not be attractive to first mover | |
delegates (allowing min-cost == 0 on the other hand, removes this first mover | |
delegation counter incentive). | |
As an aside, from an analytical perspective this really has to do with how | |
myopic are the players - if they are reasonably non-myopic it won’t matter. In | |
the original paper we argue it didn’t matter because we were thinking | |
participants to be non-myopic. | |
Furthermore, the research is assuming that everyone is playing the same game, | |
and trying to maximize their rewards/payoffs (in which case min-fee is not | |
needed). But the whole point of the min-fee is that the adversary is playing by | |
the same rules but for a different payoff: their interest is not making money | |
from SPO rewards but from attacking/destroying the system by accumulating enough | |
delegated stake to mess with consensus. This means the adversary in the SPO game | |
is prepared to lose money if it means they can accumulate enough stake to do | |
something nefarious. | |
The thing we need to remember is: | |
Just because it works in theory doesn't mean it works in practice. | |
But it does at least need to work in theory, or it will (almost certainly) not | |
work in practice. | |
So the theory analysis is necessary but not sufficient for it to work in | |
practice. | |
On a side-note, folks I talked to want to remove min cost, either by new | |
analysis proving it isn't necessary, or by adjusting the game rules for it not | |
to be necessary. But we want to do it safely, and not make a rash drop it to | |
zero and see what happens approach. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment