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.