I can't help but think we're now hitting the point where the system behind voting, voting power, is far too complicated. People don't seem to fully comprehend it (myself included), and as changes are made, we need to learn all over again.
We need something that can be packaged up in an easy to consume format with a simple UI. A system that overall feels like it benefits users over bots, and allows for semi-regular visitors to have an impact like daily visitors.
Here's my take on a proposed, "seemingly-radically" different system...
Voting Tokens
Each account would have a balance of "voting tokens". These tokens would be "spent" as the account holder chooses to vote on a post. These tokens are not transferable between accounts and have no value (until used, as a vote).
- Each token would represent 10% of a vote from the specific account.
- You can use a maximum of 10 tokens per vote on a comment or post.
- Each account regenerates 50 tokens per day automatically.
- Each account can have a maximum of 350 tokens at any given time (7 days * tokens per day).
- Added based on feedback: Each account could choose the precision of the voting tokens they use. If users wanted 500 tokens per day, based on 1% weight per token, the interface could be updated to reflect this. Useful for whales who want to be able to vote with 1%.
Instead of having a percentage value of how powerful your votes are, and a decreasing percentage with each vote in succession, this system assumes that an account would always vote with a set percentage of it's weight, derived it's steem power.
Why this direction?
It's a lot easier for a user to understand "I have 20 tokens left" than "ok, I have 88.47% voting power left, that means I have 2 100% votes left if I want to get back to 100% in around 24 hours".
This is a cryptocurrency, people understand balances and tokens. In fact, most people understand these things based on any credit/token system they've ever used, or any video game they've ever played. The percentage style system itself, while accomplishing many great things with it's sophisticated nature, is honestly confusing as hell. I'm still confused by parts of it, and I'm a level beyond a power user.
Simplifying this system into something easy to use, consumable, understandable and fun is going to help engage the hardcore as well as the casual users. These benefits are what is going to help steemit grow.
Comparing tokens to the new proposed 5 votes/day system
Does this whole thing sound somewhat reasonable? If so, were you one of the people incredibly against the proposed 5 votes/day limit in 0.14.0?
You might be surprised, but this system is pretty similar to that. There's one fundamental change that allows additional flexibility, which I think would make the entire concept of limiting a lot more acceptable. Let's start with the similarities between the two systems:
- If 50 Voting Tokens are awarded each day, each with 10% weight, this equals out to be 5x 100% votes per day. The same as proposed for 0.14.0.
- If you can use a maximum of 10 Voting Tokens per post, that's equal to 1x 100% weight vote, which is the same type of vote you can cast right now.
- The tokens would allow each user to vote on anywhere from 5 posts to 50 posts a day. Comparing tokens to vote weight, it would be between 5x 100% votes and 50x 10% votes per day.
- Regeneration intervals could be 50 tokens every 24 hours, 10 tokens every 4.8 hours, or 1 token every 28.8 minutes. This mirrors almost identically the proposed regeneration rate in 0.14.0.
So what was the one fundamental difference? The decrease in power after every vote. With the current (live) and proposed 0.14.0 system, after each vote your overall weight drops to a percentage. An example of this is:
- An account is at 100% voting power with 100 SP.
- The account votes on a post, with 100% weight, applying the full weight of 100 SP.
- The account now has ~96% voting power.
- The account votes on a post, with 100% weight, and now because of voting power, it only applies ~96 SP worth of voting power.
- The account now has ~92% voting power.
- (repeat)
If you don't have a break between your votes, there's no regeneration, and your vote has less of an impact. I'm not a fan of this, even as a regular user. I visit sporadically throughout the day, and my votes are typically concentrated batches, which puts me at a disadvantage from someone (or something) that votes at the perfect times. I'd like to have the opportunity to have the same impact, as I imagine most people would.
I think it's a bit crazy that just reshaping how this is presented, and altering one mechanic of the system, can have such a drastic impact on the perception towards it.
Notes on the interface and how users would see voting tokens
The interface for this system I imagine would be incredibly simple. You're going to have a number and an icon that looks like either a vote or a coin of some kind. Maybe both.
- Tokens could be represented as a simple number on the top navigation bar to indicate how many tokens you have stored and ready to use. This would be much easier to understand than an arbitrary percentage.
- After each vote, the UI can dynamically update to show your remaining tokens.
- The voting interface itself wouldn't have to change much, we could use the existing vote slider, except now it's a range from 1-10. We could also show a balance of tokens on the slider itself.
- This interface highlights a true hard cap on the number of votes. Technically this is already happening, since you can't vote if you're at 0% voting power. Most of us don't see it currently, but we likely would more often after 0.14.0.
- You would be unable to vote after expending all of your voting tokens, until you regenerated a new one.
- [Strike this, this isn't true in the current system and would make the system gameable, thanks @arhag] ~~If you uncast a vote, you would be returned your voting tokens, just like currently you are returned your voting power~~.
Controlling the token distribution rates through witnessing
The configuration of this system should be delegated to witnesses. Moving these settings to witness votes would also prevent us from needing hard forks in the future. Witnesses could vote on these values, much like the account creation fee, to adapt as the communities demands change.
- Witnesses can vote for
voting_token_per_day
, starting at 50 (per day). - Witnesses can vote for
voting_token_limit
, starting to 350 (7 days worth).
The values would be set based on the median value of the top 19 witnesses, like all other votes.
Potential economic "sinks"
I'm throwing this out there as a "maybe", because this should be an entire concept explored itself. BUT, we might just be able to burn SBD/Steem to receive a proportional award of additional voting tokens. If you've got money to burn and want to vote on more things you could. Just burn a somewhat proportional amount of the chosen currency to get an equivalent amount of tokens.
You get free tokens every day, but if you want more, pay. The "freemium" model.
I could add another 3-5 paragraphs explaining the benefits of burned coins, but we'll save that for another day.
Improvements over the newly proposed system in 0.14.0
Levels the playing field between humans and bots
Problem: With the proposed new voting system in 0.14.0, you can cast 5x votes with 100% of your weight every 24 hours. But there's only one VERY specific way you can actually do it. Here's a example:
- An account is at 100% Voting Power, and casts 1 vote @ 100% weight on a post.
- The account's Voting Power decreases to 96% because of the 100% weighted vote.
- 4.8 hours pass, the account's Voting Power is now back at 100%.
- Repeat
This pattern gives the account the most impact for their 5 votes, all truly being at 100% within a 24 hour window.
The problem with the above scenario is that you have to wait exactly 4.8 hours between votes to optimally achieve this, and most people aren't going to vote exactly every 4.8 hours. You know who can though? Bots. Bots have a clear advantage if the strategy is to cast all 5 votes each day at 100%. While weight and voting power is only a part of the overall strategy, it's something humans cannot compete against.
You can also scale this down to any variable vote weight, which just reduces the time needed between votes (you could vote with 10% weight every 28.8 minutes and stay at 100%). Again, another win for bots.
How Voting Tokens Helps: The voting token system solves this problem by letting a user cast all 5 of those votes at any point in the 24 hour period, all at 100%.
Flexibility for daily or weekly curators
Problem: In the current and proposed system, if you aren't on steemit for a few days, you're wasting the potential of your voting power and curation rewards.
The majority of the population isn't going to visit steemit every day (whether we want them to or not), which gives the daily users and bots an advantage over the general public. Some may argue this is not a problem, and daily curators should be rewarded more, but we need a system that encourages casual participation as well.
An example in the current system for a casual account would be:
- An account is at 100% Voting Power on Saturday and ends up casting 15 votes @ 100% weight. Under the newly proposed rules, that accounts Voting Power would decrease to ~54.20%.
- As each vote is cast, the accounts voting power by ~4%.
- The account recharges to 100% Voting Power again by Monday night (20% per day).
- The account doesn't visit again until next Saturday, and has now wasted any potential regeneration cycles that could have been occurring Tuesday through Saturday.
How Voting Tokens Helps: With the voting token system, this user could visit on a Saturday, and issue up to 35 votes at 100%, expending the entire balance of tokens. Then when visiting a week later, would be able to do the same again, allowing them the full benefit of their SP/Vest balance.
Final Thoughts
I'm putting this out here as a thought experiment. I'd love to hear what you think. What I've laid out likely has problems that I couldn't possibly foresee, so I also really want to know why this wouldn't work. I've been thinking about it on and off all day, and think there's a lot of merit here.
I honestly don't know if the solution we're looking for is in adjusting the numbers of the current system. My current belief is that in order to get as close to perfection as possible, we may need to fundamentally change the system to be a more user friendly and forgiving system. I feel this is closer.