Everybody - thank you for the commentary. This is a difficult problem to solve and I appreciate all the suggestions.
I like this idea and ideally we can incorporate it if technology permits.
You’re certainly correct here, but in reality, any kind of reward for active voters (and nodes with active voters) or punishment for inactive voters (and nodes with inactive voters) will ultimately end up favoring those that have control over their ICX (whether that be investment in ICX or custody of ICX). The ICON community has been asking for a solution to inactive voters for a while, but maybe it hasn’t clicked with most people that whales and exchanges will be the most “active voters” out there, and any solution to stagnant votes helps self-delegated teams.
In theory, any P-Rep could come up with a Smart Contract that auto-delegates for their voters to circumvent this system, which is a valid concern, but at least any P-Rep would be able to do it rather than just exchanges. IMO people that would utilize a system like this are people who would already be relatively active though, so I still think my proposal is a step in the right direction.
How about if we forward the stagnant votes to the CPF or a marketing initiative fund or something similar - something common to all preps the allocation of which could be decided by voting? Alternatively they could just be burned, although Im not sure whether this will not trigger an incorrect avalanche message
I’m not sure what you mean by your suggestion here, if you can edit it and elaborate that would be helpful. This proposal is to slowly undelegate votes of anybody that has not voted in the last 60 days, nothing is getting reallocated anywhere which is why I am confused.
I believe you are conflating two different problems. This is more about vote stagnancy, while your commentary is more about how to pick quality P-Reps and spread votes around. You say that the problem is not that ICONists are not checking their wallets, but that is actually not true. As @TranscranialSol pointed out (if i understand correctly), ~36% of all ICX votes have not sent a setDelegate transaction in the last 60 days. The idea is to slowly lower their delegation amount. This means that people who never check will earn less rewards, which by design leads to more rewards for people that do check. This also means P-Reps that are supported by people that never check will slowly lose votes. When one P-Rep loses votes, all other P-reps earn slightly more income by design, since rewards are based on my votes received / total votes. For a P-Rep with active voters, “my votes received” will stay the same but total votes will go down. Same logic can be applied to voters, since voter rewards will be based on my votes / total votes.
As for vote spreading and voting for good teams, I think this comes from UI/UX improvements to ICONex, not something at the protocol level. The idea would be to get people checking at least once every 60 days while also adding UI/UX improvements to help them pick more active teams. In my opinion we’ll never have something that is not gameable at the protocol level that can accurately assess a “good and active team”.
See my point above regarding conflating vote stagnancy and picking good teams / spreading votes. As for your suggestion of 50/25/25 and no more than 50% to teams in the top 30, I had thought of this too but unfortunately this also creates a huge incentive to Sybil Attack and/or start a cartel with two other people.
Sybil Attack Example: Bob launches 3 anonymous nodes and self-delegates his ICX to Bob1, Bob2, and Bob3. If we add the 50% limit to top 30, Bob launches 3 anonymous nodes and self-delegates his ICX to Bob1 (top 30), Bob2 (outside top 30) and Bob3 (outside top 30). And if Bob has so much ICX that he can’t keep Bob2 and Bob3 outside of the top 30, he’ll launch even more anonymous nodes further worsening the Sybil attack.
Cartel Attack Example: Bob talks to Alice and Charlie in Twitter DMs. Bob, Alice and Charlie all agree to vote for each other using the 50/25/25.Note: This is similar to what EOS has and they ran into both Sybil attacks and cartel creation based on conversations I had with some of their community block producers
This suggestion seems more like a promotional idea similar to @TranscranialSol’s Spread your Votes campaign rather than a protocol level solution. For spreading votes around, I actually DO think that the best solution is promotions + better UX, but my proposal is more about vote stagnancy, which are people that don’t vote at least once every 60 days.
It’s an interesting suggestion to burn the rewards of stagnant voters, but I think this will add lots of complexity to development. The way ICON rewards work is that a pool of ICX is created for voters every block, let’s say 10 ICX. Then the network calculates per wallet: delegated ICX in Wallet_n / total delegated ICX. So the “redistribution of rewards to active voters” isn’t some sort of active redistribution, it just lowers the percentage of rewards going to inactive wallets and therefore raises the amount going to active wallets. But having said all that I’ll keep this in mind and talk to ICON devs about it.