Mimo Log #1: Reputation & Trolls

Moderating A Decentralized Network

I’m trying out this series where I document some of the challenges behind building Mimo. I’m lazy so I might stop writing it but I figured it would be a nice way to keep the community updated and start a discussion about how to build decentralized networks without moving too fast or breaking things à la Facebook.

Without further ado, here goes the first installment of Mimo logs.

Two weeks ago I unveiled Mimo, a project I’ve been working on since January. If you don’t want to read the whole announcement post here’s a quick recap of what Mimo is.

Mimo is a standard for decentralized tokenized pseudo-identities. In non-buzzword that basically means I’m working on online profiles hosted on the blockchain where each profile is represented by a unique ERC-721 token. I’m hoping that Dapps plug into this standard that way they won’t have to focus on user info and dedicate their efforts to hosting great experiences on their Dapps.

Asides from the technical challenges behind this project (gas costs are through the roof T-T ), I’ve been thinking about the social implications behind building a single decentralized standard for Dapps to use. Mainly, how do I curb troll accounts and build reputation into this standard.

Follow your boi on Twitter bih

The reason I find the troll problem so challenging is because:

  1. I don’t know how to discourage bad actors by making trolling not worth the effort/cost while not ruining the experience for everyone else.
  2. I would rather not play the police and leave everyone to their own devices (decentralization ftw) but I know that won’t be possible since people can’t be civil for some reason.
  3. I don’t understand trolls. I don’t understand why people wouldn’t be civil on the internet just because they’re hidden behind a screen. It’s this lack of understanding of what I’m up against that makes this challenging (for me at least).

I’ve come up with a few solutions myself, but they have flaws. If you want to propose a solution or tell me why one of my solutions is bad feel free to respond to this post with your thoughts.

Dealing With Trolls

A registry contract could contain a list of banned addresses that any Dapp could plug into or write to. It could even be governed a DAO!

Example of a blockchain wide Blacklist contract:

contract Banned {    ERC721Token public token;    
mapping (address => bool) public addressBanList;
mapping (uint256 => bool) public idBanList;
event Banned(address indexed _banned, uint256 indexed _id);
function Banned(ERC721Token _token) public {
token = _token;
}
function banHammer(uint256 _id) public { address troll = token.ownerOf(_id);
// ERC-721 contract standard, returns address
idBanList[_id] = true;
addressBanList[troll] = true;
emit Banned(troll, _id);
} function isBanned(uint256 _id) public view returns(bool) { address addr = token.ownerOf(_id);
return (addressBanList[addr] || idBanList[_id]) ;
}

Note: ownerOf() is a function in the ERC-721 specification. It takes a tokenId and returns an address (the owner of the token). The reason we don’t only ban the id itself is because by banning the owning address we can also ban any other profiles they own (by checking the isBanned() function).

Example of a blockchain wide invite/whitelist registry:

contract Goody {    ERC721Token public token;    
mapping (address => bool) public whitelist;
event Invite(address indexed _invited);
function Goody(ERC721Token _token) public {
token = _token;
}
function invite(uint256 _id) public { address good = token.ownerOf(_id);
// part of Zeppelin ERC-721 contract, returns address
whitelist[good] = true;
emit Invite(good);
} function isInvited(uint256 _id) public view returns(bool) { address addr = token.ownerOf(_id);
return whitelist[addr];
}

Note: While it can be used to ban bad actors, registries can also be used to invite users with exemplary behavior into exclusive networks/safe spaces.

Pros:

  • While blacklists and whitelists are nothing new, it’s the first time that one has been proposed for use in social Dapps across the whole blockchain. So far, moderating has been the job of networks but now moderation could be done with the help of the community across networks.
  • Dapps could essentially police themselves with a system like this, and social networks that have the same values could use the same blacklists that way they won’t have to start their moderating efforts from scratch.
  • While moderating will be tough at first, each new ban will make it easier for new Dapps to leverage the existing network and build safe spaces quickly without worrying about moderating and focusing on the experience of their Dapp.
  • While most networks will plug into the more moderate lists, certain Dapps can choose to create/plug into their own lists with a select few Dapps if they want to be stricter/looser with the rules.
  • Creating a new a profile costs money (so that I can make money and to curb trolls) so getting a new wallet then sending ETH to it to pay for a new profile should be enough of a hassle to stop the less motivated trolls.

Cons:

  • Blockchain wide blacklists might lead to further division among people and contribute to the formation of isolated “thought bubbles” and increased groupthink among Dapps. This can already be seen in social networks where groups are in their own little bubble (SV Twitter, certain subreddits or even democratic/conservative Facebook). While I do appreciate the fact that there’s now a space for everybody, leaving groups to fester in a cesspool of negativity and groupthink is not healthy either (see r/incels or r/braincels).
  • While Mimo does allow the creation of multiple, smaller social networks I have no clue whether it will end up that way or if users will consolidate to a few large platforms much like today (Twitter, Facebook, Instagram). If the latter is the case, then blacklisting profiles will effectively be like banning them from the whole network which is not something I want happening. New networks that would promote their support of free speech would pop up in retaliation but in the process might end a place where hate speech and the like is rampant (see the paragraph above).
  • This solution might prevent a lone troll from trolling but a party that is motivated by political or financial reasons and that has some serious bankroll will not be stopped by a measly $2 fee per profile. I can’t increase the price of a profile until it isn’t viable for a bad actor because then regular people wouldn’t be able to afford a profile. There will always be somebody with deep pockets who can afford to throw away cash in order to control public discourse if they can as well so a simple price hike won’t be enough.
  • I’m sure there’s other ways a blacklist could be abused for personal gain that I haven’t considered yet. I’m afraid there will never be a solution good enough to stop a truly nefarious actor.

On Chain Reputation

While I initially had the idea that Mimo profiles could be used for social networks and games on the blockchain, Joe Urgo from District0x pointed out how Mimo could also power marketplaces. If that’s the case, then there needs to be a way to have a reputation system on chain that verifies a profile’s reputation. There can be different kinds of reputation systems depending on the kind of service being provided.

Staked Reputation

If we’re dealing with a freelancing marketplace then a staked reputation system could do the job. A system that ask you to place a certain amount of money in before you can participate in the marketplace. If you do anything wrong then the money you staked will be burned. If you ever decide to leave the marketplace then you can pull out the money you staked and your membership is then revoked. Your on chain reputation can be determined by the amount of money you have staked and thus the quality of gigs that you’ll have access to will increase with your money at stake.

Con: If ever the amount you staked were to be significantly lower than the reward you could obtain for breaking the rules, then the whole system is rendered moot. True security will never be possible unfortunately but simple due diligence should be enough to stop this type of threat. Ex: Somebody with $100 staked should not have a gig worth $1000.

KYC Reputation

If we’re dealing with a Uber competitor built on District0x then KYC verification will be a must. With KYC verification, background checks can be made on the individuals behind the profiles and then that verification can be used across the blockchain by any Dapp that will require that kind of verification. Verifiers could even charge for their services! Just another example of the Mimo economy at work folks :)

Note: I should probably leave something like KYC to identity projects like uPort. Mimo should stick to online profiles therefore staked reputation would probably be the most suitable system.

Conclusion

These solutions have their own flaws but the point of this post was to kickstart a conversation about how to proceed with decentralized social networks. My understanding of Game Theory is quite rudimentary so I’d appreciate it if somebody with a clever insight could chime in and contribute to the discussion. If Mimo does become THE standard for profiles on the Ethereum blockchain one day, then it’s imperative that we find a solution to curbing trolls and building a trustworthy reputation in a trustless and anonymous future.

Hope you enjoyed the first issue of Mimo Log, the next issue will be on strategies I use to decrease the gas costs of my contracts.

Please share this post if you liked it and check out the Mimo announcement post and the contracts on GitHub.

Underdawg by Ghilia Weldesselasie

Ghilia’s personal blog. I write a lot about my experiments (mostly ways to make money) and my thoughts on blockchain tech. If you’re looking for some interesting How-To articles check out my “Let’s Hack” series.

Ghilia Weldesselasie

Written by

Building Mimo, out here trynna get that 💰💸

Underdawg by Ghilia Weldesselasie

Ghilia’s personal blog. I write a lot about my experiments (mostly ways to make money) and my thoughts on blockchain tech. If you’re looking for some interesting How-To articles check out my “Let’s Hack” series.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade