WPF voting future

I would like to start a discussion about future voting options for WPF.

It would be good to give incentives for voting.
For example:

  • small amount of BOID for casting a vote
  • additional bonus when user votes for a project that gets completed
  • only users above 600 BOID power for at least 3 weeks can vote
  • one user account one vote
  • when user creates a bounty he/she needs to have a stake of certain amount of BOID tokens during the voting process
  • If the proposal is accepted, then the staked BOID are returned at the proposal deadline. If the proposal is denied, then the staked BOID are returned after a 30 days unstaking period

@Bot_telegram_msg

Thanks for starting this conversation @I_Seth.

Why?

Thatā€™s an interesting idea. Get rewarded for voting on a project that is deemed as a success. I think this might be better as a badge or point system, itā€™s more like reputation, and your reputation might allow you to sway votes in the future.(positive social feedback loop)

Some basic id system can be used to prevent abuse of the voting system. I do not think that having an even amount of votes per user is correct for this system because you want the large stakeholders who are well informed and incentivized to grow the platform to have a higher influence than new users who might not understand the complexities of what they are voting on.

I think this is a good idea, shows that the proposer has skin in the game. Also we could require some BOID tokens are recycled out of supply when the bounty is proposed, discouraging spam.

I like this idea, we could build on this some more.

Some of my ideasā€¦
Initially my thoughts are to aim for a hybrid representative ā€œdemocracyā€ where your vote weight is determined by your powered stake, which is capped dynamically per account. This means you need to have staked tokens, and also you need to be actively generating Boid Power to power that stake.

One problem with ā€œfluid democracyā€ type systems (every individual has a direct vote) is that most users donā€™t have enough information or motivation to make an informed vote. My idea to solve this would be to have each team act as a vote proxy by default. So as an individual, your vote weight is automatically pooled towards your team leader, who can vote on important issues on your behalf. The idea here is that team leaders have an incentive to remain trustworthy and follow important network issues much more than normal contributors. As an individual voter, you could change teams, or revoke your vote from the team proxy to vote totally independently or not at all. Having voting as ā€œdefaultā€ instead of something you need to actively enable could help ensure more vote participation.

More important roles need to have users who are identified as unique, such as team leaders or other custodian type roles. I think that Voice id system which will launch on Mainnet will make identifying unique individuals much easier, and will lead to more robust voting systems.

These are all just ideas to talk about, and I expect that we will experiment with different solutions before finding something we are happy with.

the reason is that it would be good to give some sort of additional incentive for people to voteā€¦

ok I understand your point of view but I think we would have to put a limit on the vote power to the ā€œrichā€ BOID holders. So for example a high staker cannot have a vote stronger than for example 25% of vote majority on the voting proposal.

I like the idea of recycling some small amount to discourage spam.

would that not create the issue of ā€œbuying votesā€ ?

In some contexts yes. The problem we are trying to solve here is voter apathy, you can assume that the large majority of users will not take the time to vote, so how can we build a solution where someone they trust could vote for them and that vote potential is not wasted. An ideal system gives high vote weight to the most informed, involved and trusted individuals in a system. We need checks and balances in place, and maybe the vote pooling should happen through some different mechanism, this is my first idea on the matter.

This could encourage voters to vote just for the sake of voting but I agree with the sentiment that people should be incentivized to vote.

Yes, we already limit the Powered Stake of individual accounts based on their percentage of the total staked tokens. For example, one account canā€™t benefit from staking more than 2% of the total staked supply. We could have a similar limitation on voting for proposals. The first implementation will be based on eosdac, which is representative by default. But the ability to directly vote on things like the WPF is on the roadmap. The problem is that itā€™s easy for an individual to spread their tokens across many accounts ā€œsybil attackā€ which is why some unique id system is necessary for this to scale.

I also had an idea of segregating vote strength based on tier. So for a proposal to pass, you need some votes from users in each tier. This would help to normalize the influence of high powered users. The problem is that a high powered user could game the system by spreading their power across many accounts in different tiers. Most of these issues can be solved by some basic id system.

1 Like

so what if we setup voting strength dependent on Power Tier Level for example:

Tier Vote Power
0 0
1 1
2 1.025
3 1.050625
4 1.076890625
5 1.103812891

This offer looking good and fair.

Hello @slawoj1203 welcome to the conversation!
Example Vote Weight Distribution. A proposal might require a majority vote from users in each tier.
0: 5%
1: 10%
2: 15%
3: 20%
4: 25%
5: 25%

Even if the majority of the power/stake is in tier 4/5, the users in tier 0-3 could override the vote of more powerful users in this context. This also helps to ensure that casual users can have influence.

Hi John I`m not sure about numbers. But this should be depend how much you are active and there shouldnā€™t be much difference

1 Like

ok so following your idea and analyzing recent update with staking.
I think it was a great move to implement increase with staking I understand itā€™s because future option that will be available on Chintaiā€¦ Now we donā€™t have chintai available yet so when you stake over your powered stake BOID generated goes to WPF which is great but when chintai comes any amount of BOID over the powered stake limit will be shifted to chintai. This will eventually lower WPF maybe even close to zero.
I propose to give additional incentive to users staking above their powered stake and essentially giving to WPF.
So Iā€™m changing my original proposal to:
image
so an increase of 10% for each tier and vote counted globally.
2nd stage of bonus would be from ā€œoverstakingā€ so when user stakes more and BOID goes to WPF
also user will need to have his stake locked for a certain amount of timeā€¦ at least 1 month ahead(???)

example:

image

Yes in a perfect market we would expect to see close to zero WPF funds growth but markets are far from perfect so the WPF is meant to arbitrage the inefficiencies of stake/power distribution. Additionally, validators and teams leaders will be staking larger unpowered stakes because they have an additional incentive that other users donā€™t have.

The idea of Overstake contributing to your vote power is interesting. I think this could work but only if the overstake was a long-term stake (6+ months) This would discourage abuse from exchanges. Did you read the stake pool governance proposal from Larimer? I like the simplicity of the solution and itā€™s likely we will study this and implement some similar functions.

Ok I didnā€™t consider what will happen when validators and team leaders stake. I can see you thought it through.
Yes I did read the proposal and I find it interesting. We could definitely use long term stake option for additional voting power.
Coming back to:

I still think treating tiers separately is not the way to go and more global approach would be more effective. The problem is that there is quite a big gap between tier boid power levels in the same tierā€¦

I donā€™t like the tiered weight approach, having more hardware because your richer should not give you more influence over the network. This is supposed to be a social community project,
we want to avoid cartels trying to get proposals to pass that only benefit them.

Without an identity system, even 1-user-1-vote will be abused.
I donā€™t know which governance model is fair, i see pro and cons and all of them at the moment, team leaders can be seen as the final deciders with a 15/21 majority , but i can see how fake teams could be setup to game itā€¦ I donā€™t have a magical solution.

Ultimately what I personally find more important is that there is a community discussion around proposals a place where people can either leave comments or actively discuss them, rather than a sterile yes/no vote with no reasoning behind the decision.

Proposing should have a submission fee to avoid spam.

1 Like

I think it would be great to have the onchain wps voting linked to this forum. A dedicated thread for each proposal.

I think you should re-read my tiered voting approach. The design helps to empower lower powered users. Tiers are an effective way to diminish the impact of pareto distribution.

One person one vote has itā€™s place, but generally itā€™s a bad voting scheme for making technical decisions.

There is no perfect system, but we can build mechanisms that give larger participants a louder voice without allowing them to overpower casual users. These metrics could also be adjusted for different types of voting. Some of these mechanisms can be abused without a proper id system, we are hoping to use the Voice or Gyftie ID system in the future and require unique voters. Even with unique ID nothing is bulletproof.

On a per proposal basis, we could require a certain level of participation from each power tier.

The current idea is that you vote with your Self, Powered, Stake.
We could require a minimum expiration on that stake.
So you have to have the stake locked in 3, 6, 12 month bond, this would impact your vote weight.

Currently, the maximum powered stake for an account is 1.5% of the total staked supply. Itā€™s likely this will decrease over time.

You could not vote with stake that is delegated out (to you or from you), this prevents delegation exchanges like Chintai from voting.

Required reading for everyone in this thread

https://medium.com/@bytemaster/decentralizing-in-spite-of-pareto-principle-eda86bb8228b

Some of my thoughts on the points discussed earlier.

Voting Weight

I agree with the idea of a weighted tiered approach to the voting combined with self, powered, stake. Additionally, the fact that proposals would need a certain level of participation from each tier. The weight of each tier could also be somewhat dynamic to the number of users (taking into account number of devices) and the overall power.

I also feel vote weight could be tied into this community board and potentially other social media in a number of ways to ensure that those informed, involved and trusted individuals are given more clout.

  • Type of user (Validator, Team Leader, End User, Scientific Community User)
  • Based on involvement in on the community site (number of / specific badges attained, number of posts, date joined).
  • Contribution to the particular proposal thread in the community site (number of likes, number of times quoted / replied to).
  • Telegram activity (in the main group and individual team groups alike).

Until the introduction of an ID system like Voice, a minimum membership age (e.g. 60 days) and minimum powered stake should be introduced to protect against a potential sybil attack.


The locking of that stake within a bond is a sensible idea although it does raise questions.

  • What happens if a userā€™s powered stake dramatically drops (e.g. a casual user where the few machines they had been using have been offline for an extended period) after theyā€™ve locked up their tokens. Would they still have their original ā€˜full-powerā€™ honored at the time of staking or would that pool be dynamic and adjust ā€“ the only constant being the 3, 6- and 12-month bond weight? Vice-versa if a power user brings additional servers online, would they need to stake a second time?
  • Would/should there be any consequences for un-staking an unmatured bond besides immediately losing the voting weight?

In regards to utilizing the ā€˜over-stakeā€™ (the un-powered stake that would not be a part of the bond). I think this could be incorporated with a very light weighting. It would mean that these tokens are not ignored and are less likely to be taken out of the ecosystem and liquated at exchanges etc. (proving more important for users in lower tiers whoā€™s Boid power may have hit a ceiling).

Conversely should ā€˜over-powerā€™ be factored in somehow?


Submissions

I agree that anyone proposing should either have to pay a submission fee and/or lock-up a certain number of tokens until full/partial unlock criteria(s) have been met (e.g. a set milestone, completion, rejection or deletion of the proposal). This should have a definately have a mechanism where some tokens are consumed (potentially into the Worker Proposal Fund or donated to the proposerā€™s teamā€™s selected charity) and not refunded back to the proposer.


This is a good idea and can also be applied to the Proposer. Echoing the fact that it should be a badge or point system that can positively reinforce their future vote weight taking into the social metrics detailed earlier.


I agree with this statement and as mentioned earlier, tieing into this community forum can help facilitate this. My question around this would be how to go about amending the initial proposal if the discussion has reached a point where everyone agrees that there should be a change or extra deliverable, etc.


Vote Pooling

This would mean the team leads would have to be more involved than they already are, making their stances and thoughts known to the community. Perhaps this fundamental responsibility should be detailed in someway within the whitepaper and as part of the agreement for new teams.

The immediate thing that comes to mind is the Team Promotions, this intrinsically draws one to a team. I think the rewards and proxy function should be decoupled, so a user can be a member of one team for the rewards, but vote via proxy with another, or on their own entirely - on an opt-out basis.

2 Likes