Ways to maintain a diverse active collator set

I wanted to get back to the community with feedback on how to possibly move this discussion forward.

The OpenGov features are in Runtime 2100 and currently up for vote on Moonriver. Assuming that vote passes, the runtime upgrade should take place on Wednesday, February 08, 2023. From just a practical perspective, I would expect tutorials on how to submit a proposal and how to vote via Polkassembly to be released a week after the runtime upgrade passes.

Anyone can put in a proposal to increase the minimum bond on Moonriver; but there are a few details to consider:

  1. There are actually two settings that may need to be modified; these are:
  • minimumCandidateStaking: the amount needed to become a candidate
  • minimumCollatorStaking: the amount needed to be selected as a collator

        Typically, you would expect minimumCandidateStaking to be lower than minimumCollatorStaking.

  1. Changing these settings requires a Runtime upgrade. There are many components included in a runtime upgrade (beyond just changing these settings, such as bug fixes) so perhaps it could make sense to submit a governance proposal with a System.Remark specifying the values for two settings outlined above and requesting that the next runtime upgrade incorporate these settings. This way there is a clear on-chain request that has been voted-on by the community to incorporate these settings into a runtime upgrade. The runtime upgrade would be voted on separately as well.

Open to other suggestions - let me know what you all think.

4 Likes

Hi, thanks for your share, it’s a very interesting reflection! :+1:t4:

Thank you for the response, I like your suggestion.

If I’m following, the minimumCandidateStaking = what we know as the “collator bond” amount. If so, then does the minimumCollatorStaking do what the name implies? ie. does it set set the floor for participation in the active set? If so, it seems we could pick any value we want above 0, right? Because the active set is based on those bonded collators with the highest stake at the beginning of the round. If we set it to 1, then all bonded collators with 1 delegated stake are “eligible”, but only the top 72 will be selected for the active set. Am I understanding correctly?

Thanks!

In principle what you’re describing is correct, but given the conversation around establishing a higher minimum bond, you probably want the value to be higher than 1.

It’s also important that the collators and delegators are aligned in their interests and the collator bond is a key part of that. While I understand that many collators frequently delegate to themselves from other accounts in practice, there’s no requirement for that. The objective of the min collator bond is in part to avoid a situation, however unlikely, where delegators have a large amount of tokens staked but collators have none. Technically a 1 GLMR min bond could work but I can also envision some undesirable outcomes like the waiting pool becoming larger than the active pool, people registering to become collators that have no intention of ever running them, etc.

Completely agree that we want to have the delegator and collator interests aligned.

The concept is that the collator has a 1million or more minimum bond. Collator must bond this amount before entering the “waiting list”, so we won’t have idle parties sitting in the waiting list because they are giving away potential earnings on that bond amount while they sit there.

I think @sicco-moonbeam is asking if we want to also require a set amount of minimum staking for the candidate to be elegible. I was just thinking that the minimum staking won’t matter because the candidate cannot become “active” without both the minimum bond AND sufficient staking to climb into the top 72 of bonded and staked candidates.

Perhaps I misunderstand the role of the minumumCandidateStaking…

2 Likes

At the risk of resurrecting an old thread, I wanted to chime in on this conversation. By way of background, I’m a contributor to the largest DeFi app on Moonbeam: Moonwell, but I also have run validators on PoS networks since early 2018 and helped build large scale validators at Coinbase.

I’m not as deep on collating as all of you are, but I’ve seen similar challenges play out in Cosmos and I think I understand a lot of the tradeoffs:

  • We want to encourage as diverse a set of validators as possible, and avoid concentrations of staking power in a few large collators that monopolize multiple slots to increase returns
  • We want validators that aren’t as well funded to have a chance to compete, otherwise we’ll end up with a majority of stake in the hands of a few large exchanges/custodians and they could attack the network or act in ways that harm the majority of Moonbeam users

Let me just say that, first of all, it is probably impossible to prevent a single controlling entity from acquiring multiple slots through some type of social or legal contract. No matter what type of KYC/KYB the Foundation does, well funded actors can simply spin up shell companies, or even use subsidiaries to stake for them. You won’t be able to tell unless you start doing things like social slashing based on IP address of collators, which is fraught with false positives (maybe most collators use the same datacenter at Hetzner, for example, and you end up banning a large % of the network).

Most of the solutions to these problems involve determining which behaviors are undesirable and targeting those behaviors specifically through slashing at a protocol level:

  • ETH has correlated slashing, for example, where if multiple validators are offline the penalty for downtime is exponentially higher. This discourages large concentrations of staking power that share single failure domains (same datacenter/infra).
  • Similarly validators that collude to try to fork the network are often slashed in most PoS networks.

I understand this requires a lot of technical/engineering work to implement, and implementing slashing solutions like this can be fraught with technical risk and complexity.

Given slashing doesn’t exist today, I would still consider adding some type of correlated downtime slashing to prevent block production failures and tx backlogs, but it would probably be a long term project, not something that MBF or PureStake should take on in the short term.

I did rather like this solution as a temporary measure:

This seems to align the economic incentives such that it is more profitable for a large collator like Binance to run a single collator instead of multiple collators.

This might also be a good option to consider, since it further creates economic incentives to do the right thing. The important thing is to tabletop the various scenarios out and make sure it is less profitable at different GLMR price points and bond requirements to run multiple collators vs. a single collator.

My main recommendations here are:

  • Don’t rely on social slashing or the legal system to enforce a 1 entity per collator policy because it is just impossible to enforce anything at the social/legal level without leaving many ways well funded actors can defeat it.
  • Where possible, make it economically not viable to participate in the behavior you want to discourage (running more than 1 collator slot per entity)
  • Consider adding some type of slashing mechanism for the actual bad behavior you might want to prevent in the future (correlated downtime slashing, etc).

Thanks for listening to my thoughts!

5 Likes

I agree 100%. The idea of setting the reward on the collator bond to 0% seems reasonable and useful in changing the economic incentive for any entity to pursue domination of the collator set.

Thanks for resurrecting this thread!

1 Like

Thank you for all the insights; quite valuable. I agree with everything you said except one thing so forgive me for focusing on that (only).

“Don’t rely on social slashing or the legal system to enforce a 1 entity per collator policy because it is just impossible to enforce anything at the social/legal level without leaving many ways well funded actors can defeat it.”

I disagree with this in principle, and in practice. I also think it’s a dangerous precedence.

I disagree that it is impossible to enforce anything. Moonbeam just enforced it on Staked. What you probably mean is that it is impossible to enforce it 100%. But so is everything at the social/legal level.

What if the argument is that it is very difficult to enforce it? It is not. The point in case is that a company can spin out other companies. This is no simple task. Even if the law does not force them to reveal those companies, their investors/funds would want to know, and what company would present to a fund a portfolio of “hidden” collators that are in danger of governance slashes at any time. Not the P2Ps, Binances, Blockdaemons I know.

Now, on to the legal arguments. The law is used 1 in 10 times. The other 9 it works without you noticing. That’s deterrence. Most of the law works by not getting used. If we set a limit to 1 or 2 collators per entity, and we find that somebody broke it 2 years later, then we know we deterred 9 other entities from breaking it. The law’s job is to create a risk with a price on it.

Finally, the part that freaks me out, is creating a precedence of “not making a law because it was hard to enforce it”. Moonbeam governance is an infant right now. To create on-chain precedence that suggests that anything “hard to enforce” should not be voted on, or voted against, is a chilling thought. I argued (and I believe) that it’s not hard to enforce, but what IF it was really hard, what if another matter comes that is actually hard to enforce and very important? By establishing precedence that we avoid such matters, we kill the infant before it has a chance to be anything.

I understand, to an extent, where these arguments come from. Many people think that the judicial system promises or tries to be fair to those that come before it. This is wrong. Justice tries to be fair to the accused, and to the tax-payer who pays for it. This is actually what the law says Justice does. So, if it takes $1B of taxpayer money to prove that you are innocent, then the judge’s job is to find you guilty. One of the reasons for this is to allow laws that are “impossible” (very expensive) to enforce to be enacted. This is how important this is. And you should not be wondering why because…

Laws are not just tools for judicial systems to go about their daily jobs. Laws provide guidance and symbolism. They glue society and give direction. Without that, moonbeam is just an expensive calculator.

PS: Please don’t let my long response derail the discussion from the other matters that are equally important, and find me in agreement with Trilemma.

I think we’ll have to agree to disagree here. If CZ at Binance has a “friend” who wants to launch a collator and he funds the bond, there is no easy way for the community or the Moonbeam Foundation to know that the collator is basically under the control of Binance. You can try to rely on the legal system, but has Binance ever disclosed all of the companies they’ve invested in publicly? If they did, would their disclosures be accurate and audited by a trustworthy accounting firm?

The bigger point here is that if the Moonbeam network’s security depends on every collator being honest and the legal system being effective and GAAP (generally accepted accounting principles) being enforced in every jurisdiction, the network will not be secure.

Binance is not publicly listed, so they don’t have to disclose the companies they own. But it’s not what they’d done or not done in the past that makes the law useful; it’s the limited options and risk they get as a result in the future that makes any difference. They won’t be able to go public and they always run the risk of punishment. Sounds pretty bad.

Imagine a lawmaker standing in parliament and making a case against rape law because rape victims are extremely unlikely to report the case and when they do, it’s still very hard to enforce.

I think that whales will generally NOT put the funds of the big clients at risk of governance slashing, especially since they tend to have legal contracts with them, not just chain-based. If I am the optimist here, and whales will really go that far (to gain so little), then we need to do a lot more than enact a 1 or 2 entity per collator limit.

Moonbeam’s security depends on various social/coding constructs, each one of which adds incrementally to its security. It does’t depend on the current 4 collators per entity limit. Even if it did, removing it would make the problem worse.

We can disagree on the efficacy of laws and rule-making :smiley:

Given our desires for maintaining a diverse active set, it seems obvious that removing the reward on collator bond would be a good way to use economic incentives to achieve our desired outcome.

I’m not sure that correlated slashing will have as much impact but I’m not conceptually opposed to it.

1 Like

Thanks a lot for having resurfaced this thread again.
I am in full support of the removal of the collating bond rewards. It should indeed get removed from the total backing calculation. The vanishing rewards will go, in the end, to delegators.

1 Like

To me, it seems like that placing a 0% inflation reward on the collator is a really good idea. It will improve collator set stability, attract more delegators to staking since it will rise their APR and it will also motivate the big players to rather delegate than spin up new collators.

1 Like

Has anyone put the numbers into a spreadsheet? A quick back-of-the-napkin analysis is showing that no delegation rewards for a collator bond, with the increased bond amounts generate significantly less than just delegating. There needs to be some incentive to run a collator.

1 Like

Put this some time ago. I updated it with some fresh figures just now.

1 Like

Agreed. This is a very interesting situation in which we are trying to disincentivize the big money from buying all the collator spots and yet keep the ROI high enough to attract quality participants.

To my thinking, leveraging the bond rewards isn’t perfect, but it does help to lower the attractiveness of a collator spot when compared to the simplicity of just delegating those tokens. We are trying to attract and keep the smaller operators – those who get involved, participate, contribute, and are personally invested in the health of the parachain.

What if we redirect 100% of the collator bond rewards to the treasury?

This benefits the community by building the treasury and provides an opportunity for us to observe the impact of changing the bond rewards variable. If we find ourselves needing to attract more collators in the future, we can simply change the ratio of bond rewards going to collator or treasury as needed.

1 Like

Using this spreadsheet cells V11 and V12 illustrate my point. The staking bond is 2M, and if it doesn’t earn rewards, the opportunity cost of running a collator vs. just delegating is about 5000 tokens per month, or a loss of 60k GLMR per year. Nobody wants to run a collator at a loss.

The current breakeven is at 1.3M, but really the (non-earning) bond needs to be significantly lower than that for there to be an incentive to run a collator. If the pool size is expanded this breakeven will go lower still.

We should also look at Moonriver, I suspect the opportunity cost would be even worse over there.

tbh, it seems like we’re adding a lot of complexity for minimal gain. Compare it to ETH staking where anyone with 32 ETH can join and that’s it. Granted we have a limited pool size for a reason but maybe we should increase the pool size instead (orbiters and regular slots).

I think that the general idea is to make it much less profitable to run a collator, at least for the time being. You are right that at 2M, it is not just unprofitable, it is loss-making (from an opportunity cost perspective), but look at the current collator set…

Big funds are happy losing hundreds of thousands of dollars, running their collators in bad hardware (or no hardware), and self-delegating large amounts instead of spreading it across the board.

They don’t seem to care about current profitability. They just want to secure the slots. The only thing that holds them from overtaking the entire set is the 4-collators limit.

This is an extremely hostile environment for community collators, performance-driven operators, and delegator/community backed nodes. The result is a collator set that has never been larger and more centralized at the same time.

A few things can improve the current situation, but they need time:

  • GLMR has to be spread among more hands and away from gigantic pockets
  • Smart contract solutions must evolve to allow for more efficient staking markets (working on it)
  • GLMR price has to go up

So, the idea is to press PAUSE to allow for the market to mature, and to buy some time. If we don’t press pause, the risk is that we will get beyond the tipping point, after which, going back to a well diversified collator set will be impossible.

2 Likes

Well said @ioannis_DVN!

The price of glmr is a very large variable in the profitability equation. Today, our only lever to increase or decrease collator incentive is the expansion of the active set.

I am proposing that we make the rewards on collator bond be a lever that we can use to adjust to our needs in the future. We can raise/lower it via governance as needed in response to market conditions.

I am also proposing to take it one step further and do something strategic while we are making changes.

We all understand that we are in a battle to win the attention of developers and the hearts and minds of consumers. Moonbeam is in a marketing and educational battle to gain market dominance – and the treasury plays an essential role in funding our growth efforts. Why not put the collator bond rewards back into the treasury?

Current collator bond reward = X. IF we set the collator portion to be 0%, then we send 100% of X to the Treasury. If we raise the collator portion to 20%, then 20% goes to the collator and 80% goes to the Treasury.

I don’t know how much work this would be, but to my thinking it seems a win/win for everyone. We gain a very useful lever to use in managing collator incentives AND we gain a steady stream of Treasury contributions.

1 Like