Change to 20 vote per account

Title: Change to 20 vote per account

Author: Lisk Central America <info@liskcentralamerica.io >

Module: Consensus

Created: 2019-03-23

Author

The Author of this proposal is currently a standby delegate on the Lisk network. This proposal may or may not better my chances of becoming a forging delegate. ( Full transparency is needed here )

Precursor Information

This proposal takes into consideration that the “Delegated Proof of Stake” release that is currently on the roadmap is looking at/for minor changes that can be done to the voting system rather then a complete rewrite of the consensus algorithm and or protocol.

First and foremost, I believe the most important characteristics of a blockchain consensus model are as followed: ( In no particular order of importance )

  • Secure
  • Decentralized
  • Scalable

Caveat: A blockchain needs to be secure for it to have validity, so we find ourselves sacrificing either scalability or decentralization when fine tuning any consensus algorithm at this point in time.

The consensus algorithm DPOS has put more of an emphasis on scalability while decentralization has been defined as 101 nodes for Lisk. At this point in time I am happy to keep the current forging delegates at 101 as it allows scalability and is decentralized to an acceptable level for the time being.

I believe there are some minor changes that can be applied to the voting system to increase decentralization without hurting scalability or security in any meaning way.

Abstract

This LIP proposes a change of the voting system for the election of delegates in Lisk. I suggest to only allow 20 vote per account with a vote weight given by the balance of that account. The goal is to increase the decentralization of the network by trying to limit the size of coalitions while at the same time keeping the current scalability level and insuring the network remains secure. I also think this will create a more fluid and tightly contested forging position landscape due in part to new game theory scenarios being introduced.

Major Voting Factors

As I see it now there are four major factors that grant a delegate a forging position today. They are as followed: ( In order of significance and power )

  • Coalition Power (Creating rules outside of the protocols so voters follow certain voting pattern )
  • Incentivised Economics ( Offering rewards in return for votes )
  • Vote swamping agreements between delegates ( This is and can be across coalition lines )
  • Providing Positive Input to the Lisk eco-system ( Tools, Support, Promotion, Education. etc. )

Problems with current voting system

  • Nothing at the protocol level restricting coalition from gaining 100% control of the network
  • Very high barrier to entry for new delegates trying to enter a forging position
  • Coalition Power as described above has too much influence over voters
  • Vote swamp agreements with large accounts created a huge vote differential between position 1 and 101. (This makes the top 101 very stiff and not very contested. Only the bottom 3 or 4 delegates are ever at risk of losing their forging position)

Some of these are described below from a segment of the initial LIP:

“In the current voting system in Lisk, every account holder can vote for up to 101 delegates and the vote weight of the account is the balance of the account, also referred to as the stake of the account holder. The current voting system is based on approval voting and the idea is that the delegates approved by the highest proportion of stake are the most suitable to secure the Lisk network. In practice, this system suffers from several shortcomings, which also have been addressed by members of the Lisk community. First of all, there is a high incentive for delegates to form a coalition or pool by voting for each other as the vote weight is independent of the number of votes cast. The active delegates further typically share a certain fraction of their earnings via the block rewards with their voters. As many coalitions demand that stakeholders vote for all their members to receive any payouts from the block rewards, the coalitions can easily manifest their position in the top ranks. Secondly, there is a very high barrier for anybody to become an active delegate because many accounts that together represent a very large amount of stake (approximately 31,000,000 LSK as of 26/11/2018) need to change their votes. In particular, this means that a new delegate that manages to get support by a substantial part of total stake, such as 1%, has no chance to become an active delegate. The third problem, which is more of theoretical nature, is that it is possible to change all active delegates by owning 41 % of the total supply of Lisk tokens. This would allow to stop the chain, censor transactions or execute double spending attacks, for instance.”

Problems with 1 vote per account

The biggest problem with only 1 vote per account is that is trying to increase decentralization by completely destroying coalitions. This opens the door for single entities to control many forging delegates as the barrier to entry into the top 101 would be at such a level where big investors or exchanges could control the network. The top 101 would just be the top 101 wallets or rather close to this. I do believe there is and should be major investors forging but not 100% of the forgers.

Problems with increasing votes per account

The biggest problem with granting accounts more then 101 votes is that it exacerbates the coalition size and vote swamping problems. For argument sake let’s say an account has 131 votes and there are only 101 forgers. Yes, this would probably decrease the 101 to 131 vote cliff (Huge vote difference) but this will just incentives coalitions to add more members and give delegates who vote swamp even more power to create more agreements with delegates 102-131.

Proposal

Reduce votes per account to 20

Desired Goals

  • Decrease coalition sizes ( Increase decentralization )
  • Decrease vote swamping power (Create a tighter contestation between all forging delegates and stand by delegates)
  • Decrease barrier to entry
  • Increase Participation in voting
  • Increase Simplicity of voting system

Caveat: Another property that may be intuitively named is “fairness”. However, this property is very subjective and is hard to precisely define. Thus, it is not mentioned above.

Decrease coalition sizes ( Increase decentralization )

  • By limiting the votes to 20 per account it will be rather hard for coalitions of greater then 20 members to form.
  • There would then be a protocol level restriction on what the max percentage of the network any given coalition can hold.
  • No coalition will control more then 19.8% of the network

Decrease vote swamping power

Reducing the votes to 20 per account would restrict the amount of vote swamp agreements one large account could have to 20. If a coalition of 20 forms, a large account in that coalition would be less likely to make vote swamp agreements across coalition lines due to him having to vote for all 20 members of his coalition.

Decrease barrier to entry

As described above in the segment from the initial LIP, the fewer the votes allowed per account will decrease the barrier to entry. We need to be careful not to lower the barrier to entry to low as I described what the problems are when that happens. I believe 20 votes per account will lower the barrier while making the top 101 forgers are not just the top 101 accounts.

Increase Participation

Once the 20-vote limit is enacted, I think it is safe to say that competition amongst delegates would increase and would most likely raise the average share percentage amongst the top 101. This would make voting look way more appealing to Lisk holders that are not already voting. It also might bring in new investors looking at a healthy interest payment for holding Lisk. Yes, the voter will only be getting reward share from 20 delegates but the number of voters per delegate would decrease drastically (will describe below in new game theory section).

Increase Simplicity of voting system

Only having 20 votes would require users just make 1 transaction apposed to the current 4 transaction. Yes, this is not as simple as just 1 vote but my reasoning above examples why I think that is a bad idea.

New Game Theory Scenario Introduced

Only being able to vote for a sub section of delegates that are currently forging would create incentives for voters to evenly distribute their votes amongst the top 101.

Payout = (Block Rewards * Share %) / Number of Voters

Example: Let’s say all delegates shared 25%

Voters would be more inclined to vote for a delegate that has less voters in the top 101 due to making their payout greater. This would be an ever-evolving scenario where votes would be more fluid due to the incentivised economics. This would also close the vote gap between position 1 and 101 from 25 million today to something a lot more reasonable, in turn making the top 101 more fluid and contested with any delegate at risk not just the bottom 2.

Reality

It is important to acknowledge that one perfect voting system for Delegated Proof of Stake does not exist. Nevertheless, the proposed change of the voting system is a great improvement of the current state and an important step in evolving the Lisk Delegated Proof of Stake system.

#Addition Comments on Adding more Voter per account while keeping forging delegates at 101

@janhack said:

"I still have two major concerns with the proposal:

  1. I believe the current voting pools will persist, there will be no big change in active delegates and no fair competition between delegates.

I think as soon as current delegate groups would fear losing power, they will change their reward scheme according. For instance, a pool could not share rewards if voters cast votes for standby delegates. Then we are exactly in the situation that you describe in a lot of detail below: Voters won’t vote for standby delegates as they lose rewards.

You write that you think that would not happen, but it is already happening to some extend now:
“In order to get the new 5% bonus on top of your 25% reward, you just have to make sure that you are voting for all the Elite Members and not voting any Sherwood members.” (https://liskelite.com/)

I don’t want to judge this behavior here, but my point is that from a game theoretic point of view this is the rational strategy for a group of players (active delegates) in this case.

  1. Current voting pools could further add new (unofficial) members

You claim that current voting groups don’t add new members because the community would not tolerate it. But in a trustless, decentralized system nobody can now who is part of a voting pool and who not. So you cannot rely on this fact for the voting system to work."

Dear lisk.central.america,

thanks for sharing your proposal. The approach of reducing the maximum number of votes is already discussed in the “Change to one vote per account” LIP and the corresponding topic in this forum. However, let me still repeat my main concerns with the proposal here.

Reducing the maximum number of votes from 101 to 20 only reduces the incentive to form a coalition by a small degree. The reason is that it would still be very beneficial to form a colation of 20 delegates and require account holders to vote for all delegates in the coalition to receive shared rewards. Moreover, large coalitions may still develop a suitable scheme of having account holders distribute their votes evenly among all active delegates of the coalition. We believe that it is important that the voting system does not create any incentivze to form a coalition, as otherwise the shortcomings of the current voting system persist.

You also claim that allowing only one vote per account would imply that only whales become delegates in contrast to your proposal. But one of the main properties of one vote per account is that it achieves proportional representation. This means that any group that represents x % of the voting Lisk tokens is guaranteed to decide about x delegate. For instance, if the smaller account holders together own 20 % of the total supply of voting LSK tokens, they could decide about at least 20 out of 101 delegates. This makes it in fact much less likely that the top 101 active delegates are all dominated by whales compared to the current voting system (or 20 votes per account), where a coalition of whales can easily overpower a coalition of small account holders.

Cheers,
Jan

Just a reminder for any ideas and LIP drafts regarding the “Delegated Proof of Stake” roadmap phase suggested here. It would be great if you could finalize your LIP and open a PR on https://github.com/LiskHQ/lips until the end of September to ensure that it is fully considered by the Lisk foundation. The research team will also publish 3 more LIPs for the “Delegated Proof of Stake” roadmap phase before then. So stay tuned for some exciting new proposals to discuss here.