Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: krepta3000 on February 23, 2011, 07:12:09 AM



Title: What is it calculating/workng on?!
Post by: krepta3000 on February 23, 2011, 07:12:09 AM
I've tried and tried to answer a friend of mine, I guess I'm just not grasping this well enough myself to really explain it well enough.  Could someone please give a really precise answer as to exactly what the Bitcoin app is calculating or working on?  Is there any reason to think blocks of data are being worked on for companies or governments, like SETI@Home?

The forum where I'm discussing Bitcoins is Imaginative Worlds.  Here is the thread, so you can see my flailing attempts to explain.

http://imaginativeworlds.com/forum/showthread.php?20007-The-Truth-About-Money-Silver-and-Gold&p=362904&highlight=bitcoin#post362904

If you can come up with a really great answer, please post both here and on IW.  If you only post here, I guess I'll cross post and link to the thread.

Thanks.


Title: Re: What is it calculating/workng on?!
Post by: FreeMoney on February 23, 2011, 07:19:12 AM
It's taking a block of data that contains a transaction that pays you new coins and possibly other recent transactions and hashing that plus an incrementing number repeatedly until the output is below a certain target value.

It sounds pointless and wasteful to some people at first, but this is what allows us to share one unambiguous record of which addresses contain coins without having to trust or rely on a central party. It's pretty much genius.


Title: Re: What is it calculating/workng on?!
Post by: krepta3000 on February 23, 2011, 07:47:18 AM
Thanks. :)  I cross posted and linked to this thread.  I don't know if that will convince her of exactly what the bitcoin app is supposedly working on when it is set to Generate Bitcoins.  I don't have mine set to do that.  It totally chews up the system resources, the stupid Windows XP OS does not like it, or something.  CPU usage shoots up to 100% and stays there, memory fills up, the hard drive goes crazy from trying to handle swapping, and every single thing crawls to a near halt!  Plus, it is apparently far too slow at doing any work for me to Ever actually solve and create a block, and earn bitcoins.

So, I'm running a screensaver and joined a Mining Pool.  The screen saver, I've noticed after looking at the logs, usually only makes the CPU shoot up to about 90%, the hard drive doesn't go nuts, and the computer doesn't practically crash, plus it's only working on tiny pieces of the overall problem.

I used to run SETI@Home, I really liked that screensaver, it looked neat, but, then they changed how it works, or something, and I just gave up on it.


Title: Re: What is it calculating/workng on?!
Post by: casascius on February 23, 2011, 07:50:51 AM
Thanks. :)  I cross posted and linked to this thread.  I don't know if that will convince her of exactly what the bitcoin app is supposedly working on when it is set to Generate Bitcoins.  I don't have mine set to do that.  It totally chews up the system resources, the stupid Windows XP OS does not like it, or something.  CPU usage shoots up to 100% and stays there, memory fills up, the hard drive goes crazy from trying to handle swapping, and every single thing crawls to a near halt!  Plus, it is apparently far too slow at doing any work for me to Ever actually solve and create a block, and earn bitcoins.

So, I'm running a screensaver and joined a Mining Pool.  The screen saver, I've noticed after looking at the logs, usually only makes the CPU shoot up to about 90%, the hard drive doesn't go nuts, and the computer doesn't practically crash, plus it's only working on tiny pieces of the overall problem.

I used to run SETI@Home, I really liked that screensaver, it looked neat, but, then they changed how it works, or something, and I just gave up on it.

Don't bother using CPU mining.  I am sure you will hear that repeatedly.  Once upon a time, CPU mining was actually worthwhile.  Then somebody figured out, that for specific technical reasons, that the mining program can be run hundreds of times faster on your GPU (video card), in a way a CPU can't even come remotely close.

Best not even bother using the built-in "generate coins" option.  It will, with overwhelming probability, produce nothing.  If you have a decent video card from ATI or Nvidia, consider downloading one of the special mining programs built for your card.


Title: Re: What is it calculating/workng on?!
Post by: krepta3000 on February 23, 2011, 07:52:01 AM
Quote
I'm not getting an answer to my question! What kind of "...calculational problem..." is being worked on your computer?
Is it crunching numbers in the Hydrostatic Equation to help weather forecasters give better, earlier warnings of severe weather?
Or is it crunching numbers in the Hydrostatic Equation to help The Black Ops perfect Weather Modification as Weapon?

Is it crunching numbers for biologists to find the true cures for cancer and diabetes?
Or is it crunching numbers for Black Ops biologists to perfect the Ultimate Bio Weapon?

Is it crunching data to determine the most efficient and cost effective way to transport food so as to avoid shortages?
Or is it crunching data for Wall Street speculators in The Commodities Market to give them the most efficient ways to regulate and even spike food prices?

Do I have to continue or do you get my drift?

These are the kinds of things my friend is asking.  I keep trying to explain it is working on Bitcoin stuff, not stuff for companies or governments.  But, hey, if she doesn't Trust the information being given, if she doesn't believe the explanations, she doesn't Have to download and install the bitcoin app at all!  She can still use bitcoins by getting an online account with My Bitcoin.  There, paranoia problem solved.


Title: Re: What is it calculating/workng on?!
Post by: krepta3000 on February 23, 2011, 07:53:18 AM
Thanks. :)  I cross posted and linked to this thread.  I don't know if that will convince her of exactly what the bitcoin app is supposedly working on when it is set to Generate Bitcoins.  I don't have mine set to do that.  It totally chews up the system resources, the stupid Windows XP OS does not like it, or something.  CPU usage shoots up to 100% and stays there, memory fills up, the hard drive goes crazy from trying to handle swapping, and every single thing crawls to a near halt!  Plus, it is apparently far too slow at doing any work for me to Ever actually solve and create a block, and earn bitcoins.

So, I'm running a screensaver and joined a Mining Pool.  The screen saver, I've noticed after looking at the logs, usually only makes the CPU shoot up to about 90%, the hard drive doesn't go nuts, and the computer doesn't practically crash, plus it's only working on tiny pieces of the overall problem.

I used to run SETI@Home, I really liked that screensaver, it looked neat, but, then they changed how it works, or something, and I just gave up on it.

Don't bother using CPU mining.  I am sure you will hear that repeatedly.  Once upon a time, CPU mining was actually worthwhile.  Then somebody figured out, that for specific technical reasons, that the mining program can be run hundreds of times faster on your GPU (video card), in a way a CPU can't even come remotely close.

Best not even bother using the built-in "generate coins" option.  It will, with overwhelming probability, produce nothing.  If you have a decent video card from ATI or Nvidia, consider downloading one of the special mining programs built for your card.

By that do you mean the screensaver I downloaded?  It displays a bunch of pretty bitcoins all over my screen, and reports what it is doing.  It has yet to solve any blocks.


Title: Re: What is it calculating/workng on?!
Post by: casascius on February 23, 2011, 07:55:05 AM
Quote
I'm not getting an answer to my question! What kind of "...calculational problem..." is being worked on your computer?
Is it crunching numbers in the Hydrostatic Equation to help weather forecasters give better, earlier warnings of severe weather?
Or is it crunching numbers in the Hydrostatic Equation to help The Black Ops perfect Weather Modification as Weapon?

Is it crunching numbers for biologists to find the true cures for cancer and diabetes?
Or is it crunching numbers for Black Ops biologists to perfect the Ultimate Bio Weapon?

Is it crunching data to determine the most efficient and cost effective way to transport food so as to avoid shortages?
Or is it crunching data for Wall Street speculators in The Commodities Market to give them the most efficient ways to regulate and even spike food prices?

Do I have to continue or do you get my drift?

These are the kinds of things my friend is asking.  I keep trying to explain it is working on Bitcoin stuff, not stuff for companies or governments.  But, hey, if she doesn't Trust the information being given, if she doesn't believe the explanations, she doesn't Have to download and install the bitcoin app at all!  She can still use bitcoins by getting an online account with My Bitcoin.  There, paranoia problem solved.

It is not crunching anything externally useful.  It is crunching the SHA256 hash algorithm, repeatedly trying strings of bytes until it finds a hash that starts with lots of zeroes, simply to prove that it was busy.  It is doing this merely to produce a "proof" that it was busy - which helps the network establish who is the "majority" for the purpose of validating transactions.  The system is built relying on the assumption that the majority of users are honest.  Knowing the "majority" helps the system reject bogus or fraudulent transactions from modified Bitcoin software.   It is not doing anything useful in any external way, like finding aliens or curing cancer.


Title: Re: What is it calculating/workng on?!
Post by: Ricochet on February 23, 2011, 08:06:51 AM
Another way of thinking of it is that it's spending its time buying and checking thousands of lottery tickets per second.  The cost of these tickets is the price of the electricity used to process them.  If you happen to get a winning ticket, bam you get 50 Bitcoins.  But the typical CPU can only check so many at a time compared to these $600 GPUs (which can process millions and/or billions of tickets per second) that statistically, you're unlikely to ever get a winning ticket even if you ran the computer 24/7 for a year.

As others have explained, in terms of "usefulness," all you're really doing is strengthening the Bitcoin network.  That's it.  No actual problems are being solved, no complex proteins are being mapped, and you're not donating CPU time to find aliens.  You're just trying to hit the jackpot.

Using your screensaver connected to a mining pool, you may make a few cents a day, which is better than nothing at least.  Slush's pool works by sending you the same sort of work you'd be doing on your own, but it's MUCH MUCH easier to find a solution.  Your client doesn't know the difference and thinks it hit the jackpot and sends that info to the pool.  Each time your client finds a valid "block" this counts as credit for you in the pool.  When someone does happen to find a block that the Bitcoin network accepts (a TRUE "winning ticket"), the 50 Bitcoin prize is split up amongst all who contributed.  The splitting up is a bit more complex in that it involves the time you send in your shares versus the time of the winning block, but that's a minor detail.


Title: Re: What is it calculating/workng on?!
Post by: TiagoTiago on February 23, 2011, 02:39:22 PM
And how does that finding zeroes gets used to certify that no double spendings or forged coins are put in circulation?


Title: Re: What is it calculating/workng on?!
Post by: theymos on February 23, 2011, 04:36:58 PM
And how does that finding zeroes gets used to certify that no double spendings or forged coins are put in circulation?

It makes it hard to create blocks, which prevents someone from rewriting past blocks, "changing history".

See:
https://en.bitcoin.it/wiki/Block
https://en.bitcoin.it/wiki/Block_chain


Title: Re: What is it calculating/workng on?!
Post by: theGECK on February 23, 2011, 04:51:43 PM
In another thread, it was suggested to have a 10% CPU donation built into the client. How would this 10% actually work to strengthen/secure the Bitcoin network, once generation of all the bitcoins has happened?


Title: Re: What is it calculating/workng on?!
Post by: Gavin Andresen on February 23, 2011, 06:50:48 PM
Bitcoin is confusing at first glance because so many problems are solved using just a few ideas.  If you think about it long enough, it is quite elegant.

The busy-work of finding a block hash that is "small enough" solves a couple of problems:

First, by making it hard to create coins so they are artificially scarce.  That is really important; if it was easy to create gazillions of bitcoins we'd all have gazillions of bitcoins that were worth nothing.

Second, it solves the double-spending problem-- the computer that solves the busy-work problem first gets to decide which transactions are "THE" transactions, and which ones are invalid (because you're trying to spend coins you've already spent).


Title: Re: What is it calculating/workng on?!
Post by: TiagoTiago on February 23, 2011, 07:08:31 PM
So, if a single person finds a good hash for a faked block they can get away with it? I thought there was somthing with the network evaluating the job done to confirm if somthing makes sense...


Title: Re: What is it calculating/workng on?!
Post by: casascius on February 23, 2011, 07:31:40 PM
So, if a single person finds a good hash for a faked block they can get away with it? I thought there was somthing with the network evaluating the job done to confirm if somthing makes sense...

More like this: if I spend money, but keep generating blocks that lack the transaction, I could in theory get away with spending the same money over and over again, because nobody will recognize the money is already spent.

THe fact that the network has more CPU power than me - and can generate more "proof of work" than me - makes that impossible.  I could make 1 fake block at best, but it would be overwhelmed by everyone else's blocks and my money would quickly be recorded as spent.

The ability to manipulate the block chain doesn't confer the ability to counterfeit or forge transactions, it would at best simply let someone get away with "kiting" their bitcoins and take back money they already spent.  Someone would have to control more than 50% of the total hashing power across the whole network to pull that off.  That's what we mean when we say people mining "strengthens" the network - it raises the hurdle for an attacker higher and higher to the point it's hardly worth their while.


Title: Re: What is it calculating/workng on?!
Post by: theGECK on February 23, 2011, 07:54:25 PM
That's what we mean when we say people mining "strengthens" the network - it raises the hurdle for an attacker higher and higher to the point it's hardly worth their while.

Essentially, since you have so many people buying raffle tickets, the person who wanted to do it would need to buy more and more. For every 100 of my CPUs that donate 100% of their available power to the network, an attacker has to buy 2 5970s to equal it.

I'll be honest, that doesn't seem like much of a hurdle to climb. Right now slush's pool has 900 workers. Assuming that each of them is a separate computer (not likely), if each of their CPUs were mining, that would mean that an attacker would need to have 18 5970s to equal their power. That's not a large investment for the ability to manipulate an entire currency, but perhaps I'm missing something. I'm sure that there are more than 900 people mining, right?

Is there a way to find out how many people are actually mining? Is "mining" the only way to strengthen the network?


Title: Re: What is it calculating/workng on?!
Post by: BitterTea on February 23, 2011, 08:06:59 PM
Essentially, since you have so many people buying raffle tickets, the person who wanted to do it would need to buy more and more. For every 100 of my CPUs that donate 100% of their available power to the network, an attacker has to buy 2 5970s to equal it.

I'll be honest, that doesn't seem like much of a hurdle to climb. Right now slush's pool has 900 workers. Assuming that each of them is a separate computer (not likely), if each of their CPUs were mining, that would mean that an attacker would need to have 18 5970s to equal their power. That's not a large investment for the ability to manipulate an entire currency, but perhaps I'm missing something. I'm sure that there are more than 900 people mining, right?

Is there a way to find out how many people are actually mining? Is "mining" the only way to strengthen the network?
A lot of people using Slush's pool are GPU mining. I'm not sure why you're assuming all CPUs.

From the stats, Slush's pool currently has a hashrate of 114.518 Ghash/s, with the total network hashrate is 366.33 Ghash/s. That means that Slush's pool has around a third of the total computing power of the Bitcoin network, the "average" pool user has a hashrate of 128 Mhash/s (much higher than a CPU), and an attacker wishing to equal Slush's pool in power would have to bring ~190 5970s online.


Title: Re: What is it calculating/workng on?!
Post by: theGECK on February 23, 2011, 08:18:47 PM
I'm assuming all CPUs because the OP here was talking about what the bitcoin program was working on, and because of the discussion in another thread talking about adding a 10% "CPU donation" to the bitcoin program, which most people who aren't interested in mining would be running.

Where did you find the stats about total hash power, users, etc? Also, would slush's pool count as one "user", or were you referencing the average of slush's pool?


Title: Re: What is it calculating/workng on?!
Post by: TiagoTiago on February 23, 2011, 08:49:51 PM
I'm sorry, i'm not seeing it clearlly, how exactly does other people finding blocks of transactions after the fake transaction results in them indentifying that the fake transaction was fake? Or the other people are actually calculating the same block several times till their blocks agree with the blocks their neighbours calculated?


Title: Re: What is it calculating/workng on?!
Post by: casascius on February 23, 2011, 08:53:30 PM
I'm sorry, i'm not seeing it clearlly, how exactly does other people finding blocks of transactions after the fake transaction results in them indentifying that the fake transaction was fake? Or the other people are actually calculating the same block several times till their blocks agree with the blocks their neighbours calculated?

First there is no such thing as a "fake" transaction... the fraud would be the omission of a real transaction.  A transaction that is fake on its face (i.e. sends bitcoins that don't exist) won't be accepted by any unmodified client, whether in a block or otherwise.  (If it were in a block, the block would be rejected).

If I am a fraudster, what I am trying to do is generate blocks that omit registering money i have spent, so I can try to spend it again.  But once someone else successfully generates a block that includes the missing transaction, I'm hosed.  If I own more CPU power than the rest of the network, I can continue to generate blocks that override the blocks I don't like (and have mine overrule by the longest-proof-of-work rule), but since I don't have the majority of CPU power, I can't create the longest proof of work, and I'm stopped from the attack.


Title: Re: What is it calculating/workng on?!
Post by: casascius on February 23, 2011, 08:55:24 PM
I'm assuming all CPUs because the OP here was talking about what the bitcoin program was working on, and because of the discussion in another thread talking about adding a 10% "CPU donation" to the bitcoin program, which most people who aren't interested in mining would be running.

Where did you find the stats about total hash power, users, etc? Also, would slush's pool count as one "user", or were you referencing the average of slush's pool?

Bitcoincharts.com shows the estimated total hash power on the network.

It is impossible to tell how many users there are, since 10 computers hashing at 50MHash/sec look exactly the same as 1 computer hashing at 500MHash/sec.  The hash power is estimated simply by multiplying the number of blocks that are appearing in the block chain, by their presumed difficulty in creating them per unit of time.

Since users aren't countable, it doesn't matter whether mining happens in Slush's pool or out of it.  It's strictly a function of how many solved blocks are appearing, a block made in a pool calculates the same as one made solo.  The only difference with a pool is that the booty is divided up afterward.


Title: Re: What is it calculating/workng on?!
Post by: TiagoTiago on February 23, 2011, 09:01:08 PM
A modified client? Would that modified client be able to insert artificially created money (versus "naturally" occurring money that is found with mining) into the network, the illusion ends at the modified client?

What if the bad block include the emergence of mined money (currently 50BTC)  ? How does the network prunes false births of bitcoins?


Title: Re: What is it calculating/workng on?!
Post by: casascius on February 23, 2011, 09:29:54 PM
A modified client? Would that modified client be able to insert artificially created money (versus "naturally" occurring money that is found with mining) into the network, the illusion ends at the modified client?

What if the bad block include the emergence of mined money (currently 50BTC)  ? How does the network prunes false births of bitcoins?

Correct, illusion ends at modified client.

If a block is thrown out, the mined coins are thrown out with it. That is why you have to wait a certain period before you can spend mined coins, to make sure they aren't void. (example, if 2 people solve the same block at the same time, one of them will be completely rejected by the longest proof of work rule within two or three blocks).


Title: Re: What is it calculating/workng on?!
Post by: Drumah on May 30, 2011, 04:42:00 PM
Not to be very blunt....

But what would stop someone from hiring a botnet of 30.000 PC's, install a shitload of modified clients and poison the network into uselessness with false transactions ?
As long as those 30.000 PC's are spitting out 'valid' packets of what they say is true, there's a lot of legitimate CPU/GPU power needed to counter that..

Just a thought though  8)


Title: Re: What is it calculating/workng on?!
Post by: rezin777 on May 30, 2011, 04:47:30 PM
But what would stop someone from hiring a botnet of 30.000 PC's, install a shitload of modified clients and poison the network into uselessness with false transactions ?

Math.


Title: Re: What is it calculating/workng on?!
Post by: Drumah on May 30, 2011, 04:52:58 PM
But what would stop someone from hiring a botnet of 30.000 PC's, install a shitload of modified clients and poison the network into uselessness with false transactions ?

Math.

That contradicts:

Quote
THe fact that the network has more CPU power than me - and can generate more "proof of work" than me - makes that impossible.  I could make 1 fake block at best, but it would be overwhelmed by everyone else's blocks and my money would quickly be recorded as spent.

If criminals would utilize one of the bigger botnets to do some heavy duty poisoning by sending out fake transactions and re-spending their coins over and over again. It's all a matter of who has the most CPU power then, that makes Bitcoin very attractive to attempt and exploit this for owners of large botnets, wouldn't it ?


Title: Re: What is it calculating/workng on?!
Post by: gigitrix on May 30, 2011, 04:54:17 PM
Not to be very blunt....

But what would stop someone from hiring a botnet of 30.000 PC's, install a shitload of modified clients and poison the network into uselessness with false transactions ?
As long as those 30.000 PC's are spitting out 'valid' packets of what they say is true, there's a lot of legitimate CPU/GPU power needed to counter that..

Just a thought though  8)

30,000 PCs probably wouldn't leave much of a dent on the infrastructure we have now. Also, botnets are quite expensive, and more money can be made doing other stuff with them.


Title: Re: What is it calculating/workng on?!
Post by: JA37 on May 30, 2011, 05:12:16 PM
But leaving your cpu running will theoretically allow you to find a block, and as such cash in almost $500, right? Odds aren't worse than playing any regular lottery?


Title: Re: What is it calculating/workng on?!
Post by: rezin777 on May 30, 2011, 05:13:40 PM
But leaving your cpu running will theoretically allow you to find a block, and as such cash in almost $500, right? Odds aren't worse than playing any regular lottery?

Well, does your CPU run for free?


Title: Re: What is it calculating/workng on?!
Post by: JA37 on May 30, 2011, 05:15:28 PM
It does if I run it on someone elses power (like a client) and it's a company laptop.  ;)
It's not like they can tell what I'm running on the machine I bring to the office.


Title: Re: What is it calculating/workng on?!
Post by: rebuilder on May 30, 2011, 05:53:29 PM
But leaving your cpu running will theoretically allow you to find a block, and as such cash in almost $500, right? Odds aren't worse than playing any regular lottery?

The odds in a regular lottery are dismal.


Title: Re: What is it calculating/workng on?!
Post by: qbg on May 30, 2011, 06:17:36 PM
Not to be very blunt....

But what would stop someone from hiring a botnet of 30.000 PC's, install a shitload of modified clients and poison the network into uselessness with false transactions ?
As long as those 30.000 PC's are spitting out 'valid' packets of what they say is true, there's a lot of legitimate CPU/GPU power needed to counter that..

Just a thought though  8)
The unmodified clients won't accept the invalid blocks generated by the modified clients, and so the coins produced by the modified clients won't be accepted by the other users. In effect, the person ends up creating a new currency accepted by no one.