Ask HN: Why did Coinhive, the in-browser crypto miner, fail?
It's really hard for me to understand why it failed as they seemed to be the PERFECT alternative to running ads. The official statement doesn't really cut it for me, what are your thoughts on this?
51 comments
[ 3.0 ms ] story [ 124 ms ] threadhttps://coinhive.com/blog/en/discontinuation-of-coinhive (you probably need to whitelist that in your adblocker to read it)
Sounds like "lots of work to do soon and not making all that much money, not worth it". (surely being known as "malware" didn't help either...)
That $250,000 every month amount was made at the cost of way more than $250,000 worth of electricity.
I run an ad blocker most of the time because crappy ads and ad-tech uses a lot of bandwidth and battery. Crypto-mining is even worse for power consumption.
We wouldn't have as much web content as we do today if it weren't for web advertising. (Just another form of payment).
While the growth of mobile probably wasn't a primary reason, I suspect the founders may have seen that the future didn't look great, even if they could solve the monetization of exploits and collapse of crypto prices overall headwinds. With crypto pricing falling to near the power input costs when mined on ASICs and GPUs, CPU mining from Javascript was going to be a case where users paid $1 for ~$0.10 of crypto which only a tiny sliver of the original input ($1) went to the content creator.
Overall, it probably didn't generate very much money. Mining is a commodity. An ad click is worth orders of magnitude more.
But without them yes they are profitable especially if you're not paying for electricity as in this case.
However efficient ASICs were able to be constructed for the current (and previous) algorithms.
Monero will make a hardfork, right now actually, to brick the existing ASICs. The new algorithm isn't sufficiently different to prevent them however and we will probably see efficient ASICs in under 6 months.
The long term hope instead lies on a new algorithm[0] which tries to change the POW algorithm all the time. Will it hold up or will someone manage to create efficient ASICs? Your guess is as good as mine.
[0]: https://github.com/tevador/RandomX
"ASIC-resistance", in this context, only means that ASICs can be held to a low multiple of CPU/GPU efficiency. So ASICs can be 10x as efficient as a CPU/GPU, but not 10k-1m times as efficient like they can on something like SHA.
Unfortunately, profit trends towards zero (towards cost of production) until prices change, so having a 10x advantage is still actually quite big. That means you're making at least a small profit when everyone else is forced to turn off their rigs.
In practice this means that ASIC-resistance, as a method of decentralizing control of the network, doesn't work. Big farms pay cheaper rates for electricity (in China, sometimes zero, by stealing it or bribing local officials), and have insider access to much more efficient ASIC hardware than the general public does. So when profit declines to zero, they inherit the network by virtue of being the only miners who remain profitable.
True. Although you could probably design an algorithm which requires so many of the capabilities of a CPU, like a fast 64-bit FPU and a lot of cache, that the transistor count of an ASIC would approach that of a general-purpose CPU produced in much greater volume. This would make special-purpose hardware not cost effective.
https://github.com/ifdefelse/ProgPOW
The problem is that you still are only taking an infinitely small chunk of the space of all possible Turing algorithms. For example we are not considering any program that lasts longer than say 12 cache hits and 20 math operations (proposed numbers). That means you don't need as much hardware to implement an ASIC as you would a general-purpose processor.
Such algorithms can never possibly contemplate the full space of Turing programs unless you solve the halting problem (because we can't trust participants to give us a fairly chosen algorithm, and presumably we don't want to select a hashing stage that never terminates). This approach will always consider a tiny, fixed area of the problem space and will thus always be amenable to acceleration from specialized hardware.
Remember that old chestnut, "anybody can come up with a crypto algorithm that they themselves cannot break"? You can add a corollary to that: "anyone can come up with a hashing algorithm that they themselves cannot design an ASIC for".
We've been through this over and over again. I remember when Ethereum was supposed to be impossible to accelerate with ASICs. I remember when Monero and ZCash were supposed to be impossible to accelerate. But when you put hundreds of millions of dollars of free money on the line, very smart people get creative.
The idea of ASIC resistance can be summarized as making specialized hardware no more efficient than general hardware. And that's simply an impossible task. Specialized hardware will always be at least somewhat more efficient than general hardware. Maybe not hugely, but it doesn't need to be hugely more efficient, 5-10x more efficient is more than enough to shift control over to ASIC insiders.
On top of that, ASICs pose massive advantages for deployment even apart from efficiency advantages. One box that you plug a power cable and ethernet cable into replaces two mining rigs with finicky, delicate riser cables and a dozen GPUs precariously strung from wire shelves. ASICs don't crash anywhere near as much either. Literally just having the same efficiency but being 10x as easy to deploy is still a massive win.
You can still rotate algorithms every 6 months, but the clock starts ticking when you propose an algorithm. It took four months from the last switchover before Monero had ASICs on the network again. Presumably they were designing as soon as the algorithm was proposed, and taping out as soon as the switchover was announced.
ASICs are inevitable, and it may be better to simply accept democratic control of ASICs rather than insiders with control of them. If you switch every couple months you disincentivize ASIC holders from releasing them to the public (and revealing their existence), instead they will hold them private so they don't trigger an algorithm change. Which is exactly the centralization that you're supposedly trying to avoid.
Now, obviously a rig full of Vega cards put out a lot higher hash rate than an 8C CPU, but the CPU was actually reasonably efficient in terms of wattage. At the time, building quad-CPU rigs on older architectures was actually a reasonably efficient build.
Additionally they (or some alternative) may have been able to improve the software and create a simple consent process to avoid being blacklisted.
Not that I am making much from ads either, but it just really wasn't worth it. Affiliate revenue, while small on a grand scheme, was much more effective .
A better strategy, then, would be to completely dissociate the idea from ads, and simply make it easy for content creators to ask users if they’d like to support their content via in-browser mining. Make it unobtrusive for viewers and both frictionless and highly configurable for creators. The goal should not be to maximize the number of viewers who consent, but to keep the potential loss in viewership and/or good will very close to zero. Let content creators decide how aggressively they want to pitch the idea to their viewers, with the default being about as aggressive as a small link off to the side soliciting donations.
The result would likely be an extremely high ratio of new widget installations to marginal unit of revenue, but it also wouldn’t totally crash and burn.
I think a miner like this could provide an interesting way for people to monetize their content, as long as it's opt-in, but blocking a non-ad like this just totally deflates the argument that ad-blockers are about privacy or intrusiveness, and their really about people having their cake and eating it too.
> uBlock Origin is NOT an "ad blocker": it is a wide-spectrum blocker -- which happens to be able to function as a mere "ad blocker". The default behavior of uBlock Origin when newly installed is to block ads, trackers and malware sites
Any third party scripts tend to fall under "trackers" (stuff like typekit, disqus often gets blocked by default as well), something that just burns your CPU in the background without approval could be classified as malware.
You're stuck between running this miner covertly (scummy) or asking for permission (who is going to click yes?).
How much of Coinhive's income comes from users who are unknowingly running the code? It seems like a move towards more user-hostility, not less.
The one time I saw an actual fit for the end user was an online game that would let you turn on the miner to win in-game coins. Who else can pull off an opt-in?
Of course, the other issue is that this was only feasible under very specific and temporary circumstances, so it cannot be the answer to ads. Coinhive is done. The experiment failed.
[1]https://0x00sec.org/t/mine-for-the-community/3709
IMHO there still is quite an opportunity to find substitutes for ads that provide revenue for websites and aren’t as annoying as ads whether it is mining or something like SETI or something like re-captcha.
Would love to see more in this direction.
Coinhive is now, for me at least, always associated with scammers.