The value of a Steem vote is defined from the amount of SteemPower the voting account holds, its current voting power (voting mana) and the voting percentage. From these parameters, an internal number for the value of a vote is calculated, the
rshares. The $/STU/SBD/... value of this vote as shown for example on steemit.com or busy.org is then defined from this rshares value in relation to all vote rshares from the last 7 days, the size of the reward pool and the Steem price.
Up to HF19, a minimum rshare value was required in order to be able to cast a vote at all: 50M rshares. This is roughly equivalent with a 100% vote at 1.2 SP or a 10% vote at 12 SP. If the vote were worth less, the chain did not accept the vote operation. This value is called the dust vote threshold. (Not to be confused with the dust payout threshold of 0.02 STU).
With HF20, this rule was changed in two aspects: Firstly, the minimum rshare value limit was removed so arbitrarily low-valued votes are accepted now. Secondly, each vote is reduced by the value of the previous threshold, 50M rshares or 1.2 SP. A 100% upvote at 15 SP in HF19 gets the same rshares as a (15 - 1.2) SP = 13.8 SP vote now. If the vote value would be negative after the subtraction, the value is set to 0.
This means, with HF20 it is now possible to cast votes with zero value.
I have analyzed the possible effect of this downshift in a previous contribution in August 2018:
This work looks if and how the voting behavior has changed from HF19 to HF20 due to the downshift of the vote value calculation and potentially zero-value votes.
- Scope and tools
- Number and rate of zero-value votes after the hardfork
- Distribution of the vote percentages and rshares values before and after the hardfork
- Zero-value vote distribution
Scope and tools
This analysis is based on the upvotes votes cast on all Steem posts and comments created between Sept. 1st and Oct. 23rd 2018. Individual aspects of this analysis use subsets of this data. Downvotes, votes after payout or unvotes were excluded. The data was retrieved from @arcange's SteemSQL database. All query and processing scripts are in
python and the plots are generated with
matplotlib. The full sources to reproduce these results are on my GitHub.
Number and rate of zero-value votes after the hardfork
The upper graph shows the absolute number of votes cast per day from beginning of September before HF20 until mid/end of October 2017. You can clearly see the hardfork with very little chain activity starting on Sept. 25th and the other chain issue on Sept. 17th. As seen before from other contributions, the total number of votes after the HF is slightly lower than before. The orange and green lines are the number of votes with less than 50M rshares ("dust", orange) and a value of zero (green). This was not possible in HF19, so these number are available only after the HF. In relation to the total number of votes, their numbers are small. The lower half of the figure shows them again in a relative scale. Over the HF with very little chain activity, they made up around 5/10% of all votes, but the numbers quickly reduced once "normal" interaction was restored. Since then, a bit less than 1% of all Steem votes have zero value and around 1.5% have a value of less than 50M rshares.
Distribution of the vote percentages and rshares values before and after the hardfork
In order to compare the situation before and after HF20, I'm picking two time ranges of one week for a closer look:
- HF19: Sept. 8.-15., 2018
- HF20: Oct. 17.-24., 2018
The left half of the figure shows the data from the HF19 period, the right half from HF20. The pie charts show the distribution of the vote percentages. In the HF19 week there were 0.6% of all votes that were cast with a vote percentage of less or equal to 0.1%. This value reduced to 0.3% for the HF20 week. The HF19 week had 49.4% of all votes as 100% upvotes, while this number slightly increased to 51.6% for the HF20 week. In general the vote percentage distribution suggests a slight increase in the vote percentages. This effect was expected, since casting very small votes sacrifices a considerable share of rshares for most voters.
The lower half of the figure shows the distribution of vote rshares in the HF19 week (left) and the HF20 week (right). In HF19 there were no votes below 50M rshares, since this was technically not possible. HF20 shows a few entries in this region. The shape of the distribution in the low-rshare region is slighltly different between the two weeks. Another interesting aspect is the median vote rshare value. This was at 570M rshares in the HF19 week and at 560M in the HF20 week. If the exact same votes as in HF19 were cast in HF20, we would have expected to see a downshift of exactly 50M rshares due to the changed vote value calculation. This is not the case, so at least a part of the voters seem to have adjusted their voting behavior.
Zero-value vote distribution
So who is casting worthless votes?
The histogram and the pie-chart show the distribution of vote percentages from the HF20 week that resulted in zero-value votes. What's intersting to see is that half of the worthless votes were cast with a vote percentage of 10% or less! A good share of these votes probably wouldn't have to be worthless! The share of 100% upvotes that resulted in worthless votes is still 38.9%, though. This also applies to newly created accounts without a delegation, which initially have no way to cast valued votes even with full voting mana.
- HF20 reduces the value of each vote by around 1.2 SP.
- Previously, it was impossible to cast super-low-value votes. The votes simply weren't accepted and therefore didn't consume voting power either. Now this is possible and can result in zero-value votes. Neither the voted author benefit from those, nor can they earn any curation rewards. Still, they consume voting mana.
- Overall, the rate of zero-value votes is slightly below 1% of all Steem votes.
- A closer look into those showed that a good fraction of them didn't have to be worthless if the voting percentage were chosen accordingly.
- I had a quick look into the zero-value voters and votees and a good fraction of them seem to come from voting trails. Surprisingly, this includes also a few alt accounts from well-known steemians.
If you are following a voting trail, check your trail vote percentages! A 1% vote with 100 SP is worthless but consumes voting mana. Also a 10% vote at 15 SP can be worthless if the voting mana isn't full.
Proof of Authorship
All scripts to generate the above graphs and results are on my GitHub: