shadowproject / shadow

ShadowCore integration/staging tree
MIT License
95 stars 60 forks source link

SecureMessaging: moderation proposal #53

Open LiteBit opened 8 years ago

LiteBit commented 8 years ago

I've been thinking about ways to allow banning from a group chat via consensus. The platform won't have any moderators so if a ban feature is going to be available it'll need to be some sort of voting/consensus system.

My proposal would be for a Moderation button to be added next to the "Invite" button of a group chat window. Anyone can click that button to add 1 or more people to a ban queue at the top or side of the chat window. Once someone is added to that queue voting buttons are added beside their name which can be voted on by the remainder of people in the group chat. Up would represent a Yay vote for banning, Down would represent a Nay vote for banning.

Once on the ban queue the person's chatting ability is removed, only read privileges until moderation is decided by committee. That way they can't sway opinions or what not. A timeframe for voting will need to be associated with the ban queue. A consensus % would also need to be associated with it to determine final outcome of ban or no ban.

02b

I think this feature could be compromised by a group of trolls causing trouble. They could band together to unban their friends. However, I'd imagine in 95% or more of cases the community would vote on merit of dialog and thwart any attempt to undermine the moderation system.

Once banned that user would be added to a blacklist specific to that group chat.

AutomaticMonkey commented 7 years ago

Why voting, why not give ownership of the room to whoever started it and let him ban whoever he wants, like on IRC? Otherwise a bunch of trolls or just 1 guy with a bunch of instances open can run around throwing people out of their own rooms.

kewde commented 7 years ago

@AutomaticMonkey that is most likely to be the mechanism we will be using by default.

The trick part is; how would the system remember who was the original owner of the group? I found the easiest way to do that is to have this mechanism: admin_private_key -> admin_public_key = group_private_key -> group_private_key

This allows someone to prove ownership of the group_private_key because they have the admin_private_key :+1:

Most likely that will be come the moderation mechanism.

AutomaticMonkey commented 7 years ago

I suppose the owner could also send a coin to the group as soon as he opens it, and the group only accepts moderation commands from whoever first sent it a coin. Maybe he could also reset the group by transferring the coin out, then someone else could take it over by sending it a coin if he wanted to turn the group over to someone else.

Eggdrop IRC bots work like that, whoever first says "hello" to it is the owner. (I knew a girl who was like that too.)