Bitcoin mining as an ad replacement?



All timestamps are based on your local time of:

Posted by: stak
Tags: mozilla
Posted on: 2016-07-17 21:49:17

The web as we know it basically runs on advertising. Which is not really great, for a variety of reasons. But charging people outright for content doesn't work that great either. How about bitcoin mining instead?

Webpages can already run arbitary computation on your computer, so instead of funding themselves through ads, they could instead include a script that does some mining client-side and submits the results back to their server. Instead of paying with dollars and cents you're effectively paying with electricity and compute cycles. Seems a lot more palatable to me. What do you think?

Posted by Robert O'Callahan at 2016-07-18 00:39:31
Isn't it totally impractical to mine Bitcoin with non-dedicated-hardware these days?
[ Reply to this ]
Posted by stak at 2016-07-18 07:41:34
Impractical in what sense? I'm sure it's impractical if you're doing it for your own benefit (i.e. the cost of electricity you incur will outweigh the bitcoins you mine) but if you're getting effectively free CPU cycles from your website visitors, there's no cost to you and so I don't see how it would be impractical. It may be that the resulting mined bitcoin is insufficient to pay for your website operating costs, that I'm not sure about. But perhaps an altcoin designed specifically for this purpose might work better?

I found a blog post where somebody tried this and said that because of how bitcoin mining works most visitors will give you nothing but there will be the occasional big payout. I wonder if an altcoin could be devised that smooths out that distribution somewhat, so that even visitors on low-powered devices visiting for a short while will produce some value to you.
[ Reply to this ]
Posted by Francis Herne at 2016-07-18 03:21:04
Also, most people now browse the web on portable, devices. Mining scripts would be a disaster for battery life and be blocked even more routinely than standard ads.
[ Reply to this ]
Posted by stak at 2016-07-18 07:44:03
This is a matter of opinion, but I disagree. I think mining scripts could be devised to be "nice" in the sense that they don't hog your CPU 100%, or that they stop after a sufficient amount of mining has been done. I think ads are much more user-visible and so would tend to be blocked a lot more mining scripts - it's harder for the average user to pin down battery life to something specific like a mining script.
[ Reply to this ]
Posted by Gervase Markham at 2016-07-18 03:55:50
And, to add to the above two points, I suspect the orders of magnitude are wrong. How long does the average person view a web page for? Even if you maxed their CPU during that time, how much compute power would you have? Divide that into the amount needed to find a new bitcoin, and I expect you'd find the value of the compute power was orders of magnitude less than the value of the advertising.
[ Reply to this ]
Posted by stak at 2016-07-18 07:46:58
That's quite possible, yes. See my above reply to roc - perhaps an altcoin devised specifically for this purpose with a lower CPU requirement per successful mine would work better? I don't know if such a thing is doable, but it doesn't seem impossible.
[ Reply to this ]
Posted by squib at 2016-07-18 12:59:23
An altcoin with a lower CPU requirement would result in one of two things:

1) (More likely) Coins that are worthless because no one is using them for anything, or

2) (Less likely) Coins that have value and which are immediately taken over by large Bitcoin mining blocs. The end result would be either a flood of coins that crash the market, or difficulty adjustments rendering website viewers' contributions nil (which is what happened to Bitcoin).

All this ignores the inherent issues with Bitcoin, such as how the lack of FDIC-insured banks means that if (read: when) your money is stolen, you're out of luck. It's also no different from ads in that you're unilaterally deciding to use your users' resources (consumer data for ads, CPU for Bitcoin) to make money. Like ads, Bitcoin mining scripts will be targeted by ad blockers if they were ever deployed.

As someone who pays for multiple sites/services online, I don't think charging for content is out of the question. The real problem is that most stuff online isn't worth charging for. However, unlike many others, I'd be perfectly happy to see that content disappear.

Overall, the "ads for free users, no ads for paid subscribers" model seems like a good compromise, especially if paid subscribers get some exclusive content as well.
[ Reply to this ]
Posted by Stephan Sokolow at 2016-07-18 04:35:17
...and Firefox is already such a hog that I go out of my way to pare it down with extension like NoScript and Suspend Tab and it's STILL a hog. (Firefox, Chrome, and Thunderbird are each at least an order of magnitude heavier than any other application on my desktop)

I'm assuming my extension loadout contributes to Firefox being so much heavier than Thunderbird, but removing them is not feasible since I agree with Jeff Atwood that Mozilla has abdicated their responsibility to provide a usable browser out of the box.

https://blog.codinghorror.com/the-dark-side-of-extensions/

(When I need an extension just to match the tab-wheel scrolling behaviour of every other browser and every native application on my desktop, any conclusion sites like AreWeSlimYet may draw is null and void due to measurements being taken under artificial conditions.)
[ Reply to this ]
Posted by stak at 2016-07-18 07:48:03
If all you came here to do was to post a rant, please do it elsewhere. While I'm glad you were able to get that off your chest, it's not particularly relevant to the discussion.
[ Reply to this ]
Posted by Stephan Sokolow at 2016-07-18 08:58:02
While I admit I focused too heavily on my anecdote and the resulting Firefox-specific tangent, I think the underlying point is perfectly relevant to the discussion.

Let me try again:

1. One of the recurring themes in the comments is CPU load (ie. Would it be unreasonably high from the user's perspective? Would it be insufficient to be worthwhile for the webmaster? etc.)

2. Browsers (and things which center around browser engines) are already the heaviest thing on most systems, aside from gaming and video playback.

3. There is already a non-trivial segment of the population who either use NoScript themselves or install it (or equivalent tools) on less skilled people's machines, specifically for the purpose of making the browser run noticeably faster.

4. Because you propose implementing bitcoin mining via JavaScript, this would get blocked by NoScript, uMatrix, and the like.

5. We have already seen how people react to sites which attempt to make content conditional on allowing ads. There are a variety of reasons sites don't do that. (Among others, fragility and SEO.)

6. BitCoin mining without permission has already shown up as something malware-based botnets have been doing and non-technical users who just remember "bitcoin mining = malware" from earlier articles could easily get all up in arms over this, resulting in a soured reputation that's hard to recover from.

In short, I think the idea is impractical and could result in either bad PR (if the users recognize what your site is doing) or users ho are frustrated without a clear culprit (for mobile devices when they don't know the cause), among other things. Ergo, I don't think it's worth the effort and risk.
[ Reply to this ]
Posted by stak at 2016-07-18 11:02:26
That's a fair argument.

I think some (maybe not all) of your points could be dealt with by web standards around mining as a formal payment method for the web. For example, the browser could expose specific APIs to do mining, making it non-blockable by add-ons, stuff along those lines. There are definitely tradeoffs that go with that though.

Also if this were to actually happen, it would likely not be based on Bitcoin specifically, but some altcoin (WebCoin maybe?) and the different branding could distinguish it from malware.
[ Reply to this ]
Posted by Stephan Sokolow at 2016-07-18 11:32:52
I see two problems with that:

1. Getting Market Share: It'd take a fair bit of concerted effort to get it universally into browsers and, given that this would compete with ads, which is how Google makes its money, I'd expect it to go the way of the aborted effort to provide a standardized, in-chrome authentication manager with a system of HTML meta tags to easily upgrade existing HTTP POST-based login systems to integrate it. (That plan initially had discussions between the Firefox and Chrome teams but eventually devolved into Mozilla Persona, which never excited me.)

2. Ensuring Non-Blockability: Internet Explorer is the only big-name browser these days which is closed-source, there are plenty of forks of Chrome and Firefox kicking around, and Mozilla is already getting enough flak just because people think that the combination of mandatory extension signing and the WebExtensions API is an attempt to produce a crippled, walled-garden extension ecosystem like Chrome's. Even with Chrome, there's a thriving ecosystem of YouTube downloaders where the installation instructions walk you through relaxing Chrome's "installed from the app store" requirement. Changing from Firefox's "Addons can do anything the user wants as long as they get informed consent" stance in such a clear way would touch off a firestorm.

(Anecdote time: I switched to Developer Edition and added a line to my user.js to ensure signing enforcement would stay disabled well before the announcement of WebExtensions made me willing to consider writing Firefox extensions to be worth the effort. Also, the only reason I'm using the official Mozilla build at the moment is because some genius didn't test The Ubuntu PPA build before pushing an update.)

As for your AltCoin idea, I see an issue with it: Sustainability.

It's sort of an integral part of the cryptocurrency idea that coins become harder to mine over time. (From what I remember, mining BitCoin is the process of brute-force searching for numbers which satisfy the constraints to be valid coins) That means that you also have to convince implementers that the effort to implement something like this isn't ruled out by the diminishing returns.

That aside, there IS actually already a solution of sorts for the unpredictability: mining pools. (When a coin is found, it's divided up based on who contributed how much effort to find it.)
[ Reply to this ]
Posted by bjacob at 2016-07-18 08:48:43
I think there are 2 basic hurdles before this would become practical:

Economic hurdle: it doesn't seem like crypto currencies like Bitcoin have reached the level of maturity that would allow them to be so widely relied on. It's not even proven yet that one can make a true currency out of pure crypto/information, maybe it really is required to have a 'central bank'-like entity to back it.

Physical hurdle: It can't happen in the present situation where client-side compute power is very scarce and its usage is at odds with client-side thermal and charge constraints; but I could see it happening in a future where clients would have "compute" accounts with cloud providers. Since it looks like client-side CPUs and especially mobile CPUs have stopped getting faster, one could see that happening. Shifting the compute to the cloud would also have the advantage of dissociating compute time from page-visit time.
[ Reply to this ]
Posted by stak at 2016-07-18 17:06:24
The economic hurdle you point out is an interesting one. This is going off on a tangent now, but I had some thoughts related to that (and related to what Steve said below).

Consider as a thought experiment a cryptocurrency where the creator of the currency "fixed" the exchange rate so that 1 coin is always >= 1 US dollar. They do this by backing the currency themselves at the rate of 1 coin = 1 US dollar, and so set a floor on the price of the coin. Assuming nobody else is offering a higher price for the coin, they are effectively funding the entire currency out of their own money. i.e. if there are 1000 coins in circulation, they are putting US $1000 of their own money and effectively distributing it to anybody who is mining the coins. What do they get in return? Nothing, except any indirect benefits they might accrue from keeping the currency afloat.

My understanding is that a central bank does something that is analogous, but with "real" currencies. It does so solely to have a functioning currency, which facilitates trade and generally allows modern society to work.

Now if we remove this price floor, then the only thing keeping the value of the coin up is pure supply and demand. And the demand can collapse at a moment's notice if people lose their faith that the coins are worth anything. (Much like a run on a bank). So based on this line of thinking I'm not convinced they can maintain their value without a "central bank" entity, at least as long as the act of mining it produces no intrinsic value.
[ Reply to this ]
Posted by bjacob at 2016-07-19 10:06:02
Certainly backing crypto-coins with hard coins is one way to transport the backed-by-actual-wealth aspect of hard currency, to the crypto-currency.

I wonder though what the exchange rate would look like in practice. Your scheme guarantees that it is >= 1. If it converges to a constant, then it doesn't matter much whether that constant is 1 or some value greater than 1. So from elementary real calculus we see that there are 3 possible cases: the exchange rate (1) converges, or (2) is unbounded, or (3) oscillates within finite bounds.

Case (1): If it converges, then the crypto-currency is asymptotically just an 'electronic wallet' around real currency --- so at this point we're just reinventing PayPal. That's economically sound, but not interesting. That, however, might be exactly what you want in your wider advertisement-replacing scheme. Why the need for a crypto-currency in the first place? A 'wallet' seems more like exactly what you want? (See discussion in (3) below).

Case (2): If it is unbounded, then we effectively have a deflationist currency, similar to Bitcoin, with the same caveats: people are going to speculate wildly in its unbounded value. That's economically 'interesting', but not very sound.

Case (3): So the only remaining possibility, is bounded oscillations. That would be just interesting enough to not just be another 'wallet', without the crazy speculative aspects of Bitcoin. I guess that allowing the exchange rate to fluctuate could be an interesting degree of freedom to have to let your economic construction self-adjust to market realities, while the boundedness would make it boring enough to avoid attracting speculation. Might be interesting!
[ Reply to this ]
Posted by Steve Fink at 2016-07-18 14:33:24
It's an awful idea with that's shooting for a bad outcome. And yet, if it were practical it would be better than where we are now with ads. :-(

Bitcoins are not intrinsically useful, so you'd be inconveniencing users (making them pay in time and electricity) and producing nothing of value as an output. That is fine from the web sites' point of view, since they're getting paid. But from the good-to-humanity perspective, it is in the same general category as ads. (That's qualitative; quantitatively, it's way better because ads are a much greater inconvenience. Unless you'd need to run the mining for 1 hour per minute spent on the site or something, in order to make it worth your while.)

Then there are the external costs. The energy usage is going to produce a lot of carbon dioxide, for example. (Again, ads do this too, so it's dependent on how much processing would be required.)

Then there's the question of whether you want people to "pay" at a progressive or flat rate. Ads are sort of progressive -- people with no money see the ads, and produce zero revenue for the advertisers. Wealthy people see the ads, and produce enough revenue to keep the whole system afloat. On the other hand, ads slow down low-spec computers far more than high-spec computers, so in that sense poorer people pay more of their time and richer people pay more of their money.

Bitcoins could magnify the differences in machine speed, or you could do it time-based and erase the difference entirely.

Machine speed is, on the other hand, not a terribly good proxy for the wealth of the user. (And wealthy users can easily present themselves as lower-spec devices -- it'd be easy to do with cgroups on linux -- but that's no different from ad blockers.)

If only we had a way to make the mining do useful work, then I'd be more enthusiastic. (Apparently, CureCoin is an attempt at this? It sounds a little fishy to me, but then, I don't understand this blockchain stuff in the first place.)
[ Reply to this ]
Posted by stak at 2016-07-18 17:21:11
I agree with your point about the act of mining bitcoins intrinsically producing nothing of value and so just wasting time and electricity. I was thinking about that after I posted the original blog post as well, and did consider if we replaced "bitcoin mining" with something like "SETI@Home" or other distributed computing effort. In that case though the people who derive value from the distributed computing effort (e.g. the people who run SETI) would have to provide the funds to make the system work, and those funds would be funneled to the website operators. It's effectively cutting out the "cryptocurrency" middleman, and with it removing all the wasted work that goes into mining coins.

CureCoin (which I hadn't heard about before) seems like it goes halfway there, except instead of the Folding@Home people providing the funds to keep the system afloat, the system generates these CureCoins which in theory have some value, but probably do not in practice.

Another option is to tighten the loop even more, and have it so that the compute work the site visitors do directly contributes to the maintenance of the site itself, thereby lowering the cost of operations for the website owner. This is provided by something like IPFS, so maybe that's the right direction to be heading in. (There's an interesting talk which touches on this on AirMo).
[ Reply to this ]
Posted by kJas at 2016-07-21 04:32:34
I think this is interesting idea, although I don't have any idea about it's feasibility. So I'll just throw some ideas:

- Standard API to native miner.

- Probably needs a new altcoin designed for this purpose to allow more stable generation of coins and, somehow, keep mining distributed (as opposed to mining farms)

- ASIC chips to take care of mining will probably follow because consumers want battery life, but this doesn't matter (I think) if the API is like: "do <standard> amount of mining and go away". ASIC would just keep the battery life in check and the browser responsive.

- This kind of standard API could probably be extended to allow users to get profit of their own content?


Now obviously this is a long task that doesn't happen overnight. But it would take time for any new cryptocurrency to be valuable so better just do it properly. And it needs to be standardized for the very same reason.
[ Reply to this ]

[ Add a new comment ]

 
 
(c) Kartikaya Gupta, 2004-2018. User comments owned by their respective posters. All rights reserved.
You are accessing this website via IPv4. Consider upgrading to IPv6!