Thought on Coinhive

Creative Applications not long ago announced that they are incorporating Coinhive Javascript Monero miner on their website for non-members visitors to the site. All visitors who are not paid subscribers (members) to the site instead of being served ads, will be running on separate threads a mining algorithm to generate the cryptocurrency Monero.

Several sites have implemented Coinhive recently (or hijacked by hackers) and some are pretty upfront about it like Creative Applications while some others just did it without saying much else like The Pirate Bay, and you’ll only noticed if you look for it in Activity Monitor/Task Manager or if your computer’s fan started going crazy and begin to confit your legs. For some reason, I feel slightly ripped off.

Coinhive is only the natural progression of adblockers, I have written about adblockers before and at the end of that article I alluded to something I’m working on but I’ve never publicly announced it because it is never finished. My opinion on ads and adblockers have not changed, I still think ads are not neutral and we should not pretend it simply supports the content creators without altering the content they produce. However adblockers simply made sure that content creators have to search for new ways to generate revenue and there’s no guarantee that they find one nor one that is better than ads.

To that end, I wanted to create a new kind of adblocker that generates revenue with distributed computing, now you may start to see why I feel slightly ripped off. I’m not claiming I came up with the idea first (I have no way of knowing), nor do I claim Coinhive got that idea from me (indeed I do not want anything to do with Coinhive), like art: you can say “I couldn’t have done that”, but you didn’t. That’s not my point, my point is that I do not agree with what Coinhive and the sites that uses Coinhive are doing and I don’t think it is a sustainable situation.

As part of my effort to look into a new adblocker, I have created a site that spins up a web worker and calculate new digits of π.

Distributed Pi, source code available

I don’t want people to embed this algorithm into their website, I want to create an alternate version of adblocker browser addon that runs this algorithm in addition to blocking ads. The algorithm can be submitted by the scientific community that wanted distributed computing power and have some funds to spare, the funds then get distributed amongst sites that signup and honor the plugin and not serve ads to users running the plugin to do scientific calculations. I never finished the plugin part and the project since got shelved effectively. To note a few difference with Coinhive:

  1. Not embedding any code in the website served but using a browser plugin
  2. Require user’s consent to run by the way of installing the plugin and running the plugin
  3. Not mining cryptocurrency but calculations submitted by the scientific community

I did once consider mining cryptocurrency with my system but I deemeed it too unethical and too wasteful. When you can pool together potentially the largest computing power pool ever existed, I cannot justify wasting it to mine cryptocurrency, it’s just greed at that point and so why not just serve ads? To advocates saying mining cryptocurrency is not a waste, when I get to choose between using my spare computing power to simulate protein folds or calculate some arbitrary algorithm to generate some numbers that may gain/lose 50% of it’s value in the next month and benefits nobody else other than myself (and perhaps your ego), the choice is obvious. There’s no incentive for the user to run mining algorithms when all the revenue goes to the server holder while running scientific calculations benefits mankind as a whole, this lack of balance is what I feel unethical about mining cryptocurrency distributedly.

To focus on Coinhive itself, other than the waste and unethical argument, there’s one more argument I have against it which is it is impratical as a solution for a site to generate revenue. It is not that you need a significant amount of users to mine effectively nor is it based on the whims of the value of the cryptocurrency or anything like that. A demonstration can better show what the problem is:

With just Creative Applications running (CPU usage is the left most number)
Throwing a couple The Pirate Bay in there

Yes, if more sites uses Coinhive, each site running it will get less and less computing power to mine cryptocurrency. My quad core computer can only handle up to 400% CPU usage and I have about 20 tabs open right now on Safari, with each site typically running two threads that wants 100% CPU each, there simply isn’t going to be enough CPU power to go around for all the sites and for me to use my computer (Surprise! I need to use my computer!). Worse still, that doesn’t mean Coinhive is making less money, no they make the constant amount of money per computing power while the sites running Coinhive get less and less revenue as more and more sites sign up, if you haven’t figure it out, that’s a model that is desgined to fail.

Will Coinhive change it’s design? Maybe, depends on what they can do instead which I can’t think of much they can do really. Will Coinhive just fail entirely? I say probably not entirely, it probably will still exist but its effectiveness will gradually taper off as blockers become more popular and maybe browsers vendors decide to kill them off somehow.

Overall, it is a bit frustrating that we have come to the point where we have extra computing power and the first thing people think of is to mine cryptocurrency: websites mine cryptocurrency, botnets mine cryptocurrency, GPU mine cryptocurrency, your grandma mine cryptocurrency (wait, that’s not right……or is it?). It is like we are at a point where it is just default blockchain, we default to blockchain, for anything and everything.

Will I ever finish my idea? Maybe, most probably not. It feels tainted now and I blame Satoshi.

A couple things that inspire my original idea that I didn’t mentioned in this article:
NonAd Block (
Great Internet Mersenne Prime Search (