It is bad to use a bunch of the user's CPU without any notice. They will probably notice that your site makes their computer slow and never come back again. Also, once they find out you've been using their CPU power/electricity/battery life surreptitiously for private, unshared gain, you will probably have some angry customers.
Additionally, does this automatically hook in to slush's pool or something? Bitcoin mining is practically useless on CPU; even the fastest CPUs out get way, way less than 10mhash. The average length of time to find a block at 9999khash and current difficulty is 1200+ days, so even that estimate is over-optimistic, so this isn't worth anything if your users don't sit on your site for 5 years+, unless it's hooked into a pool or some other contraption to pay on shares instead of blocks.
So yeah, massively massively slower than regular GPU mining. Anyone know of a way to push WebGL into doing hashing functions, and reading the results out?
And you come to a total of 21,600,000 unique visitors per day that you would need to your website in order to hash the equivalent of a $100 GPU.
Or make about $8 per day according to the bitcoin calculator right now from 21 million unique visitors.... totally not worth it.
So, yeah. Significantly crapping on the user experience of 21M people by reducing their battery life, adding heat, adding fan noise, slowing down other actions - all to substitute for one gpu?
It seems like there must be better ways to ruin your high traffic websites reputation if that's what you're looking to do.
And I should add that the prospects of finding any meaningful amount of shares, while much better than finding a block, are still quite low. My GPU can find a couple of shares per minute in a good minute, but it operates at 55.5Mhash, over 10x faster than my CPU (i7-2600K). Consider that most are going to have really slow CPUs and share the processor power with other heavy applications (Flash games), and you might get one share from the best computers in an average 10-20 minute visit if you're lucky. Shares are worth increasingly little and it depends on how you calculate what each share is worth (since btc generation is really totally based on blocks and each pool decides the value / share on its own, etc.), but I really doubt this is a viable replacement for advertisements or any other money-making endeavor for anyone, even the largest websites where people spend lots of time (Facebook, gmail).
That was my first though - it's a nice idea, but came at least one year too late. Just yesterday, I ran miner through the www.bitcoinplus.com website, and on my regular PC machine it generated 0.002 BTC in 24 hours.
I am afraid the bitcoin mining is practically over, and the much more interesting question is - should I really invest my real money to buy some bitcoins? (current rate is about 7 USD). I am curious to learn what other HN-ers think of all this stuff.
Even if he is right and bitcoin shouldn't be considered a "currency", but rather an asset or a scam to enrich the early adopters, I think there is still a question I wrote above, namely, if it is worth to buy bitcoins for money now.
There's quite a bit of misunderstanding in that post, especially with respect to systemic weaknesses. And a lot of unsubstantiated claims and terrifying graphs (like that tweet graph as something desirable for currency inflation - what it also implies is your savings going up in smoke).
I'd love to find an in-depth debate on Bitcoin from an economic standpoint, but this is not it. It's just more of the same half-understood FUD. And it is a horrible idea when half-understood - IMO, it remains to be seen if it's a horrible idea when fully-understood.
BitCoin i svery similar to a gold backed currency. The fact that nearly all (?) currencies moved off the gold standard should tell you something of how economists view the gold standard.
If you are a subscriber to Peter Schiff's views then moving off the gold standard was actually a big mistake. The comparison to the gold standard is actually what makes me think bitcoin has some legs
How is bitcoin like the gold standard? Bitcoin is backed by what? It's more like a purely speculative currency. It's artificially scarce and worth nothing apart from it's perceived value. At least with gold there are many industrial uses for it. You can't do anything with a bitcoin other than trade it.
You have to pay taxes and also settle debts in the official currency. That alone gives it more than mere 'perceived value'. Oh, needing it to buy oil also helps.
Precisely. Holding an official currency gives you the ability to stop the government from putting you in prison for nonpayment of taxes. This is a real tangible value that is a sort of baseline value store for official currencies that does not exist for other currencies.
Power doesn't come from the gun, but from public legitimacy. In the same manner that it would be considered legitimate for someone to defend themselves with a gun.
Governments moved their currencies off the gold standard. Mostly for the self-interest reason of establishing greater control over their currency, often to inflate their way out of debt.
Whether a gold (or Bitcoin) standard is good for the world economy as a whole is irrelevant, since the governments hold the power to implement it (or ban Bitcoin) and will act in their self-interest.
The tweet graph is meant to correlate with desirable growth in money supply, something Bitcoin needs to be liquid. You can have growth in money supply without inflation.
He graphs the number of bitcoins over time, which is basically meaningless. If he were to graph the number of transactions, the number of users, or the total value of all bitcoins, he'd get an exponential curve upwards much like the twitter curve.
He might be an economist, but he doesn't know anything about monetary history:
The economic assumptions underpinning the Bitcoin ecosystem are laughable, and ignore hundreds of years of accumulated understanding of how currencies work with each other.
By "paper money" do you (and the article's author) actually mean "fiat money" (http://en.wikipedia.org/wiki/Fiat_money) dating back 11th century China? It was in use as early as 18th century America.
The only thing about "paper money" that I can think of that is about 100 years old is the beginning of the departure from the gold standard (http://en.wikipedia.org/wiki/Gold_standard).
And of course the older things are the better they are. For example, we all now 1000 year old medical practices are good and effective whereas recently developed ones suck.
... why would it be true for economic practices? Some experimentation is good, without it there would never be any progress at all.
Appeal to authority based on the age of ideas is something you can only get away with in religion, astrology, and it seems, economic 'science'.
Sure, there is a large chance that new ideas might fail but you can't simply argue against them because they go against old ideas.
I am investing $100 right now to hold long-term, with an 80-90% expectation of it being worthless in a few years.
The alternative, of course, is that bitcoin takes off, is not banned by governments, and is useful enough to enough people. If that occurs then I expect pretty high returns.
that's a bit pedantic, ya know... the number only means something to people who know the system even a little bit, and they'll immediately translate to the proper unit because 10 milli-hashes per second makes no sense. Unless you're mining by hand.
It's like ranting that people talk about "10mb" files. Or "100gb" or "100GB" drives. When they're technically "93.1GiB" drives ("gibibyte" [1],[2], or [3]).
Ironically - your example speaks against itself. 100GB Drive is a very precise and agreed upon way of referring to a drive - it means 1x10^11 bytes. 93.1 GiB drive is unusual - we don't typically use powers of 2 when referring to drive length - so if you really mean 93.1 GiB, then it's important you call it out as such, or people (storage admins, driver manufacturers, and operating system developers) will understand you to mean 1X10^11 bytes when you say 100 Gigabytes. Precision has it's place.
I thought this was the common way (gibi that is) to refer to harddrives in the OS, I thought that that was the reason harddrives were 100gb when i bought them but only showed up as 93gb on my computer.
It is. Everyone except the hard drive manufacturers uses GiB for technical reasons. Hard drive manufacturers use GB for marketing (and clarity, but mostly marketing) reasons.
It used to be common to speak of sizes in "hard drive megabytes". Eventually, the disk manufacturers won the pointless semantic battle and that went away.
Regarding angry visitors, I think it is completely fair if you just inform them of what is going on.
In a way, this is the perfect internet model: I offer my content for free but visitors pay me with cpu cycles. It's superior to the ad-model because it pays according to time spent on the page regardless of who the audience is.
It's too bad that it's infeasible because of the very low rate.
I'm watching Bitcoin with a curious eye, but this really nails a pretty novel and interesting aspect of it. That yes, you are paying the site owner for viewing their site, in a way that is (mostly) transparent to you and with billing already captured by your power company.
I haven't actually run it so I don't know just how badly it thrashes my machine, but assuming that can be worked out, this particular idea is the KillerApp(tm) of Bitcoing as I see it.
Actually, now that I'm thinking of it, one giant achilles heal:
If this really takes off and the mass of the internet uses it, then that means the entire mass of the internet can only be monetized at the set rate that Bitcoins are made. Which isn't much money.
But I still think there is something interesting here.. hrmm.
SO the people I deliver the most value to, I extract the most value from. // WIth an added bonus that I recieve more value from the people with more expensive computers (aka the wealthier viewers)
I don't see how the time spent on a page correlates to value for the reader. If I read faster or slower than someone else and spend less or more time on the page, it doesn't change the value provided to me by the article.
I've seen in the last few weeks apparently relevant and polite posts that had been flagged dead[1]. One of these was a post by jashkenas in a CoffeeScrit thread. This one could hardly have been more on topic.
Is there a new moderation policy, or is it a bot with a happy trigger?
I'd be curious to know the answer to this too - I've seen an increase of "one off" seemingly acceptable posts being flagged dead, and browsing their post history it wasn't cases where they were set to auto-dead.
Javascript is way too slow compared to GPU, by at least a factor of 1000 or more. If you have 1M daily unique visitor and you manage to "steal" 10 CPU seconds from each of them, the amount of work would be equivalent to 1e6 * 10 / 1000 = 10000 seconds which is about 2.8 hours of one dedicated GPU-based mining machine.
Actually, regular CPU miners are nearly 1,000 times slower than GPU miners. I wouldn't be surprised if a JavaScript miner was several orders of magnitude slower than that (ie. a million times slower than GPU miners).
What about using gamers' excess GPU to mine Bitcoins in an installable massively-multiplayer game? Is anyone trying this?
I wonder when will the bitcoin mining viruses appear. If done stealthily they could use spare resources and fall back when other GPU/CPU intensive task is launched. Such virus could be quite profitable if it spread widely enough.
And easily detectable by owning a laptop (that burning sensation isn't a UTI) or having fans in your computer (harder to tell if you live near an airport).
Since bitcoin mining is rapidly getting uneconomical on non-specialised hardware, if you control a botnet you probably get more money from the usual botnet activies like spamming or ddosing.
Agreed. I'm amazed at the people drooling over the bitcoins they could make when generating actual dollars seems so much easier, especially once you're assuming such "trivials" as millions of users and pageviews each month.
If you could turn out a bitcoin per day per player, that's massively more than the subscriptions at today's rates. Of course, there's no guarantee that you could do this, and there's no guarantee that today's exchange rates have anything more than blind optimism keeping them afloat, but the idea's not inherently stupid.
In fact, it might be an interesting way for EVE (for instance) to link ISK to real-world value. There's a lot that a MMORPG company could do with a system which encourages people to stay in-game more than they already do...
"If you could turn out a bitcoin per day per player"
Can't be done.
According to this BitCoin calculator[1] you need to generate 245 Mhashes/sec (mega-hashes per second) to generate 1 bitcoin per day today. (Remeber that number will go up as time goes on)
I assume that calculator is for 24/7 calculation (which you won't get with gamers), let's assume they are hardcore and play 6 hours per day, every day. You can't dedicate 100% of your customer's GPU power to bitcoin mining (since they'll need to actually play yoru game), let's say you dedicate 20% of their GPU.
To get 1 bitcoin per day you need hardware that's able to do 245 × 4 × 5 = 4,900 Mhashes/sec.
This thread[2] from the bitcoin forum today has some idea of what current hardware can do. They say "5870's are $250 apiece at the moment and each only get around 350 Mh/s", so in order to get 4,900 Mh/s, you'll need about 14 of them.
i.e. If the players of your MMO have 14 graphics cards (costing ~US$250 each) in their machine, then you can probably generate 1 bitcoin per day per hardcore player. i.e. It's not possible, forget about it.
But then let's reassess this 1 BT/Day thing. That's $8 a day right now, you'd be pretty pissed paying $8/day for most any game.
What if we said 1 BT/month instead? Then all your numbers kind of point to that being pretty feasible no? If I'm reading your calculations right, then a gamer with one GPU would generate 2 BTs per month.
Except when someone on your games forum points out how players can get a 25% increase in graphics quality (By going from 80% GPU power to 100% GPU power) by stopping a certain process (your BitCoin miner). Hardcore games are going to care about that kind of numbers.
I think miners also need to download a lot of data initially (i think 500GB). Mining might require network access which has a negative impact on network latency, and a negative impact on most real time MMOs.
i.e. there are also a whole pile reasons why running a miner would pissed off your paying customers.
Well, a Bitcoin-mining MMO game probably should be free. It would have a larger install-base, and people would be more tolerant of a miner running in the background.
Also, MMO games generally have pretty low graphics requirements (to appeal to the widest possible install-base), so a lot of gamers have excess GPU that could be used for mining.
Agreed, it is far from the future of super computing. But it provides an interesting first iteration for a potential future model of income off of websites.
I know plenty of women who spends hours a day playing casual games, if you embedded a bitcoin miner into a free facebook game you might be able to generate some decent revenue while they play.
Why not embed a Bitcoin miner in a regular, installable MMO game and use their GPU? A single gamer's GPU could be worth more than thousands of casual gamers' browsers. Also, MMO gamers can be just as "dedicated". Bonus points for using Bitcoins as an in-game currency.
Now that is an idea. Make it a casual game, though, so the GPU use of the game is minimal, maximizing the mining GPU cycles. MMO & other often-graphics-heavy gamers tend to be a bit fussy about framerates.
Unfortunately, the people who are going to spend a lot of time playing casual games and the people with chunky GPUs are (in my opinion) not likely to overlap very much.
Good point. Though even cheap modern cards have a decent amount of horsepower - the main cost-cutting is shared memory, which doesn't play much of a role in mining. I can mine close to 1/10th of a coin (on Slush's pool) overnight on my laptop; multiply that by a few thousand, accounting for only gaming time, and it's a not-insignificant source of income without even getting very large. 1 block / 50 coins are worth a few hundred US$ right now, and it's entirely passive on the receiving end.
Dedicated MMO players would probably want to maximise their GPU to, y'know, render the game well. I doubt they are willing to compromise on graphical quality for your bitcoin miners.
Neat! Distributed computing with JS is an awesome tech trick, some friends and I did something similar back during Node Knockout (MapRejuice: https://github.com/ryanmcgrath/maprejuice).
Curious to see what you guys think of the ethical side of it though - do you let this run on mobile, etc? This will almost definitely cause extra battery drain on mobile devices, you think it's fine to have this happen without user consent? ;)
Yeah, you could argue this... and then we could just point out that Jobs & co are right, and Flash has been a battery hog since the dawn of time. This is a reason why the iPhone can be so performant; you're arguing that it's perfectly acceptable to degrade the otherwise shockingly good performance of a mobile device when it can be avoided entirely.
Flash needs to stay out of this argument, as at the end of the day it's still a real ethical question - how much CPU are you realistically allowed to take and continually use from a user visiting your page?
If there is a Bitcoin bubble you can be sure that there will be people doing things like this, regardless of whether it's ethical or not. From the site visitor's point of view they're not getting a cut of the mined coins, so their high CPU usage is purely a waste and annoyance. If widely deployed, this sort of browser based CPU wasting enterprise could bring Bitcoin into disrepute and be an excuse for governments to treat it as a cyber-threat.
banner ads are also, on the whole, a waste and annoyance; so not much of a change there
It is probably fair to say most people don't care all that much provided their user experience is not noticeably impacted, but it looks like this work is failing to deliver in that respect. If they manage to throttle CPU usage effectively then this is at least a semi-feasible alternative to "monetizing" traffic.. I find that quite interesting conceptually, even if it doesn't work in practice at the moment.
I suppose it's a question of degree. If not too much CPU resource is consumed then perhaps it is an acceptable way to monetize web sites - although this would only work for high traffic sites, and would become less lucrative over time. There is a bit of a moral hazard though, in that it would be in the interest of the host to consume as much client CPU resource as possible, without rendering their browsing experience too unpleasant.
It actually starts up a web worker with the exact same file and communicates with itself back and forth, the browser version to the worker version. Not the first time this technique has been used but it's still pretty new.
Cute, but this is hardly worthwhile unless you have a massive number of users, in which case you probably don't want to piss them off by wasting their CPUs.
I'm getting about 13K hashes/sec with this JavaScript miner. For comparison, my GPU gives me 100M hashes/sec, and even my 12 CPU cores give me 10M hashes/sec with the official Bitcoin client.
So you'd need about 1000 concurrent users at all times to match a single machine. EngineYard SHA1 contestants who used this approach had the same problem.
Now, if Native Client was widely deployed, or you could somehow rig up WebGL...
PluraProcessing.com pays site owners to farm out computations to their clients. According to PP, site owners can make about $2.60/month/user. The major catch is that the system only works well when visitors have long visit durations (e.g. web-based video games). I presume PP necessitates long visit-durations because short visits won't yield enough computational resources to make computations economical.
On my computer (netbook running Chrome in Ubuntu), bitp.it clocks at 2.2khash/sec. Using this, I'll give 2000hash/sec/user as a conservative estimate.
If you had 1M daily visits, averaging about 1 minute of interaction (high, but assuming you have long-form content), you'd have 12000Mhash/day, or about 2.77Mhash/sec.
Plugging this in with current rates, this ends up being $0.08/day. For 1M views. This is about 3 orders of magnitude lower than just AdWords.
I don't think the fundamentals are sound here. Advertising spurs commerce, which creates value. This wastes electricity, slows down users' computers, and does no valuable computation.
It seems closer to stealing from your users (with enormous inefficiency) than something that creates any real value.
Amen. You spend, on average, say $1-$10 to acquire a customer, but you lose them in a dramatic, angry, disgusted fashion by trying to steal $0.000001 from them.
As they point out -- you would need a visitor to remain on any given page for a relatively long period of time. Works well for long-form content, but breaks down in shorter chunks.
One thing I'm particularly interested in would be embedding this in a frame similar to stumbleupons web interface and allowing for revenue sharing with the user.
Because you need some way to inject new coins into the system initially. Bitcoin chose to do this by allowing early users to "mine" the currency.
The traditional approach is to have a central bank which does the minting and printing, and then the regular banks can borrow that money. Those banks then lend that money to their customers, possibly creating more virtual currency by fractional reserve banking.
Bitcoin obviously can't do that because it is a decentralized system. The traditional approach also has the disadvantage that all currency in circulation is ultimately borrowed, so there is always more debt than money unless you allow banks to default. That can only work as long as the economy is growing fast enough.
You should know that people have been trying reputation-style digital currencies since at least the early nineties. They require a ton of bootstrapping to get anywhere. That's because you end up with a trading system that's looks like a foreign exchange market with 7 billion different floating currencies. And that's assuming only individuals have them, excluding corporations. You'll notice old cypherpunks have a lot of skepticism toward the fiat-currency arguments against bitcoin. We've been trying to make fiat-currencies work. Keeping the rep net up to date is at least as expensive as mining bitcoins, but with none of the hard-crypto backing to the algorithms. And it's way more opaque. That's ideal if you're trying to soften shocks across a national economy. It's less ideal if you've got more self-serving interests than eyes.
Bitcoin isn't perfect. But we can test it, and if it breaks, we'll see quickly. Broken rep-net economies are like building markets on pyramid schemes: people have an incentive to pretend it still works until the damage is orders of magnitude larger than the economy proper.
And I encourage you to investigate what fractional reserve banking looked like in the days of specie-backed-currency. Banks still made loans and kept less than the entire value of their demand accounts on hand. It'll be weird, but there will be an M2 and an M1 in bitcoin, we aren't technically limited to an M0 money supply.
At heart, it's because honest nodes spending CPU power to notarise transactions in a distributed manner is what maintains the system's integrity. I suggest reading the original bitcoin whitepaper - even if you find the economics a bit dubious, as I do, the tech is certainly interesting.
Not even that much.
On my old laptop I get a little more than 1000 hash. Assuming that average computer is twice as fast as mine we get 2 khash/s. Inserting it in the calculator [1] shows that it would take 6068212 days on average to calculate one block of 50 bitcoins. That is 332.5 years per bitcoin. At current rate it means $0.02 per year.
There is no difference. That's why people who want to retain their sanity disallow Flash. And it's really fucking close that I don't disable all JS too.
Someone could make a URL shortening service that frames sites, including the mining JS. Users could sign up and get a % from the mined coins on links that they share.
As many people are pointing out that GPUs are faster for mining that CPUs, would you be able to make use of a GPU with WebGL (or GPU-accelerated Flash)? I guess the GPU computations don't fall in the spec of WebGL though.
We thought so too! But then we realized that if you're going to download and install a miner, you probably want one that's actually fast. Browser plugins, which are almost all javascript these days, are basically the worst of both worlds from that perspective: slow and require manual installation.
I'd imagine a particularly good screensaver would be profit-sharing, but everyone else would run a free one and get all the mining income. Solo-mining is not really an option any more, and it'd be easy to cheat (detect wins & claim for yourself), so it'd have to be pool-based to be useful.
Fortunately, that's not actually true. If the community agrees when the last valid block is, all the transactions before that will be accepted as trustworthy. The DHT (now moving to freenet) ensures that this transaction history is reliable up to the date of the exploit. Then it's just a social problem of converting into a less flawed system.
But social problems tend not to end up as near the worst case as is often feared. What you're describing is like saying that if we break the crypto underlying git repositories, you can trick the world into thinking you are the original author of linux. Obviously, no one would fall for that. But every git commit after the exploit, or from sources lacking a large consensus, would be of suspect authorship. It's a big problem, but not exactly the way you imply.
I'm one of the developers of bitp.it. We're still working on an opt-out cookie, but for now we encourage you to use adblock. I'll be throwing a howto up later this afternoon.
It is technically the biggest threat against Bitcoin.
The mining process validates the transactions. Transactions are grouped in blocks. The blocks are chained in one big sequence and the miners validate the block chain.
Even if a rogue miner validates a block that steals coins, his fork of the block chain will not be validated by honest miners. As long as the computing power of the honest miners is above the one of an attacker, the block chain is safe.
A dishonest, big enough botnet could overpower the honest miners, fork the block chain and wreak havoc in the system.
--
The biggest threat to bitcoin is not technical, though, it is financial. The bitcoin market cap is currently of ~ $50M. If people with deep pockets and trading experience figure that bitcoin is a threat to their deadline, they can easily manipulate the market and crash it.
What would a scenario of such financial attack look like?
Suppose I had $100M - twice the bitcoin market cap.
What would I be able to do to destroy the bitcoin?
I can think of ways to manipulate bitcoin market with large sums of money, but nothing that would make bitcoin unusable.
You'd buy as many BTC as you can (probably slowly over time), then sell them all at once for a very low price. Momentum traders would help you by also selling their BTC when the price starts dropping.
This is the strategy of cornering the market and according to wikipedia [1] "very few attempts to corner the market have ever succeeded; instead, most of these attempted corners have tended to break themselves spontaneously"
In fact, I think such attack would only create a short term volatility spike but make bitcoin market sturdier in a long term.
In first phase of the attack you would pour in huge amounts of liquidity which would attract more people to bitcoin market.
In the selling phase of the attack you would cause a temporary market panic but only for as long as you sell. And if bitcoin market players managed to find out about what you are doing, they would profit from it.
Finally, when you are out of money, the market would return to its normal course.
No... bitcoin's greater weakness is the vulnerability of its 'bullion'
Simply buy it up and delete the wallet.dat ... bitcoins go poof with no way to recreate (the total number of created will max out with no regard to losses, intentional or otherwise)
If you take the output of the Closure compiler and run it through the compiler again, it will almost always be smaller the second time. However, the second will also likely produce javascript that doesn't work because it renames things that shouldn't have been renamed (and only the original source contains the information necessary to determine what shouldn't be renamed).
The 4.11% reduction you experienced is likely gained at the expense of invalidating the code.
This is a neat-trick, and I ♥ Javascript, so even better.
In terms of ramping this up to actually be a viable revenue source... I guess you'd need a browser plugin which was hard-core about making sure you agreed to usage, and verified to the server that you were actually doing the mining you'd agreed to - and that could tap in to the GPU.
But then, if Bitcoins become worth something meaningful, wouldn't we all be using our GPU most of the time to be generating them anyway? In which case, the website starts asking you for the opportunity cost of using your GPU instead, and you know how much that's worth, and boom, micropayments.
Additionally, does this automatically hook in to slush's pool or something? Bitcoin mining is practically useless on CPU; even the fastest CPUs out get way, way less than 10mhash. The average length of time to find a block at 9999khash and current difficulty is 1200+ days, so even that estimate is over-optimistic, so this isn't worth anything if your users don't sit on your site for 5 years+, unless it's hooked into a pool or some other contraption to pay on shares instead of blocks.