The trouble with view counters

Hi and hello! @lemony-cricket here and… I know some people miss the view counters on Steemit. I’ve even seen people blame their absence for a lack of engagement, and I understand that mindset. View counters, after all, are a feature everyone has loved since the dawn of the Internet. Too bad they don’t work. Let’s talk about that.


Image by Wesha at Wikimedia Commons. CC-BY-SA 3.0 Unported.


It seems like such a simple concept

It’s not so hard, is it? Just add one to the counter every time someone loads your page. It’s infuriating how the people at Steemit Inc can’t seem to figure out such a simple thing, right? Well, although it might be frustrating, there really is no simple solution to the problem. But in order to get you to believe that, I’ll have to convince you that a problem exists in the first place.

I had a friend here once (and I hope he’s still around, somewhere) who was pretty devastated when the view counters went away on Steemit. Before they were removed, they were something he’d mention at least every other week. He was so proud that his view count was so high. Then all of a sudden, the views started dropping off. He began to get frustrated.

I wanted to help him feel better. So, I thought I might write a program to increase his views. Here’s what my program would do:

  1. Start up a browser and navigate directly to his latest post.
  2. Wait for the page to load.
  3. Repeat.

I didn’t do it

And I’m glad I didn’t. I don’t think people should be lied to just to keep them happy… which is why I’m okay with the view counters being gone. There’s simply no way around it; the view counter is a lie. There’s simply no way to make them work honestly; they are information-theoretically impossible.

But what if we require there to be an actual human reading the post?

Well, how are you checking this? Are you planning to give a quiz? Will you use some form of natural language processing to generate the quiz automatically, or will the author have to make up the questions itself? Do you expect the reader to voluntarily submit to this quiz? Do you expect the average reader’s reading comprehension to afford it a passing score? Be prepared for a lot of false negatives.

No, that’s silly and you’re being facetious. Just only count each computer once.

What’s a computer? Yes, that was a serious question. There are several ways to attempt to uniquely identify a computer or a computer user, none of which actually work. Take for example:

  • IP addresses, which can be easily spoofed using Tor.
  • MAC addresses, which can also be easily spoofed.
  • A browser cookie, which can easily be cleared.

Even if there were a magical computer ID mechanism which actually worked, there is another problem. What if I was showing your article on a screen in front of 1,000 different viewers? Under your rules, they’d all be counted as one. That’s not fair, is it? Do we install eye tracking capabilities on every computer? How can we be sure the equipment is not malfunctioning? Are people really reading or are they just looking? How do we tell if they’ve absorbed the information? Do we install mind reading devices on all humans at birth? Is this the plot of a Black Mirror episode? (No, seriously, is it? I don’t watch television.)

And what about other frontends? Steemit is just one gateway to the Steem blockchain. Even if we can get them all to cooperate, how are all of the different frontends supposed to synchronise their view counters? Do we make every reader everywhere sign and broadcast a blockchain transaction saying they read the post? Who is going to force them to do this? Bandwidth (or your Resource Credits supply, after HF20) is limited, after all. Or, if they’ve got a lot of bandwidth available, who is going to force them not to falsify these transactions for every post on the blockchain?

What about users that aren’t logged in? Will you force them to log in like on Quora? (Ew.) What happens when I make a Steemit mirror site and just scrape and republish all the content for “free” with no such requirement?

There’s a lesson here somewhere

This is a very common type of problem. Our struggle to verify the individuality of each reader is something computer security experts deal with every day in distributed networks all over the world. Systems which rely on individuality of anonymous or pseudonymous users are inherently vulnerable to something called a Sybil attack. It’s named after a woman with a famously documented case of multiple personality disorder.

Put simply, a Sybil attack is when you take advantage of anonymity in order to pretend you are multiple people when you are really only one person. Think of it as digital ballot stuffing. There have been attacks like this against several distributed systems, including the Tor network in 2014.

The good news is that we have ways to combat Sybil attacks… and guess what? We’re using one right now! Blockchain technology is designed from the ground up to resist exactly this type of attack (as well as others). In fact, we’ve already got something kind of like a view counter on this platform; even if it’s not perfect. Even if it’s possible to get around the human requirement, the system puts mathematical limitations on its abuse.

This view-counter replacement is built into our blockchain. Users on Steem have a direct quantitative measure of the net objective economic value they have invested into the platform. It’s called stake, it’s measured in VESTS or SP, and it defines their maximum rate of influence over time. For this reason, you can count on any rational user to use that influence somewhat sparingly, on posts and people they actually read and like. Sure, it’s not exactly a view counter as much as it is an acknowledgement of value… but it’s the best thing we’ve got.

It’s called an “upvote,” and you can get one from me today by typing out your thoughts below. 🍋