I recently posted about weighting witness votes based on ranking. Ranking enables a user to vote for many witnesses whilst reducing the influence of their stake to control many witnesses, possibly a majority.
In this post, I want to explain how reducing the number of witness votes per account makes it more difficult for one user to gain control over the blockchain.
Let us begin with the current system and assume we have two users. One user has 60% of the stake and the other has 40% of the stake. If each user casts 20 votes, the user with 60% of the stake will determine all 20 top witnesses. See Figure 1 below.
Figure 1: Voting in the existing system
Note: Y-axis represents percentage of total stake. X-axis represents witnesses ranked 1 to 20. These are different witnesses for each user.
What if we reduced the number of votes to 10 per account?
If the number of votes are reduced to just 10 per account, the larger stakeholder cannot determine all 20 top witnesses with one account. Instead, the user with 60% of the stake will determine the top 10 witnesses and the user with 40% of the stake will determine the next 10. See Figure 2.
Figure 2: 10-vote system with two accounts
A user with 60% of the stake has no additional influence over witness determination than a user with 40% of the stake, if both users have only one account each.
What if a user divides their stake equally into two accounts?
A user is not limited to one account. A user could create as many accounts as they like. Let us assume the user with 60% of the stake divides their stake equally into two accounts. This user now has 20 votes but the stake supporting each vote is halved (i.e. 30% of total stake). If this user votes for 20 witnesses with these two accounts, 10 of the voted for witnesses will be supported by less stake than the account with 40% of the stake. Therefore, the user with 60% of the stake will determine 10 witnesses and the user with 40% of the stake will determine 10 witnesses as well. See Figure 3.
Figure 3: 10-vote system with larger user dividing stake into 2 accounts
Equally dividing stake into 2 accounts, serves no benefit to the 60% stakeholder. However, the 60% stakeholder could divide their stake differently in an attempt to determine more witnesses.
What if the larger stakeholder strategically divides the stake?
To determine a witness, the 60% stakeholder needs to put more than 40% of the total stake behind the witness. To determine all witnesses with just 10 votes, a user needs at least 67% of the stake (i.e. 67%/2 > 33%). However, with 60% of the stake, a user could control as many as 14 or 15 witnesses. For example, to control 14 witnesses, the user could divide their stake equally into 14 accounts and vote for each witness 10 times. See Table 1.
Table 1: Strategic witness voting to control maximum number of witnesses
Note: Each vote represents 4.3% (60%/14) of the total stake. Therefore 10 votes equals 43%.
All 14 witnesses would be supported by 43% of the total stake. The user with 40% of the stake would determine the remaining 6 witnesses. See Figure 4.
Figure 4: Strategic voting to determine the maximum number of witnesses
With a 10-vote system with just two users, a user with 60% of the stake cannot determine a super majority (i.e. 17 witnesses) of Steem witnesses to control the blockchain. However, if that user could obtain 63% (i.e. 17/27, see Appendix for formula) of the stake, they would be able determine 17 witnesses.
What if we reduced the number of votes to 5?
If we reduced the number of votes to just 5, it would become even more difficult for a user to determine at least 17 witnesses. If there were only 5 witness votes, a user with 60% of the stake could only determine 12 of the 20 top witnesses. This could be achieved by dividing the stake across 12 accounts. The user with 40% of the stake would need to divide their stake into 8 accounts. The example in Table 1 explains how this can be done. See Figure 5 for the amount of stake supporting each witness.
Figure 5: Strategic witness voting with 5 votes per account
If the number of votes per account was reduced to just 5, a user would need 77% (i.e. 17/22) of the stake to determine 17 witnesses.
We have thousands of users
I have demonstrated that reducing the number of witness votes reduces the number of witnesses a user can determine. However, I have used only two users in all my examples. For thousands of users the same logic applies. The assumption regarding one large user remains the same but the remaining stake is divided over thousands of users. A single user can divide stake to optimise the number of witnesses they determine. Thousands of users cannot be expected to operate efficiently or be completely united to secure the same top witnesses.
Let us assume that half of the community support the same top alternative witnesses to the largest stakeholder.
- With 20 or more witness votes, a user needs to hold 33% (i.e. 20/60) of the stake to determine all 20 top witnesses.
- With 10 or more witness votes, a user needs to hold 46% (i.e. 17/37) of the stake to determine at least 17 witnesses.
- With 5 or more witness votes, a user needs to hold 63% (i.e. 17/27) of the stake to determine at least 17 witnesses.
Note: Formula is explained in the Appendix.
Based on my assumptions, if there are more than 20 votes per account, as little as 33% of the stake could be sufficient to control the top 17 witnesses. Even with 10 votes per account, it is likely that owning as little as 45% of the stake could be sufficient to control the top 17 witnesses. Reducing the number of votes to 5 per account is considerably more resistant (63%) to a large stakeholder attempting to take over the blockchain.
Reduced freedom of choice
Even if the community can muster sufficient support to stop a user with a very large stake from determining all the top witnesses, this support comes at a cost to the less popular witnesses. Many users will feel compelled to drop support for witnesses that are not close to entering the top 20, as supporting these witnesses does not contribute to preventing the takeover. The less popular witnesses, regardless of what they offer to the blockchain, have little incentive to remain a witness, as they are unlikely to be a top witness. For the same reasons, there is also no incentive for new witnesses.
Therefore, the blockchain needs to be able to defend itself from large stakeholders without requiring the community to abandon their favourite witnesses to do so. Reducing the number of witness votes to around 5 would achieve this security without the disruption.
As demonstrated in this post, reducing the number of witness votes to 5 enables the community to prevent a large stakeholder from being able to determine 17 or more witnesses. I also believe that reducing the number of witnesses to as low as 5 creates other problems. For example, for the blockchain to progress, we need an environment that encourages new faces and variety. I believe limiting accounts to just 5 votes is likely to result in stakeholders playing safe and voting for familiar witnesses.
In my post Steem Witnesses - Weighted votes based on ranking, I discuss applying a weighted ranking system to witnesses. The logic I have explained in this post, also applies to weighted ranking. Reducing the weight of each rank by 20% has an equivalent effect to reducing the number of witness votes to 5. See Table 2.
Table 2: Ranking with 20% weight reduction per vote vs. 5 votes
In a 5-vote system, a user could divide their stake into many accounts and replicate a ranked voting system. This would involve quite a bit of effort and has implications for voting on content.
I hope you find this post useful for explaining the effect of reducing witness votes per account.
Formula for calculating percentage of stake required to determine 17 of 20 witnesses
No. of votes × % Stake User/ No. controlled witnesses = (1 - % Stake User)
(No. of votes + No. controlled witnesses) × % Stake User/ No. controlled witnesses = 1
% Stake User = No. controlled witnesses/ (No. of votes + No. controlled witnesses)
E.G. 10 votes
% Stake User = 17/(10 + 17) = 63%
Note this formula does not apply to less than 4 votes per account or more than 17 votes per account.
Formula for calculating percentage of stake required to determine 17 of 20 witnesses in a large community.
No. of votes × % Stake User/ No. controlled witnesses = (1 - % Stake User)/2
(2 × No. of votes + No. controlled witnesses) × % Stake User/ No. controlled witnesses = 1
% Stake User = No. controlled witnesses/ (2 × No. of votes + No. controlled witnesses)
E.G. 10 votes
% Stake User = 17/(2 × 10 + 17) = 46%
If you want to read any of my other posts, you can click on the links below. These links will lead you to posts containing my collection of works. These posts will be updated frequently.
Guide to the Steem Ecosystem (Udemy Course)
I have launched my Udemy course ‘Guide to the Steem Ecosystem’. This course takes you on journey through the Steem Ecosystem. The course consists of 6 sections. These sections are as follows:
- Getting Started
- Navigating Steem Frontends
- Becoming a Steem User
- Behind the Scenes
- The Wonders of the Steem Ecosystem
- Additional Content (SteemFest 4, SMTs, Communities, etc.)
The course contains 56 video lectures (about 13.5 hours of viewing), 56 multiple-choice questions (10 to 12 at the end of each section), and 59 downloadable resources (presentation slides and additional material such as white and blue papers). The course is free-of-charge. Click the link above to access the course.
I also have an economics course, titled Economics is for Everyone, which contains about 4 hours of video content.