New Witness Voting System

avatar

witness.jpg

I had already written this post weeks ago but there was a bug on LEOfinance and I lost it. You'll just have to take my word for it that it was good and had a good introduction and everything. Now that I have to rewrite it I'm just going to stick to the skeleton.

We need to change witness voting into a point system so it's a bit more versatile. Being able to vote for 30 witnesses (30 votes : 1 coin) might be too many, while being able to vote one to one may not be enough. It all depends on what the goal is.

tug o war.jpg

30 witness votes is very good if the token distribution of Hive is extremely decentralized. This is why it failed so hard in the face of the Steemit Inc ninjamine. One account had way too many coins and was able to elect all 20 consensus witnesses at once: causing systemic failure.

This led me to believe that we should obviously have one-to-one voting. One coin: one vote. You'd be able to vote for as many witnesses as you wanted but you have to allocate a share that doesn't exceed your total stack. What is the problem with this?

The problem is that a millionaire could hop on Hive and just upvote their own witnesses to the top 20 and the network wouldn't really be able to stop them. One to one voting allows a big stack to get a single witnesses into the top 20 that could be a bad actor or just a yield farmer that isn't really bringing any value to the network.

So there is a push and pull between how many witness votes we should be able to cast. Do we care more about stopping a few witnesses from getting to the top that shouldn't be there, or do we care more about preventing another complete systemic failure?

To be fair another complete systemic failure is much harder to achieve now that the ninjamine has been largely neutralized into the dev fund. That money should have been destroyed but what are ya gonna do. Beggars can't be choosers.

votedforkodossimpsons.jpg

New witness voting point system.

So I thought of a system we could transition to that would be compatible with the old system. Each user is allocated a certain number of points according to how much Hive they have powered up. There are a couple of variables that can be changed so that Hive can dynamically choose how many witnesses 1 coin can vote for.

Unit-bias

It doesn't really matter how many points someone gets in exchange for their powered up Hive. Easiest way to do it is a one to one conversion. Could be 1:1 HivePower for points or 1:1 Vests for points if that makes more sense on the backend.

The variable that really matters is the maximum percentage of your total points that can be allocated to a single witness. If 100% of all points can be allocated to one witness: this is the same as 1:1 voting described above. If the maximum percent of points was 3.333% (1/30) this would be the same system we have now.

This makes the transition to this new superior system of witness voting easy, because it can begin with the rules that we already have now. The max_percent variable would be 1/30, and the system would be exactly the same at the start.

However, then we can start lowering the variable. 1/25 or 1/20 would be a good start. Then users could start allocating more points to their favorite witnesses if they wanted to.

Why is this system superior?

Because it's perfectly compatible with the system we have now, but there are way more options moving forward. Want to vote for 100 witnesses? The system allows that: you're allowed to allocate 1% of your points to each witness because you haven't exceeded the maximum 3.333%. Want to vote for 10 witnesses at full power and 40 more witnesses at half power? The system allows this as well. It's a much more flexible system.

This system also doesn't make the UX any more complicated. Just like upvoting posts, users would be able to upvote witnesses with a scroll bar that goes from 1% to 100% voting power rather than every vote being automatically 100% voting power. Hive users are already familiar with this UX so it adds zero complexity/learning-curve to Hive... which is a big deal because Hive is already too complex for new users.

Downvotes?

I also think we should add a small downvote pool (10%-25%) in case bad actors do start raising the ranks. This would be a pretty controversial addition so I'll just leave it on the back burner. It would be pretty messed up if people started politically exploiting downvotes to manipulate the ranks rather than use them to protect the network. Perhaps downvotes are not necessary, but I think a 10% point pool wouldn't be too risky. 10% is really all the network needs to slap someone down without giving big stacks too much power to solo manipulate the ranks. Even 5% would be enough.

Conclusion

It's a pretty simple change... of course I say that without actually knowing how much work it would be on the backend. You never know with the Spaghetti Factory that is Condenser.

DPOS voting is one of the biggest advantages of Hive, and I know for a fact we are vastly underutilizing this resource. We could use some upgrades. That being said, HF25 is coming and there are a lot of amazing changes coming. I mostly wrote this just so I can refer back to it later when the time is right.

Time to save the post in case leo frontend sends it to the void again.

Posted Using LeoFinance Beta



0
0
0.000
26 comments
avatar

I like this. One of my first questions when discovering my witness votes was 'CAN I VOTE FOR THE SAME WITNESS MULTIPLE TIMES?' and this would effectively allow people to do that. I imagine there are inherent risks in this approach as well, as with all strategies, but we may see a more honest reflection of users' preferences. Thanks for outlining this change for us! :)

Posted Using LeoFinance Beta

0
0
0.000
avatar

Human being loves power grab.
How can we decentralized even the witness part?
That should be in the making pretty soon.
In a few years that should implemented to
allow the blockchain to run free of interference.

Posted Using LeoFinance Beta

0
0
0.000
avatar

Would you still be able to proxy out your vote? That is what I do with Leo Finance. I just proxy my vote to them because I trust their judgement. I do like the idea of having a downvote option for witnesses. There needs to be some kind of penalty if you are not doing anything to better the chain besides hosting a node. Heck some of them don't even post I don't think.

Posted Using LeoFinance Beta

0
0
0.000
avatar

Yeah I mean that's just delegating your points to another account.
Same thing as we have now pretty much.

0
0
0.000
avatar

Very cool, let's make it happen!

0
0
0.000
avatar

This system also doesn't make the UX any more complicated. Just like upvoting posts, users would be able to upvote witnesses with a scroll bar that goes from 1% to 100% voting power rather than every vote being automatically 100% voting power. Hive users are already familiar with this UX so it adds zero complexity/learning-curve to Hive... which is a big deal because Hive is already too complex for new users.

To some extent it sounds nice, but on a second thought, it's a bit flawed.

I don't really know much about the witnesses votes and how it all works, I can barely remember if I've voted for any, but I think I have. I understand it's for the good and up bringing of the network.

That said, back to the bit of flaw am picking up in this idea :

From the perspective of 1 - 100% voting option.

Though the idea that was implemented on post voting mechanism was cool, but in case of voting for "power" I feel it's different and doesn't quite fit ( I could be wrong)

I mean, when voting for power, it's different from scoring. Voting a post is more like scoring the effort, but a witness vote is like an ultimate support or non. It's not really supposed to be adjustable ( that's based on percentage)

In real sense, am saying why would "someone" give me a 40% witness vote perhaps?

That would mean he or she is not fully in support of me, and in a vote into power there shouldn't be any of such, it's either you're in support or against, I don't know if am making sense?

So having the voting percentage adjustable is flawed, because it's not really professional to have someone voting based on percentage, it's either one is sure of the said witness, gives full support or ultimately against!

(Just saying, maybe my puzzle is missing a piece)

Posted Using LeoFinance Beta

0
0
0.000
avatar

But if you give full support (100%) than you can vote just for one witness. That's the point of the %, (if i don't get wrong). Right @edicted ?

0
0
0.000
avatar
(Edited)

There's nothing forcing anyone to vote less than 100%,
that would be the default state.
Any frontend could remove the voting bar and only allow 100%, it's up to the frontend to determine UX.

When you vote with your money things get weird.
It may not be intuitive for many to throw out a fraction of a vote.

0
0
0.000
avatar

I personally think 30 votes is to many. Cut it down to 5..

0
0
0.000
avatar

The main point is that the system is versatile so we can vote to bring the number down slowly and test it out.
DPOS votes decide.

0
0
0.000
avatar

I like this system. In fact, when I first found out about witness voting, I remember wondering why it didn't follow the same system as post voting

Posted Using LeoFinance Beta

0
0
0.000
avatar

Agreed also how can we expect people to know 30 witnesses and research them...

Posted Using LeoFinance Beta

0
0
0.000
avatar

If you use hive, you probably will run into tools/posts made by witnesses and thats a good way I like to support witnesses. If you have to seek out the witness on why you should vote them, maybe they aren't the witness for you.

0
0
0.000
avatar

I also think we should add a small downvote pool (10%-25%) in case bad actors do start raising the ranks. This would be a pretty controversial addition so I'll just leave it on the back burner. It would be pretty messed up if people started politically exploiting downvotes to manipulate the ranks rather than use them to protect the network. Perhaps downvotes are not necessary, but I think a 10% point pool wouldn't be too risky. 10% is really all the network needs to slap someone down without giving big stacks too much power to solo manipulate the ranks. Even 5% would be enough.

Downvotes are against decentralization in gov IMO. So no downvotes there.

But the point system is not bad. 100 votes with 1% are not bad in general to support a lot of witnesses in the future. Support more and vote more spreads decentralization so that cool.

About 1 vote. Every witness will self vote 100% and don't vote for others. Clears the top 20, not sure it will be bad or good.

9 votes can be pretty much the same. 45% of top 20. So it would always need twice the stake :)

I would like to see more ways to support more witnesses/ get more witnesses. Also, give them a reason to host + build here.

Sure Dapps will do it, but there must be always a chance to become a top one. So I agree with vote changing. Vote decay is something others will benefit too.

In general, I think a point system would be not bad.

0
0
0.000
avatar

Downvotes are against decentralization in gov IMO. So no downvotes there.

Probably, but it's still an untested option.
We can speculate all we want: doesn't mean we are right either way until it's tested in the field. Someone will do it.

0
0
0.000
avatar

You know, every way that's possible in abuse will happen sooner or later.

I don't see what downvotes can do with 1 point system. It can only censor people in gov.

Because a takeover would be IMO impossible, it would need around 60M hive+?

IMO it is on today's voting system also impossible. I think long term the system should be "faster" and easier to adopt. Because at the moment it is a pretty safe thing if you stay in the top 20. It blocks innovations :)

Because on the other side it is close to impossible to become top 20, doesn't matter what you are doing for the chain.

Posted Using LeoFinance Beta

0
0
0.000
avatar

Well i don't even vote. Because i decided not to participate if i don't believe in the system. However if its possible to proxy out votes and you get more votes based on how much money you got. If you really wanted to fix this issue for good. I'd consider complete lottery system that allocates the most votes based ona random model of selection.

That way however the cards fall. That's how it is. I don't know what that would mean overall for the system. However it certainly would take away any stigma of corruption or oligarchies or just bad influence and control by the same people. The problem is like in any system. if i can stay in control and power. Then that means things may never have the chance of advancing for the better. if the same ole money men can run the system. I'd factor they'd not want to change the system. The issue is it may work well for them but what's happening to your other users. They half ass participating or not at all lol. So thats something to consider but i'd say this is still better than the existing system. Although i dont care for any of em.

Posted Using LeoFinance Beta

0
0
0.000
avatar

Witness votes tend to be set and forget right now for the most part. How will people know when the percentages change? Or can we have some type of list saying which top X witnesses are some weights?

Posted Using LeoFinance Beta

0
0
0.000
avatar

It should also be extended to DHF as well. I like the idea but we need to test its applicability and potential drawbacks and decide accordingly. Hive & DHF governance do need some overhauls and i'm ready for that

0
0
0.000
avatar

I had already written this post weeks ago but there was a bug on LEOfinance and I lost it. You'll just have to take my word for it that it was good and had a good introduction and everything. Now that I have to rewrite it I'm just going to stick to the skeleton.

Something very similar chapped to me just a while ago and this is the first article I'm reading after that. It wasn't a fault of @leofinance. My internet got messy for a second and it was a poll I did on dpoll.

I also think we should add a small downvote pool (10%-25%) in case bad actors do start raising the ranks.

Might cause too much drama. I prefer not to have this added complexity. I mean bad actors are going to be able to downvote good actors too, right?

Overall it is an interesting idea. It would be great if we could have an experimentation on a 2nd layer or a different DPoS blockchain first.

Posted Using LeoFinance Beta

0
0
0.000
avatar

I mean bad actors are going to be able to downvote good actors too, right?

The theory behind Byzantine fault tolerance is that 51% of the network or more will always be good actors, so it's a net win.
But yeah drama from downvotes is never ending.

0
0
0.000