When we covered the appearance of in-browser cryptocurrency mining two weeks ago, it was confined to a single site; The Pirate Bayq. Now, in just a few weeks, the number of sites deploying this kind of in-browser mining solution has skyrocketed.
— Catalin Cimpanu (@campuscodi) October 14, 2017
Over at LinkedIn, Carl Whalley, CEO of OTAMate (a company that develops over-the-air update software for mobile devices) writes that in-browser coin mining could be a huge win for websites and break the monopoly on site funding that’s honestly very difficult for modern websites to navigate. Google and Facebook earn more than half of all advertising revenue. Sales of dead-tree media have fallen dramatically over the past 20 years, but as of 2011, a print reader was worth 228x more than an online reader in terms of revenue generated per-reader.
There are some very obvious pros to browser mining. If enough people adopted it, it could provide a financial revenue stream that allowed websites to reduce the kinds of advertising that people hate, improving reader retention and time spent on-site. Some readers would likely prefer to contribute some CPU time to a website rather than seeing ads, if only because mining cryptocurrency for a voluntary cause or site gives the reader a feeling of personally contributing, as opposed to seeing ads that most people never click on. There are some sites I’d happily leave open in a tab just to help fund them. So far, so good.
The Looming Problems
Here are the problems I see with this approach, in no particular order:
Cross-Browser Contamination: When I tested The Pirate Bay two weeks ago, I found that opening multiple windows on the site didn’t keep hitting the CPU with heavier workloads. Opening the same site in different browsers, however, did drive CPU usage up. While people are unlikely to visit the same site in four different browsers, it’s clear that the plugins didn’t detect that I was on the site twice. This presents a clear problem for users who might visit multiple sites that use the same plugin in different browsers.
Resource Conflicts: This is another major concern. When 1-2 sites are mining cryptocurrency, you’re not going to have any problem allocating CPU time to them. When every site you visit wants to mine cryptocurrency, there’s a perverse incentive (from the user’s perspective) for each site to steal as much CPU time as possible. After all, if everyone’s mining runs at the lowest CPU priority, the miner that runs one notch higher scoops up the lion’s share of the resources. Of course, one can imagine using scripts and plugins to limit this behavior (there’s already one out for Chrome), but the more complex and difficult the opt-in or opt-out process is, the more difficult it’ll be to persuade users to allow mining at all.
I think Whalley dismisses this too readily, when he says that laptops and phones today have power to spare. First, mobile devices aren’t going to generate much in the way of cryptocurrency profits, and second, they’re going to take a battery life or heat hit from doing so. I don’t care about mining on a laptop when it’s on AC power, but I’m jealous of every watt of battery power when I’m running in that mode.
Currency Valuation: The question of how currency value will be determined is a major issue I haven’t yet seen addressed. Cryptocurrency prices do fluctuate over time, and if the bottom drops out of the currency everyone is mining and converting back into USD, what happens then? Every website turning up mining priority will resolve nothing, beyond driving users away.
Until these concerns are resolved, I don’t see a way for cryptocurrency mining in-browser to take off the way some people hope it will. To be clear, I’d prefer a system in which readers could directly contribute to site funding over the current advertising model, but any such model needs to be handled properly. Right now, there are too many opportunities for abuse and not enough controls. Be careful of your own website visits, and check your CPU usage if your system seems slow with abnormally high CPU usage on certain sites.