HIP-27 - Quadratic voting power

Any change to the current voting structure will require a HIP based on stake weight to pass so we might as well address the elephant in the room (Binance) while we’re at it and I think we’ll have fair and balanced votes just like before they added 900 million in stake.


I am voicing my opinion against the current system. I don’t propose a solution because there are not easy answers but I believe that the current system is failing to meet the goals it was designed for.

And as our benevolent overlords Binance demonstrated their ability to stop governance even if inadvertently. I think it is a mistake for large community validator to assume that they will continue to be the large community validators. Binance, Coinbase, Kucoin and other groups with large purse strings under the current system can steer Harmony to their interests. How does a delegator’s interest get represented then?

We assume that Binance will continue to honor their unwritten rule of not voting. I say unwritten because I havent read an official public statement on this. The same goes for Kucoin and maybe one day Coinbase? I value decentralization and not a select few acting as central bankers.

I think it is short sighted to believe that the every day delegators of Harmony can control the blockchain in a decentralized fashion under the current system. They don’t control a considerable amount of the current circulating supply of $ONE to do so.


What coinchowder wrote above addresses both issues pretty nicely, its still stake-weight, but also enables the DAO to not be controlled by a few.


Thank you for sharing your feedback!

I think both @ValidatorONE and @HankTheCrank raise really valid and practical concerns and our goal here is to find that middle ground where we can all reach a consensus.

So-called ‘larger’ validators often get a bad rap (I wrote ‘bad wrap’ at first but google told me that a bad wrap is an unappetizing sandwich made of fillings wrapped in a tortilla… but I digress). I don’t think we should be using this as an opportunity to completely nullify the efforts of those who have worked hard to build trust and their reputation within the community. I don’t believe we should be taking away the huge amount of trust (in the form of $ONE delegations) and belittling their vote.

At the same time, @HankTheCrank is not wrong in saying that the current system does not work. Although it may seem like it’s still working (even with the 900million staked with Binance), they aren’t bound by anything to enforce announcements when they’ve changed their minds and wish to participate. And while today, we can still sneak a vote past them via flawless participation, what happens if they pull another 100, 200, or 500million $ONE out of their gluteus maximus. Then we won’t even be able to dig ourselves out as we’re unable to amend the charter.

With the existing system, we often talk about how Binance doesn’t participate in governance. I would argue that it would be equally as scary when the day comes when they want to participate. I mean, all I can picture is some intern at Binance singing “I got da powah!”

That’s why I believe we could brainstorm or dive deeper into this ‘hybrid model’, aptly named by @TrickLuhDaKidz . Stake weight can remain, but a linear scale simply does not work given the huge variance between the top and the bottom bounds. We need to tweak it so that we raise the volume of the little voices, and set a maximum volume of the larger voices so we won’t go deaf.

So to keep the discussion going and our creative juices flowing, let’s ask ourselves a few questions:

1. In your mind, what is the perfect way to define the quorum?

definition: the minimum number of members of an assembly or society that must be present at any of its meetings to make the proceedings of that meeting valid.)

I personally think that the staked amount in a validator should only be reflected in their vote. The quorum should be independent, taking the count of those eligible to vote. In other words, if there are 100 elected validators, then we may require the participation of at least 67 in order to make the vote valid.

2. Ok, but what about unelected validators?

Well… unfortunately, unelected validator votes will be a lot less significant in terms of voting. This is a must because we also need to consider the potential abuse of validators spinning up many unelected validator nodes to try and swing a vote. I envision unelected validators being able to vote, but their weight in the quorum calculation should be a fraction of what an elected validator should be. I don’t believe this is unfair given that elected validators are signing transactions on the blockchain, and could also serve as a motivator for more validators to reach elected status.

For argument’s sake, 25 unelected validators participating in voting would equate to a single elected validator’s quorum weight.

66 elected validators and 24 unelected validators voting will be considered as the quorum being not met.
66 elected validators and 25 unelected validators voting will be considered as the quorum being met.

Similarly, I believe the amount of VDAO tokens allocated to unelected validators should be less. e.g 0.04 VDAO voting tokens. (if we’re doing 25:1)

3. CoinChowder, so far your ideas stink. What else have you got for us?

Well, I personally like the hybrid model, but we could also consider penalizing nodes that don’t participate in governance. This can be done via slashing commission.

  • Missed 1 vote? Node will receive 66.67% of commission fees collected
  • Missed 2 votes? Node will receive 33.33% of commission fees collected
  • Missed 3 votes? Congratulations, you’re a charity node now. Receive 0% of commission fees collected.

How to get out of this hole? PARTICIPATE and reset your slashing rate.
Where do the collected penalty fees go? Maybe back to the treasury to fund more DAOs? :wink:

Normally when I see someone write a huge post I go “Hm, this guy must know what he’s talking about”. Don’t fall for it :joy: Just because I wrote a wall of text does not mean I’m right! I am here to instigate discussion.
Share your thoughts! Challenge the ideas. Express your insights. If there’s one conversation that you should be participating in with the largest impact, it’s gotta be this one!


Appreciate the thoughtful response @CoinChowder. How you suggest mitigating the risk of unelected nodes being spun up to influence the vote is creative and warrants further consideration. The quorum idea also makes sense as it still takes into effect the delegator’s voting power while helping ensure governance votes don’t always hit a wall due to lack of participation.

As for bullet point number 3, it’s a good idea in theory, but it may be difficult to achieve if votes aren’t being tracked on-chain. As of now, it’s my understanding that governance is off-chain and for any penalty to be put into place, changes would need to be either done manually or via some sort of smart contract that calls on voting participation data.

Also, as a community validator with many unique delegators, my concern is not that our vote as the operator isn’t counted, but rather that our delegator’s voice is diminished simply because our stake weight is higher. It’s hard to argue against the theory that 1 ONE = 1 vote unless there is an existential threat to governance that requires us to reconsider that theory (which may be the case now considering how much influence Binance carries over the network).

Otherwise, I like where you’re going with your ideas and look forward to hearing from other validators who haven’t commented yet.


I can get behind it. Our only other option right now is to ask Binance to unstake or vote (if they vote they will sway the voting by a huge margin). We can also remove them as well as others that will not vote (but this is against what Harmony is for). Having VDAO tokens scaled by stake is a good middle ground [thus far] but we need some minimum amount of nodes to participate in willingness to receive these. Another Idea would be, the VDAO could automatically distribute these tokens to all non-exchange/non-voting nodes?


So I made a quick mockup of a very early curve that may be modified to help get an idea of what @realcoinchowder was looking for - VDAO Tokens that increase with stake but they start to diminish as stake grows.

The main flaw is: Below the lower bounds validators could be spun up and used to contribute to voting and sway them. The curve will need to be modified to ensure that at lower stake, there are not so many VDAO Tokens distributed to brand new nodes.
Below this is ‘standardizing’ the curve for 1 VDAO Token per 3.4M-3.5M staked (being the current 0.65xEMS). Effective median time of writing: 5,528,524 ONE
However, this number will change overtime, so that is another flaw - but it’s a rough idea for the current stake data we have.
Here goes: The formula is ln(stakedONE)/15.09 ← that is the fudge factor to ‘normalize’ 1 VDAO Token ~0.65*EMS

Here is a cut away of the data (the graph runs from 10k - 1,000,010,000 ONE staked).

10,000 0.61
1,010,000 0.92
3,510,000 1.00
10,010,000 1.07
100,010,000 1.22
200,010,000 1.27
300,010,000 1.29
1,000,010,000 1.37

So it does need work but I thought I would put this here to get it going. We need to prove this will work before we make any haphazard HIP that will not work or be explained well.

I do believe this method of VDAO Token voting can work very effectively if we can manage to make this asymmetric where the 10k stake range does not get awarded this many tokens. I also like this idea implemented correctly, can have much more meaningful voting by essentially excluding the non-voting exchange nodes and other large nodes we have that may not participate at all.

Please feel free to comment as we need constructive discussion on this matter.

Edit: @leo and @sophoah this would be a great topic to weigh in your 2 cents <3


I love this so much!

@PiStake and a group of validators have collaborated and put thought into this and it definitely paints a better picture for those who are joining into the conversation.

Maybe @Maffaz can comment on whether it is possible or not to add additional logic in the VDAO token smart contract to take into certain parameters that ultimately affect the token amount.

This could open up possibilities like:

  1. Elected status gives the token amount a multiplier of X such that we can still use the chart that @PiStake suggested above.

e.g multiplier of 10
10,000 + unelected = 0.61 tokens
1,010,000 + unelected = 0.92 tokens
1,010,000 + elected = 9.2 tokens
1,000,010,000 + elected = 13.7 tokens

  1. Days since the node was created also affects the amount of VDAO tokens

Another idea (although I’m not sure if this information is available) is that we can also take into account the age of the node. The idea behind this is again to try to address any new nodes spawned for the sole purpose of voting.

Finally, and something that is really important to consider is the upper limit for ‘large’ validators. As stake approaches infinity, the number of VDAO tokens should be reaching X. This “X” value is important because do we want ‘large’ validators to have 5x the voting power of a ‘standard’ validator? Or should it be 4x, 3x, or 2x? etc.


It is more than possible yes. Whatever the community votes on :slight_smile:

1 Like

Well done on this write-up. I believe that we will be able to push initiatives more efficiently with this model. There is a big power shift here and I really hope that the entire community sees the value. Thank you for the insight here!


Summary : This proposal is to change pure staked weight voting power into staked quadratic voting power

Background : When moving bigger amounts to a validator who don’t vote this hurt us all and the democatracy. If we keep with this we can run soon or earlier into a point where voting are no more possible.

Motivation : This proposal should help to define a new voting strategy and improve the fairness by closing the gap between small and huge validator. Also by having those tokens for active Voter we can solve the HIP-21

Specification :
This has to be detailed discussed on an AMA on Tuesday, March 29 on VDAO Discord Server Harmony Validator DAO but I like the Idea of @PiStake and would even fix the ln(stakedONE)/15

Suggested voting options : Yes, No, abstain


I don’t know that the larger validators would support the token range in that chart (0.6-1.3). I think something similar to @realcoinchowder’s earlier suggestions would be more appropriate: 0.05 tokens at the lower end up to 3.0 tokens at the higher end, for example

I feel like that is a compromise that everyone should be able to agree on. It lessens the risk of someone spinning up a bunch of new, small validators with malicious intent. It also allows large validators to maintain voting “power” without having governance continue to be prohibitively difficult to pass like at present

What is the upper limit of staked $one that the max token allotment should stop at?

What i mean is, 6% is the max keys per shard. That’s 54 keys total over all 4 shards

54*4.98 million (current EMS) = 269.2 million $one

Using that figure as the max cutoff, someone with ~270 million $one and 900 million Binance (should they decide to participate in the future), would both have 3.0 tokens

Would (54 keys * EMS) be a good dynamic cutoff for the max token allotment/validator? Or a similar metric? How is it currently being decided?


I think this approach with quadratic voting is better than my proposed logarithmic scale. However to address @TrickLuhDaKidz point, an unelected validator at ~10,000 ONE having about half the voting tokens of an elected validator of >50,000,000+ opens up the voting to a malicious attack. There needs to be a mechanism in place where unelected validators (to prevent spinning up new nodes and controlling snapshots) have a much smaller vote. That being said, what if a validator breaks into elected entry and then becomes unelected, do their votes get ‘slashed’ back to how they were before election?

1 Like

Wouldn’t there be a snapshot of each validator’s total delegation? Token “weight” would change with delegation size

Could be done continuously in real time or calculated separately prior to each HIP vote


Yes, that would be nice if the smart contract would auto calculate that info.

1 Like

Yea, for now we should think of the ideal way to proceed, and then we have the fantastic @Maffaz who can confirm the feasibility and caveats (if any).


The AMA is now going to be March 29th at 3:00pm EST (7:00pm UTC) in the VDAO discord server. Please attend and give some feedback. Thank you! Harmony Validator DAO


@realcoinchowder @ben2k_Stakeridoo do you think it would be a good idea to introduce a ‘bank’ of VDAO voting tokens with quadratic voting? More specifically: having a limited amount of voting tokens in the validator’s address, when presented with HIP’s the validator that wants to strongly vote for a certain HIP may cast multiple votes, but each vote will be exponentially more expensive. I have not heard of a protocol that has this take on network governance.
Hopefully this will drive more engagement to get more HIP’s out from the community. Also, the tokens could be replenished after a certain period, such as a VDAO term, certain number of epochs/HIP’s or another metric?

1 Like

Please join us this Friday, we want as many people to attend as possible. https://twitter.com/DaoHarmony/status/1508905820104232962?s=20&t=KOjmnyvyLruvQptoUeA4UQ


What if we come up with a system of voting, where validators with more than 100 million ONE staked on them, their vote counts for 1 vote per 50 million, Validators with between 50-100 million ONE staked, their votes count as one vote per 25 million, under 50 million staked and their votes count as one vote per 5 million, and so on and so forth?

The math here isn’t exact I just sort of gave this as an example, but I’m sure you get the idea. Of course, the math would have to be worked out much better, but I think something like this could work. Where larger validators could be outvoted by a few smaller ones. We would just have to work the math correctly so we find that happy medium/balance that we are looking for. Just another idea for an approach to solving this problem that I don’t think was mentioned yet, and if it was, my apologies.