Steem Witnesses - Weighted votes based on ranking

in #steem4 years ago (edited)

Hi Everyone,

Rank_Witness_Thumb.jpg

With all the chaos happening in regards to control of the blockchain, I thought I would revisit witness voting and the vulnerability the current system has to large accounts that may choose to exert their influence to control the blockchain.

In November 2018, I posted a five part series titled ‘Is the Steem ecosystem in disequilibrium?’. In the first post of this series, I discussed some of the problems in regards to selecting witnesses using Steem’s approach to delegated proof-of-stake. In that post, I also offered several possible solutions. These included reducing the numbers of votes per account, expiring votes, negative votes, and ranking witnesses.

In the final post in the series, I offered a combination of solutions. In regards to witnesses, I proposed a ranking system and for votes to expire after 6 months. In the first post, I described the ranking system as follows:

Another approach that could prevent any account from gaining too much control over witnesses is to use ranking rather than voting. Instead of just voting for 30 witnesses, a stakeholder could rank as many witnesses as they like. The number one selected witness would receive the accounts full voting weight. The number two ranked witness would receive a reduced voting weight, X% less than the number one selected witness. The number three selected witness would receive X% less than the number two selected witness and so on. This approach could provide incentive to witnesses to improve their ranking. Voting does not convey the message of which voted witnesses are preferred over others; ranking would provide this feedback

This approach could be quite confusing for many users, which could result in more proxy voting.

In the final post in the series, I explained why I believe such an approach would be an improvement over the existing system.

Of the solutions described in Part 1, I believe a combination of ranking witnesses and expiring votes after a period (e.g. 6 months) would be the most effective.

Ranking witnesses enables users to prioritise witnesses based on preference of activity. There are many advantages of ranking witnesses compared to just selecting witnesses using equally weighted votes. These advantages include:

  • Restricting the influence of the large stakeholders to a smaller number of witnesses
  • Accounts can display preference between witnesses
  • More onus on witnesses to perform in order to maintain rank
  • More pressure on witnesses to be transparent regarding activities
  • More opportunity for new witnesses as they can achieve an initial lower rank and aim to climb higher as they demonstrate their competence.
  • Witness positions are less likely to change significantly, as large stakeholders can change ranking order instead of dropping votes completely.

The weights applied to ranking could be described as follows: Number one ranked witness would obtain full stake approval, number two ranked could obtain 90% approval, and number three could obtain 81% approval. This weighting reduces the next rank by 10%. It is possible that 5% or maybe 15% could work better.

In this post, I want to explore ranking further. I have been on Steem for more than an extra year since I wrote that series of posts. I believe I can provide additional insight, which I did not have when I wrote those posts. I used an arbitrary 10% reduction in weight of votes per rank to demonstrate how a ranking approach would work. I did not provide any analysis of the changes we could expect to see if ranking was applied.

Currently, Steem users can vote for witnesses using their own stake directly or use a proxy on their behalf. A proxy is useful for someone who has many accounts and does not want to change witness votes for every account. A proxy is also useful for someone who is not confident in making witness selections themselves and they would rather rely on a community leader to make decisions on their behalf.

Each account has 30 witness votes. The top 20 witnesses essentially have control over the blockchain; they verify each block and work together to achieve consensus on upcoming HardForks. As there are more votes than top witness positions, it is possible for one account/user to determine all top 20 witnesses. This happened when Steemit, with help from exchanges, voted in 20 new witnesses with one account (@dev365). If one account/users controls all the witnesses, that account/user is free to make any changes to the blockchain and do not require any input from any other stakeholders of Steem.

If Steem used a ranking system similar to what I have described, it would be considerably more difficult for an account/user to control all 20 top witnesses.

Before I explain any further, I want to discuss dividing stake across several accounts. Under the current system, there is no benefit from dividing stake between accounts. Under a ranked system, dividing stake between accounts would produce different outcomes. If an account/user divided their stake, they would be able to distribute the influence of their stake more evenly across several witnesses. However, there is no dominant strategy. See Figure 1.

Figure 1: Voting strategies using ranking

Weight_Dominant.jpg

Note: Y-axis represents percentage of stake held. X-axis represents witnesses ranked 1 to 20.


For Figure 1, I have assumed that each subsequent rank holds 20% less weight than the previous rank and that each account can rank 20 different witnesses (different from initial proposal of unlimited ability to rank witnesses). In Figure 1, I show four methods of dividing stake to achieve different outcomes.

  • Method 1 – hold all stake in one account
  • Method 2 – hold stake evenly across 20 accounts
  • Method 3 – hold stake evenly across 6 accounts
  • Method 4 – hold stake evenly across 11 accounts.

Method 1 involves keeping the stake in one account and ranking witnesses from 1 to 20. Method 2 involves dividing the stake into 20 accounts. For Method 2, each witness will be ranked differently by each account, i.e. each witness will obtain all ranks between 1 and 20. Each witness will be supported by equal weight. Method 3 involves dividing the stake into 6 accounts. For Method 3, accounts would be used to focus on 6 witnesses. These accounts will rank these 6 witnesses in the top 6. The remaining witnesses will be ranked from 7 to 20 by all accounts. Method 4 involves dividing the stake into 11 accounts. For Method 4, accounts would be used to focus on 11 witnesses. These accounts will rank these 11 witnesses in the top 11. The remaining witnesses will be ranked from 12 to 20 by all accounts.

Figure 2 contains an example of how a user could rank 20 witnesses with 20 accounts in such a way to equally distribute the influence of their stake.

Figure 2: Evenly distributing stake to influence over 20 witnesses

Strat_Wit.jpg

Note: Witnesses are in red (A to T) and accounts are in blue (1 to 20). The numbers in the table are ranks applied by each account to each witness.


Method 1 is the least effective method for controlling the blockchain but is good for giving a few choice witnesses strong support. None of the other methods is a completely dominate strategy for controlling the blockchain with a given stake. Method 2 would be more effective when directly compared with Method 3 (i.e. 13 vs 7 witnesses) but less effective against Method 4 (i.e. 9 vs. 11). Method 3 would be more effective when directly compared with Method 4 (i.e. 6 vs 5 and remaining witnesses tied) but less effective against Method 2 (i.e. 7 vs 13). Method 4 would be more effective when directly compared with Method 2 (i.e. 11 vs. 9) but less effective against Method 3 (i.e. 5 vs 6 and remaining witnesses tied).

How much stake would be needed to control the blockchain?

Accumulate.jpg

This depends by how much the influence of stake depreciates with each rank. For simplicity, let us assume that there are only 2 stakeholders. In the current system, whoever has the most stake is able to control all 20 witnesses. This would happen even if one person had just one extra powerded up Steem. If ranking were possible, this would not happen.

For one person to control the blockchain, they need to control 17 of the 20 witnesses. For someone to do this using the ranking model, they would need to equally divide their stake into 17 accounts and focus on the top 17 ranks for their selected 17 witnesses. Figures 3, 4, and 5 shows how much stake is required to control the blockchain if the influence of stake is reduced by 20%, 50%, and 8% per rank respectively.

Figure 3: Staked required to control blockchain with 20% reduction in weight per rank

20Per.jpg

Note1: Y-axis represents percentage of total stake. X-axis represents witnesses ranked 1 to 20. These are different witnesses for each user.

Note2: a 20% reduction in influence in stake per rank is equivalent, in effect, to reducing the number of votes per account to 5.


Figure 4: Staked required to control blockchain with 50% reduction in weight per rank

50Per.jpg

Note: a 50% reduction in influence in stake per rank is equivalent, in effect, to reducing the number of votes per account to 2.

Figure 5: Staked required to control blockchain with 8% reduction in weight per rank

8Per.jpg

Note: an 8% reduction in influence in stake per rank is equivalent, in effect, to reducing the number of votes per account to 10.


Reducing the influence of stake by 8% per rank still enables a user who holds only 60% of the stake to control at least 17 witnesses. Whereas, reducing the influence of stake per rank by at least 20% requires a user to control more than 70% of the stake to control at least 17 witnesses.

Realistic in practice

SteemiTron.jpg

So far, I have described a very basic scenario of two stakeholders. Steem has thousands of stakeholders. There are a few large whale accounts but even the biggest accounts have less than 3% of the stake. The current exception is Steemit. The combined stake of all the Steemit accounts is likely to be about 30% of the total stake. This is likely to fall over time as the rewards pool continues to spread Steem to more users.

Let us assume that someone with 30% of the stake wished to control 17 of the 20 witnesses. Their optimal strategy to achieve this would be to focus on 17 witnesses using 17 accounts. If this were the case, how much stake would be required to ensure that at least 4 witnesses are not controlled by the one user. See Figure 6.

Figure 6: Stake required to prevent one user from controlling the blockchain

HoldOFF_30.jpg

According to my calculations, only 12% out of a remaining 70% of stake would be required to be focused on 4 witnesses. Under these circumstances, there would not need to be a massive rally by the community to prevent a takeover.

Is there a downside to this approach?

Downside.jpg

As I mentioned previously, ranking is a little more complicated than just voting. This could lead to more proxy voting or lower participation. Ranking would also enable a larger stakeholder to control 4 witnesses more easily. This could be done to intentionally prevent HardForks or be used as an attempt to make demands of the other 16 witnesses. I believe it is unlikely that someone with a very large stake would intentionally stall development as he or she has the most to lose from delaying the development of the blockchain.

We could argue that the emergence of the Steem Proposal System (SPS) renders ranking less necessary as witness projects can be funded independently to witness payments. However, witnesses could be ranked based on contributions to the blockchain. These areas could include security, economics, technical ability, reliability, nodes, and perspective on SoftForks and Hardforks, Even relevant personal characteristics such as integrity and consistency could play a role in the level of support a user wants to give a particular witness.

I am also unsure about how difficult a ranking system would be to implement. I am guessing it should not be that difficult as only a few parameters are required but it would still be more difficult than just reducing votes per an account.

Why would ranking witnesses be better than some of the other solutions?

Alternatives.jpg

A commonly discussed solution is to reduce the number of votes per account. For example, the number of votes could be reduced to 5 votes per account (similar impact of reducing control as a 20% reduction in influence per rank). This would make it more difficult for one user to control the blockchain. However, limiting a user to just 5 witness selections is likely to result in users only supporting the witnesses they have the most confidence in. The new witnesses are likely to struggle to gain traction. Users could choose to divide their stake over several accounts to support more witnesses. If users could rank witnesses, they would not need to divide their stake. Many users would not want to go to the extra effort of dividing stake between accounts. Dividing stake also has implications for voting on content. Users may want to delegate all Steem to one account or create a curation trail to synchronise content voting.

The inclusion of negative votes for witnesses has also been suggested before. I doubt this will make much of a difference as the dominant stakeholder could respond by negatively voting the potential replacement witnesses. Negatively voting witnesses could also create unnecessary hostility regarding issues that are not related to the work of the witness.

The sharp cut-off between the 20th and 21st witness could be changed. Witnesses ranked between 21 and 30 could be given more responsibility as well as opportunity to produce more blocks. Such a change would require a major amendment to the current DPoS. New rules regarding consensus for HardForks would also need to be implemented to facilitate the additional semi-backup witnesses. If such changes were made, I cannot see how a ranking system would be in conflict with these changes.

Conclusion

Conclusion_FLEXIBLE.jpg

There are always many ways of reaching a desired outcome. The current implementation of delegated proof-of-stake with 30 votes to 20 top witness spots runs the risk of enabling a user with a very large stake to control the majority of the witnesses or have significant influence over witnesses.

In the post, I have presented mathematical evidence that ranking witnesses significantly reduces this risk. In my post, Is the Steem ecosystem in disequilibrium? (Part 5 – Combination of solutions), I discussed several other possible advantages of being able to rank witnesses.

I believe all possible changes to the method of selecting witnesses should be considered and compared. The community should be given an opportunity to express which changes they support. The witnesses should also be able to highlight what they predict will be the likely impact of such changes.

More posts

MORE_POSTS_GIF.gif

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.

Pt1.jpg

Pt2.jpg

Pt3.jpg

Pt4.jpg


Guide to the Steem Ecosystem (Udemy Course)

COVER_ALT.jpg

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.


level.png

Brand2018.gif

Steem - The Future of DApps

DAppsVID.gif

Sort:  

Great to see this more in-depth and systematic breakdown of a governance change proposal!

The section that was of most interest to me, How much stake would be needed to control the blockchain?, was not too clear to me. I could not understand how the ranking system would be different - how would it require owning a less amount of stake (than our current governance mechanism) in order to control the blockchain? It seems to me that if there are two stakeholders (a single entity and the community), then the ranking rules would apply to both. Any changes made would not put the single entity at a disadvantage while at the same time being neutral to the community's stake, right? Or maybe I can't envision how the ranking rules would only put the single entity at the disadvantage and the same disadvantage not being applied to the community (effectively cancelling out the change).

Weighted ranking puts a single account at a disadvantage if the intention is to control the blockchain. This is because their stake only significantly impacts a few witnesses. The community on the other hand would be ranking many witnesses between 1 and 20. This would result in less weight on the top few witnesses but more weight on the lower witnesses.

Q_RESPONSE.jpg

In the above example, the single account would control about six witnesses compared to 14 by the community even though in the example the single account has equal stake to the community.

But the point is really about a single entity, not a single account. A single entity can divide its stake across multiple accounts. If the single entity divides its stake across multiple account, is it still at a disadvantage (while the rest of the community not)?

Also, I am not completely clear on what the percentages refer to in the above diagram. Some more labeling of the variables you include in your diagrams will help as currently it's not very clear. But I really appreciate you making the diagrams as it helps put the conversation on a solid foundation.

I think the key question is how many witnesses can one entity control. Dividing stake into more accounts could increase the number of witnesses that one entity can control if that entity has sufficient stake to do so. In the current system dividing stake is not necessary as each account has 30 equally weighted votes. Reducing the number of votes or reducing the weight of votes based on a rank would likely offer incentive to an entity to divide stake between accounts to obtain more witnesses. If the number of votes are reduced sufficiently or if the weighting is heavily skewed, it becomes close to impossible for one entity to control the required 17 witnesses as their stake supporting witnesses is greatly reduced by dividing the stake into several accounts. I explain in detail in another post using an example of reduced number of witness votes.

Yep, I get that. And I read your post which was again well detailed.

The downsides that I see from reducing the number of witness votes are ones which you have also mentioned:

  • Even if a single entity cannot control 17 witnesses, it can still control 4, which is enough to block hardforks. Thus the community still can't have its own governance.
  • Splitting the chain into two becomes that much more likely. It will be much more difficult to get the 20 consensus witnesses to run the same software version if anyone can own a witness spot or two with some amount of investment. It seems to me that achieving agreement will be really hard.
  • The community is at a disadvantage because it has to organize as well as a single entity organizes itself in order to counteract it, but it can't be that well organized because it's a decentralized body. The more complexity, the more at a disadvantage the community is.

On a positive note, Steem is becoming less susceptible to centralization as newly created Steem is getting distributed to more users. It is also difficult to buy a sufficient amount of Steem from exchanges to have a strong influence on the blockchain. The only way to do it is to buy large accounts such as the Steemit accounts. Even these accounts hold a considerably smaller proportion of stake compared to what they held a few years ago.

Hi @spectrumecons!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.653 which ranks you at #1137 across all Steem accounts.
Your rank has improved 2 places in the last three days (old rank 1139).

In our last Algorithmic Curation Round, consisting of 69 contributions, your post is ranked at #12.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers like your work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

 4 years ago  Reveal Comment

My name is Jesus Christ and I do not condone this spamming in my name. Your spam is really fucking annoying @hiroyamagishi aka @overall-servant aka @olaf123 and your spam-bot army. This is not what my father, God, created the universe for. You must stop spamming immediately or I will make sure that you go to hell.

If anybody wants to support my eternal battling of these relentless religion spammers, please consider upvoting this comment or delegating to @the-real-jesus

 4 years ago  Reveal Comment

I don't care. Stop spamming my posts.