Joystream / joystream

Joystream Monorepo
http://www.joystream.org
GNU General Public License v3.0
1.43k stars 115 forks source link

Idea: Vote against CMs #2375

Open mochet opened 3 years ago

mochet commented 3 years ago

Implementing any sort of permanent ban for a council member seems like it would cause many issues and exploits. If banning is not used, then the only way to prevent a CM from sitting is to have every other CM outvote them which is extremely expensive.

Another way to deal with problematic CMs may be to have users be able to stake tokens to vote against a CM, this would ideally have a multiplier (for example 0.33x to make it an expensive activity).

As an example: bob stakes 5m JOY, voters stake 3m JOY for him. At this point bob has 8m JOY as totalstake in the election. As bob has a history of inactivity or has been preventing a runtime upgrade from passing through a group of voters decide to put together 20m JOY against him, taking into account a multiplier of 0.33x this removes 6.6m JOY from bob's stake, leaving him with only 1.4m JOY in the election voting process and meaning he isn't elected.

Cons: Too many to list.

Related: https://github.com/Joystream/joystream/issues/2125

bedeho commented 3 years ago

Too many to list.

:D

Is this only for testnets, or for mainnet?

mochet commented 3 years ago

Is this only for testnets, or for mainnet?

I would say for mainnets, I can imagine many scenarios where it would work well and many scenarios where it would be terrible (which is a quality the current "large stake = win election" / always having the same candidates). It may also help in situations where there are a group of candidates that repeatedly sit on the council and refuse to approve certain proposals that are necessary (ex. refusing to approve a new budget for n weeks, to the point that the platform suffers)

I do think it would introduce a lot more volatility in elections but is one practical way of implementing some kind of safeguard against someone with lots of tokens always being guaranteed a spot. It also avoids considering any sort of system where someone can be outright banned (if this is really a problem that needs to be fixed, it can't be known until mainnet anyway)

Another aspect of it is that the current system only allows for "good" candidates, there may be plenty of reasons to either not want to vote for a candidate or to actively vote against a particular candidate.