[misc] Shinigami Eyes sucks, actually

Sadly this isn't a blog about Death Note. I wish it was. It's certainly a more fun series to watch than the subject of this post. For the unfamiliar, Shinigami Eyes is a browser addon that "[...]highlights transphobic and trans-friendly social network pages and users with different colors". It boasts quite the wide array of supported sites, loudly proclaiming that it supports Reddit, Facebook, Twitter, Medium, Tumblr, YouTube, Wikipedia articles, search engine results and "all the sites with Disqus comments".

Unfortunately it also completely sucks.

Identifying bigots on the net

Now, identifying bigots on the internet is an interesting moral beast. I can certainly see the reasons why it might be needed. If we look at the technological roots, the original idea for identifying bigots can mostly be found in Randi Harper's ggautoblocker. The idea behind "Good Game Auto Blocker" was to help people targeted or annoyed by the online hate campaign1 that was Gamergate. It worked pretty straightforward: it identified 5 major supporters of the campaign and then simply went through their follower lists, identifying anyone who followed more than 2 of them as potential supporters of the movement, and adding them to a publicly available Twitter blocklist.

Quite the clever maneuver, and while it's use to stop Gators was only of limited use (as they eventually learned to simply not follow these people), the idea of potentially being able to identify early on if someone was a bad faith actor or not stuck. Over the years tools like the Reddit Masstagger2 have popped up, aiming to help people figure out if the person they're responding to is being honest or is being a bad faith troll.

There are of course ethical concerns here, ones that aren't too dissimilar to common fears about AI being used to "hide" behind things like racial profiling; if a blocklist like this says you are a bigot, how do you prove that you aren't? This is a bit of a conundrum, especially when platforms like Twitter are more often than not willing to eviscerate people for the slightest bit of disagreement or personal feuds, even if it turns out later down the line, it was almost all perceived anger.

Over time, I personally have found and concluded that there are proper ethical answers to these questions. Firstly and foremostly, transparency is extremely important. Someone should, be able to identify what got them put on lists to begin with. This is also helpful to identify the kinds of people who end up on these sorts of lists by accident (Reddit for instance habitually attracts users in hate subs who are not hateful but either are trying to troll or deconvert people from these subreddits). Secondly, either an appeals process should exist, where a user is able to get old comments removed (everyone has been an edgy teenager at some point) or the tool should have a natural build-in expiry date (for example only tracking the 1000 most recent comments a user has made is a common limit) so that people who have changed won't have to deal with their past for the rest of their lives.

Shinigami Eyes: an abject lesson in ethical failures

So, Shinigami Eyes. Shinigami Eyes might as well be a regression to the point where it's actively harmful. It violates pretty much every ethic I've previously described and then goes a bit beyond.

First things first; how does Shinigami Eyes "work"? And not as in, what does the user see, but rather, how does Shinigami Eyes determine who is and who isn't a transphobe or who is trans-friendly. This is an essential question to answer because it helps people identify what is and is not considered harmful behavior by the application.

The unfortunate answer here is that... it might as well be completely arbitrary. Shinigami Eyes sources the people to block from two places: the local browser (which is a set of manual overrides that will replace anything the latter source considers) and a "mix of manual labeling and machine learning", the latter of which can be contributed to by using the extension. What Shinigami Eyes actually uses for the latter is a Bloom Filter... which is bad.

What is a bloom filter

To keep the explanation very simple, the idea behind a bloom filter is basically like this. Let's say we have a list of Alice and Bob. Now, we want to know very quickly if Caroline is in the list. Now, while we could go through every item in the list to verify "is this Caroline", there is a more efficient way - we can turn both Alice and Bob in this list into numbers, let's say it's the length of their names so we get 5 and 3. We call this "hashing", where 5 and 3 are the hashes. Notably, you can't easily turn 5 back into Alice and you can't easily turn Bob back into 3. Next, we can save these numbers somewhere. Let's say we have a big board with 64 dots in it and 64 pins besides the board.

Then on that board, we place a pin for both 5 and 3, because we know that that is the hash of both Alice and Bob. Now, if someone asks us "is Alice in the list", we can quickly check the board with the length of Alice's name and would you look at that, Alice is on the board, so she is in the list! Similarly, we can now also quickly answer if Caroline is in the list; the length of her name is 8, so the hash is 8 and would you look at that, there are no pins there so Caroline is 100% not in the list.

Okay, but some of you may be wondering, what if we add a name that is equal in length. For example, we want to see if Ben is in the list. According to our hashing function, Ben is in the list. Unfortunately, as you may now begin to conclude, Ben isn't actually in the list (remember, the list was Alice and Bob). This is what we call a "hash collission". Hash collissions are practically unavoidable, but it's fine; if we get a match, we can just iterate over the list, conclude that Ben isn't in the list and say that.

So, as a result with a bloom filter we can easily conclude that:

  • If it doesn't match, then what you're looking for is not in the list.
  • If it matches, then what you're looking for might be in the list.

There are a few extra variations and ways to make this more efficient; for example, a common technique is to use 3 different hashing functions and pin all 3 hashes, then check if all 3 hashes are a match when we get asked if something is in the list (if they aren't, then we know there isn't a match), which decreases the likelihood of potentially running into a scenario where we have to actually check the list.

To bring this back to Shinigami Eyes, the problem with Shinigami Eyes' bloom filter is that it's used as an authoritative filter. In other words, if the hash is in the bloom filter, the user is 100% a part of this list, no further questions asked. One may notice immediately that the aforementioned hash collission problem is excessively likely. In fact, I can prove to you that it is; here is a list created by twitter user @ulvniya of random potential Twitter usernames that, when used as a username, will result in your name getting marked red by the Shinigami Eyes extension3 (in addition, she also has a very useful site you can use to check your own Twitter following without needing to install browser plugins).

Of course, as one might be able to easily surmise, whomever operates this list could easily use this extension to sic it onto people they have personal disagreements with; there is no verification mechanism. The sites owners claim that they "manually check for the human element" of every submission, but this appears to be rather farcial; there is no source available that shows what the bloom filter derives from, nor is there any direct mechanism that can help someone confirm why they were put on a list like this.

Similarly, appeals seem to be handled entirely through the application and create an unclear sense of user safety about updates; sure you may have untagged your friend who you know is not a transphobe as not being a transphobe, but it silently just creates an override for you and sends a submission to the people running the site, who may as well ignore it. Unless you use a separate browser, there is no way to verify if the Shinigami Eyes extension ever updates it.

The result is that the Shinigami Eyes extension creates an unnecessarily huge amount of unclear collateral users, something which should at least in theory be entirely avoidable.

Now, if that sounded bad... it's about to get worse.

Company kept

For the unaware, I firmly believe that when you run a platform of any sort, you have at least at a basic level, a measure of who you allow and who you don't allow. This is in response to the so called "Nazi bar" phenomenon. The nazi bar phenomenon is that if you have nazis show up at your bar, they will eventually start scaring away all non-nazi customers, leaving only the nazis behind.

Of course, the Nazi bar pehnomenon is one that is easier done depending on the size of your platform. When it's just you and your friends, the Nazi bar phenomenon is as simple as "don't invite that one racist friend and don't be an ass". For sites like Reddit, the only reliable way to deal with the Nazi bar problem is one of reactiveness; there are so many accounts on those sites that curbing one just prompts them to register 20 others, so you might as well close down only the ones you receieve complaints over.

This brings us to the unfortunate reality of Shinigami Eyes. You see, while she claims to not have written the extension (and actual evidence seems to at least imply that this is not the case), a quick look through the Shinigami Eyes issue tracker will showcase that one of the main contributors to the extension is Laurelai.

For anyone unfamiliar, Laurelai is one of the "old" internet assholes. Dating back all the way to 2007, Laurelai's internet infamy starts with becoming a moderator of the /r/LGBTQ subreddit. As a subreddit moderator, she was widely considered to be an awful one, often assuming the worst in people, frequently banning people over personal feuds rather than breaking subreddit rules and so on and so forth. At one point it go so bad that a bunch of users ended up banding together and forming the /r/ainbow subreddit as an alternative to /r/LGBTQ.

Now, for anyone slightly familiar with Reddit, the tale of violentacrez might ring a bell here. Violentacrez was notable because he ran the various "creepshots" subreddits; people taking pictures of women without their knowing consent. Eventually he was unmasked by Gawker, however even before this happened, Laurelai was notably friends with Violentacrez and tried to get him unbanned from /r/ShitRedditSays.4

All of this drama would eventually come to an end after Laurelai got raided by the feds. You see, besides being a terrible moderator, Laurelai tried to get involved with the black hat hacking group LulzSec, and after being rejected seems to have tried to report the group to the feds (who were already in the process of arresting members of the group). The feds did try to get her to infiltrate the group, but she claimed that this would be impossible. In the long term, this led to her online presence dying out for a few years, with that seemingly being the end of Laurelai Bailey right up to... the allegations.

So now I am going to quickly put a CW for the rest of this section and suggest that if the topic of rape is something that stresses you out, you scroll past this segment to the next section.

See, Laurelai has not just one, but two different accusations of rape made against her. It's hard to find more sources to these allegations given most are platformed on sites I do not want to give any oxygen whatsoever and the twitter feeds in question have by and large been deleted. The gist and common thread between the stories appears to be that Laurelai would try to live with various people for several months at a time, but would, over time force themselves sexually upon people, typically young transgender girls, who were afraid to speak up about it online because of Laurelai's outsized presence on the internet making her somewhat of a minor e-celeb (such stories have sadly become much more common over the years).

I can't... really begin to describe how this comes across. If the previous stuff would just make her look asinine, this just flat out makes her a criminal. This is the kind of person the developer of the Shinigami Eyes extension is willing to associate with. And... that is kinda terrible? There are other people who have done awful things apparently associated with the issue tracker (which I won't delve into here), but Laurelai is just such an easy red flag for this extension that I genuinely feel dumb for needing to point it out.5

Safety concerns

Unfortunately, things don't stop there. You see, Shinigami Eyes is not just in the business of tagging transphobes with wild, unrestrained abandon with a filter that has very deliberate colission rates build in. No it also insists on creating a bloom filter for "trans allies", or in other words "people who explicitly support transgender causes"6. This filter has been repeatedly noted and warned against by people to actually put transgender people at risk. Notably, the very first issue on the tracker 7 is this:

This extension is being used to out trans people, and is a huge security risk. As it currently stands, this is doing far more harm than any good it could possibly do. Please take it down.

Similarly, the 20th issue 8 contains a far more specific case:

I would like an option to opt-out of being marked "trans friendly" by your extension.

So far, you've refused to add any protections for trans users. As a trans person who is not out, and lives in an area that is very trans-antagonistic, I would like to opt all of my online accounts out of your extension.

If you really do stand for trans people, at least let me opt out.

I have installed the extension and confirmed that I am marked "trans friendly" by your extension. This could potentially get me killed or fired. Please give me an opt-out.

EDIT: For those who say this only affects people with public posts; none of my facebook posts are public.

This still would hold true; the way Shinigami Eyes detects stuff is not particularly dependent on post "publicity"; it just runs every user account it can find on the sites it works on against the aforementioned bloom filter and colors the text of their posts depending on the response it gives out.

As far as official responses go; the only answer given is one from the first issue which is:

The guidelines clearly state that being trans is not enough to be marked as friendly, nor is it required. Many cisgender groups and individuals are marked green as well.

New submissions are periodically synced offline and then removed from the server.

This is... exceptionally lackluster. It doesn't address the very specific issues that flagging certain people as trans-friendly could cause, it doesn't even remotely offer any way to remove these people/adjust the bloom filter that causes this issue to not have the issue anymore (which is also technically unfeasible because you're not supposed to use a bloom filter for this).

In conclusion

Do we need a way to better block TERFs? Yeah. It's important to figure out who transphobes are so you can pre-emptively choose to not interact with them. However Shinigami Eyes as an extension is extremely dangerous. It's so dangerous that I've personally warned people against using it whenever the extension got traction. It has at least one extremely predatory person running amok on it's issue tracker, it harmfully outs trans people to their peers and it's filter matching is so horrible it's very easy to attribute it to malice (which I will do because attributing it to stupidity flat out doesn't make sense given the fact that a bloom filter is more difficult to implement than just searching through a list).

Don't use Shinigami Eyes.

  1. cited: Nintendo
  2. Personally I don't recommend the use of Masstagger anymore; the owner is notoriously bad at adding new subreddits, leaving the tool inaccurate at best. Hence it goes unlinked
  3. I will also take the time to inform you that, according to Shinigami Eyes, the USNS Black Powder submarine on wikipedia is trans friendly and that the old name for the RMS Empress of France submarine is transphobic. Source is
  4. A precursor to subreddits such as AgainstHateSubreddits, attempting to both document and make fun of, bigots on Reddit.
  5. Although in fair defense to those unaware; Laurelai also was a moderator for over a year on the discord of Peter Coffin, who decided it'd be an amazing solution to defend Laurelai from... her rape victims. Yeah, uh Coffin sucks too. Species finds species I guess. But to be fair, part of this stuff was a while ago, so I expect people to forget this stuff.
  6. Merely being transgender doesn't make you valid for the list. My guess is that this was to avoid a Blaire White scenario.
  7. Archive link
  8. Archive link