Governance formula problem

I think the formula used to calculate the voting power is very dangerous and possible attack vector for the whole governance and from there the blockchain, because if someone controls the governance, controls the blockchain. Having the formula where the more EGLD you own, the less voting power you get added is just bad imo.

The idea is obviously to lower the power of the whales, but on anonymous ledger thats impossible to implement, it is very easily bypassed with creating multiple wallets and spreading your EGLD in them. It sounds good to have “robinhood” kind of mechanic, but on a blockchain, where the only metric in your wallet that cant be faked or manipulated is how much money you have, it just doesnt work.

There are couple problems i see, some are small, others are, i think, very big.

1) First problem i see is the fake stats that will be created in terms of the activity and decentralisation, since people that spread their EGLD will look like separate people.
Its lame to fake stats like that, thats Solana territory, we dont have to do that, let others embarrass themselves. That i consider a small problem.

2) The second problem is that the formula hurts the users that want to play by the rules and not use multiple wallets. It simply incentivises bad behaviour and makes people game the system, i dont think we want that.

3) Third problem i see is that the formula gives unproportional % of the voting power to different users compared to the % they have from staked egld supply, which is the whole point of the formula obviously, but that leads to the next problem.

4) You can in theory have bigger % of the total voting power than % you have of the total staked EGLD, even if you are a whale. This is where biggest problem is, instead of lowering their power, that opens a way for whales with bad intentions to actually increase their power by simple spreading their EGLD on more wallets. To get 50% of the governance voting power you will need a lot less EGLD than the half of the 17m EGLD staked right now and thats security concern.

Lets do an example:

4.1) MEX governance system:

If we just use simple 1:1 EGLD/power system like we used on the MEX governance, 8.5 million EGLD is needed to control the governance.

4.2) With the current system:

It doesnt say the exact number, but it looks like the total voting power in the current vote is around 200 000, so you need 100 001 to control the governance. And thats with 100% participation, that is of course not achievable, but lets do it for simplicity (with more realistic participation the cost of the attack gets even cheaper).

To get 100 001 voting power thats only 1 million EGLD spread on multiple wallets with 100 EGLD each, since 100 EGLD is 10 voting power. Spreading 1 million EGLD on different wallets will increase the total amount of voting power and that will increase the power needed for 50% of the voting supply, but it wont increase it much, probably to 1.5 million EGLD needed to control everything or maybe a bit more…

Either way the cost of owning the governance becomes much lower than the first example where you need 8.5 million EGLD, with the current system its 1.5m EGLD and thats with 100% participation.
With more realistic participation percentage it may be possible with even less than 1 million EGLD. 1 million EGLD is only 4% of the whole supply, but can control the whole governance and from
there control the whole blockchain, that doesnt make sense.

Thanks for reading and would love to start the conversation and i really hope i made a mistake somewhere, because that looks very scary and imo a vote should be made as soon as possible to change that.

7 Likes

I was just thinking about the quadratic voting power and I think it’s not the best way going forward. Happy to see someone already addressed it.

For example, for the current vote you only needed around 200k EGLD to get 50% +1 voting power (from the current 200k total voting power + the supposed bad actor additional 200k voting power).
It might be difficult to spread the EGLD to 200k accounts (1 EGLD/ account = 1 VP/account) and stake it, but difficult is not impossible.
I know there is also the Veto which is useful in case of a very obvious bad proposal, but someone can still harm the network by passing proposals which are not bad enough to trigger the needed Veto power.
L.E. Oh, and just like @live said, in practice a lot less is needed to actually control the decision, due to the participation rate.

Also quadratic formula will make it difficult to get a let’s say 50% quorum (without bad actors), because the most voting power is in the cumulative hands of the ones less interested in the network (1 or 2 staked EGLD)

L.E.2: It seems the displayed participation doesn’t take into account the voting power, so the total voting power might not be around 200k.
We have 40k used voting power with 14% participation at the moment of typing this (different ratio from 20k VP vs 9% participation I saw initially).

2 Likes

Hello, @metothex !

Do you really get 1 voting power if you have just 1 EGLD? If thats correct, then the cost of controlling the governance is extremely low. I know single individuals with more than enough to do it then, definitely a bit problematic.

I completely agree with being more difficult to get bigger % quorum, didnt think of that.

1 Like

As I understand the current system is:
voting power = √stakedEGLD.
√ = square root

So:
1 staked EGLD = 1 voting power
100 staked EGLD = 10 voting power
10 000 staked EGLD = 100 voting power

Please someone correct me, if I’m wrong. I hope I’m wrong :joy:

1 Like

You’re correct.
I have ~11 votng power with my ~120 staked.

I agree with your concerns, it doesn’t seem very balanced to me. :slight_smile:

2 Likes

In my opinion the voting power should be equal to the number of staked EGLD… at least for now. I think it would be fair and it would eliminate the risk of gaming the system by splitting the EGLD to multiple wallets.

In the future it would be nice to have an onchain reputation system or maybe some kind of ZK ID which may help to add other criteria to voting power in a safe and fair way.

1 Like

I agree here and want to reiterate the most important argument (the rest is kind of irrelevant in my opinion).

WITH this system you could theoretically get a majority vote with LESS EGLD than with a normal 1:1 linear system.
The math is already provided in the original post and checks out.

2 Likes

Big quorums will be also big problem. With 3 days left we have only 23% participation. People with small amounts dont care to vote, because they are not that interested, but they have most of the power.

The plan for Vega release is to increase the required quorum to 33%, we wont reach 33% on the current vote, which means there is no reason to believe we will reach it on the next vote (unless we have people spreading their egld). That puts the next upgrade at risk.

Liquid staking is not taken into account for this vote but will likely be for the next one.

Yes, but that would also increase the total voting power, so there wont be much of a difference.

33% quorum should be something easy to get, but the current formula makes it very difficult. When we had our first governance with MEX and used the linear 1:1 system, we had over 60% participation and that was a simple app vote… now for a mainnet release we cant reach 30%, thats very big problem.

Vega release is staking phase 4 that we have waited for years and we should not sweat over reaching the quorum. With linear system that wont be a problem, im sure accounts that total have more than 50% of the staked EGLD supply has already voted, but with the current formula thats less than 25% participation.

The vote has ended and we can now see that less than 90k voting power would have been enough the overpower the actual vote.

90k voting power can be achieved with only 90k EGLD split to 90k accounts (1 staked EGLD each)

90k EGLD = ~0.5% of total staked EGLD = ~0.3% of total EGLD supply.

So:
Bad actor with 90k EGLD = 90 000 voting power
Good actor with 90k EGLD = 300 voting power

We should also keep in mind that this was the first MvX governance vote and many users voted out of curiosity and enthusiasm. Also the vote happened in times of a good sentiment and growing interest on the network (~15k DAU compared to ~9k DAU few months ago).
So we’ll probably see even lower participation rates on some of the future governance votes.

3 Likes

Thanks for the feedback. Good computation and you presented well the problems with quadratic voting.

Quadratic voting levels the field in terms of voting, but it opens up to the sort of attack you described. And as it is cheap to vote on MultiversX, it can be done with relatively low efforts.

The problem with linear voting is that the whales can control all the results. In case of xExchange voting only the voters from the first tier was enough to decide the outcome. In case of eGLD staking and delegation the distribution is wider, but still you would only need the top 5% of stakers/delegators to reach the needed voting power.

Have you found any other types of decentralized governance?

1 Like

I dont know of better systems than linear, its just not possible to implement fairly something else without KYC and KYC is of course out of the conversation imo.

I dont think whales having big power is a problem. They are the people with biggest interest for the blockchain to do good and for best decisions to be taken, very likely they are the most knowledgeable too.

Top 5% of the wallets being enough doesnt sound that great at first, but you have to take into consideration that they are not necessarily voting the same, thats thousands of wallets with different opinions, not a single person, that makes it much harder for collusion. If we can trust a couple hundred validators to not collude i think we can trust top 5% of the wallets to not collude also. If 2% vote YES and 3% NO the result still depends on the rest. And the distribution over time should only get better.

Linear is not perfect, but is the best we have. I think its important to make it hard/costly for single person/group to attack the governance. Right now its not that hard for someone outside the community to acquire the needed EGLD and do it, but to acquire the amount that top 5% of the wallets have is definitely hard.

Not an easy task to find a good decentralized governance model.

I think some kind of delegate model with linear voting power might be suitable for a POS network in the long run.
Unfortunately this kind of voting system would be a bit more complicated and it would probably require a 2-step voting.

I’ll give it a try with an example:

● Validators (Staking Providers) will have the final vote with voting power equal to the total staked/delegated eGLD on their nodes (linear model). So basically the delegators will delegate not only their eGLD, but also their votes to the staking provider.
● Staking providers will be incentivised to take into account the delegators opinion on the proposal, otherwise they risk losing them which can lead to losing nodes (into the auction list with Staking Phase 4). Unhappy delegators can always choose to move their eGLD to another staking provider which suits their vision on the future of the network.
● Delegators vote will probably need to be held at once (not separately for each staking provider) in order to be able to also count the liquid stakers and distribute their voting power to the respective staking providers. Also as a delegator with eGLD split to multiple staking provider you will only need to vote once and your voting power will be distributed to your SPs.
No need to say that the delegators vote need to be held before the final vote in order for the staking providers to be able to take the results into account.

PROS:
● Not wasting the voting power of the delegators which are not interested in participating to the decision making system.
● Staking providers much more likely to provide a high participation rate.
● Staking providers will be incentivised to educate their community/delegators and explain the proposals and their vote intention.
● It brings another layer of competition between staking providers.
● It brings a (new) criteria in choosing your staking provider as a delegator.
● Adds another layer of difficulty for small number of whales to control the network because of delegators being able to sanction bad behavior by moving their eGLD to other staking providers.
● Is in line with the validators/delegators Proof of Stake system.
● It will probably spark more debates, education and awareness.

CONS:
● 2-step vote.
○ difficult to manage if too many proposals/year.
○ not having a direct vote may lead to lower participation rate by the delegators.
● Higher complexity and more difficult to understand than the direct voting system (linear or quadratic).
● Much more computation needed behind the scenes (delegators-only voting power distributed to their staking provider, displaying results by SP, validators-only final vote using all the voting power available on their nodes, displaying each SP vote, etc)
● Long term risk of become a bipolar network with staking providers and their communities/delegators around one type of vision on one side and other SPs and their communities/delegators around a different/opposite type of vision on the other side. This kind of behavior will probably increase the risk of getting to a hard fork situation in the future.

Sorry for such a long post, it was fun for me to think of a voting system for MvX network.
It might be too early for such a complex system.

Reading it again, it starts looking similar to legislative systems like Congress or Parliaments, so it might be stupid and too political :joy: :joy:

2 Likes

That system with validators voting is implemented on other blockchains, but i dont think its better than linear delegator voting.

The CONS i see are:

  1. It lowers even more the amount of people that take the last decision, its something we should aim to increase in a fair way, not lower. We dont want to end up everything being decided by people that can be gathered in a same room like bitcoin. On top of that most staking providers are doxed, thats positive, but can be also negative if for some reason there are actions taken against them.

  2. I dont think its fair someone to use others people voting power. If they dont want to vote, so be it, but giving that voting power to validator is not the way. I think there should be a way to give your voting power to someone else if you dont trust your decision, but im against that being by default. People being able to stake should not be connected to voting in anyway, only the opposite, for being able to vote you should stake.
    Having high participation is a job for proposal creators, just like in government voting. You have to make people interested to vote with marketing and education… maybe even small rewards? collectable nfts are cheap way to do it or maybe even more voting power for the next vote

  3. I think the validators wont like that approach because on a close governance vote lets say 51%-49% no matter what decision they take they will always have people unsatisfied and unstaking, risking their nodes… And you cant really punish validators by just unstaking and going with someone else for the vote that you disagree with your current staking provider since the undelegating process takes 10 days, as much as the governance vote. On top of that it will cost you money to do that, you will lose 10 days of staking rewards.

Every delegator having his own voting power and being able to do whatever he wants with it is the best solution in my opinion, but no matter which one it is, it has to be linear system.

1 Like

I agree with what you say, however, the formula we have now allows the whale to turn over the voting outcome with even less EGLD than what would otherwise be needed

Therefore I would deem this not ideal in terms of security

If someone can create a governance vote about this, to change it to a linear formula, I would support it

1 Like

I understand your idea but I think it can be improved

What I am about to present, I do not like, but it seems to be needed to get the voting % higher:

When delegating EGLD; you also delegate voting power and the staking provider can vote for you.
HOWEVER the user can vote with his own voting power also.
If he happens to do this, he overrides the decision from the staking provider basically.

That’s my idea.

So staking provider votes with all EGLD, but user can override, by just voting himself.

Also, we cannot force users to vote, but we can force staking providers to vote (more easily).
We cannot hinder users from using the chain “because you didn’t vote” or anything like that.

But we COULD propose a punishment if the staking provider does not vote, because it’s his job to do it, in this scenario where he is repsonsible for the voting power.
Get me?

A punishment of EGLD jailed nodes or a punishment in terms of loss of node-score could be a good idea.

But then again, not sure if this negative-incentive is even needed, I suppose most staking providers would vote.

1 Like

I suppose this is a first-time victory for governance.
Our thread here helped change the future governance processes.

Check the tweet of MultiversX

3 Likes

Thanks for being vigilent and to show out the problems of the system.

Feel free to discuss, propose more. We are constantly in search for the perfect solution.

2 Likes

Since there is not a perfect solution we could think about an alternative between the linear and the quadratic solutions.

Linear solution can be seen like this :

1√(number of EGLD staked) = voting power

Quadratic solution can be seen like this :

2√(number of EGLD staked) = voting power

Could we envisage a solution between both of them to take the best of the both?

n√(number of EGLD staked) = voting power # n = “a floating point number between 1 and 2”

We could ajust it to decrease the voting power of big wallets without big security issues like described on a quadratic vote.