Bitcoin Forum

Bitcoin => Mining => Topic started by: specialsymbol on May 05, 2011, 09:30:29 AM



Title: What is this mining for?
Post by: specialsymbol on May 05, 2011, 09:30:29 AM
So all I see now is that I can set Bitcoin to "make cash". A number appears in the lower left, stating it makes 2000kHash/s or such.

Now what does that mean?
What is it good for?
Are they stored somewhere?
Who would need so many hashes?
Hashes of what?
With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?



Title: Re: What is this mining for?
Post by: dbitcoin on May 05, 2011, 09:49:34 AM
So all I see now is that I can set Bitcoin to "make cash". A number appears in the lower left, stating it makes 2000kHash/s or such.

Now what does that mean?
What is it good for?
Are they stored somewhere?
Who would need so many hashes?
Hashes of what?
With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?

RTFM


Title: Re: What is this mining for?
Post by: allinvain on May 05, 2011, 10:04:07 AM
I believe this will answer most if not all of your questions:

https://bitcoin.it/

and

https://en.bitcoin.it/wiki/FAQ



Title: Re: What is this mining for?
Post by: specialsymbol on May 05, 2011, 10:52:52 AM
Ok, that answered some of my questions.

So, please correct me if I'm wrong:


Now what does that mean?

It means creating a hash of the previous block  (edit: blockheader) that starts with at least a bunch of zeroes.

What is it good for?

To enable new transactions (no matter how many, for not the block is hashed but the header)

Are they stored somewhere?
Only if it hits the target, meaning there are enough leading zeroes in the hash. Then it's transmitted to the network and used for a transaction and calculating a new hash starts.

Who would need so many hashes?

Only very few hashes meet the target. One in ten minutes is the goal. I wonder if there will be one day enough computational power that no matter how low the target is it is met within seconds.

Hashes of what?

Of the previous blockheader plus that ominous nonce. The nonce is changed every time you fail to compute a useful hash, which means it has not enough leading zeroes.
Don't you have to start over again everytime a valid block with new header is published?

With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?
Yes?

What is the chance for me to find a valid block which won't be accepted (and rewarded) by the network?


Title: Re: What is this mining for?
Post by: Meni Rosenfeld on May 05, 2011, 12:35:25 PM
First I'd like to clarify: The "Generate coins" option in the client is a useless relic and you should not activate it. If you want to mine, you need specific hardware and software.


Now what does that mean?

It means creating a hash of the previous block that starts with at least a bunch of zeroes.
A few other things go into the hash, such as the merkle root of the transactions.


What is it good for?

To enable a new transaction (only one?)
To prove that some work was put into validating a specific timeline, to prevent people from altering it willy nilly. Every block contains several transactions.

Are they stored somewhere?
Only if it hits the target, esp. that there are enough leading zeroes. Then it's transmitted to the network and used for a transaction.
Right, but it's not "used for" as much as it "verifies", and it's several transactions.


Who would need so many hashes?

Everyone who wants to make a transaction
Or to verify that some specific order of events is the established timeline.


Hashes of what?

Of the previous block plus that ominous nonce. The nonce is changed every time you fail to compute a useful hash, which means it has not enough leading zeroes.
Plus some other stuff.

With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?
Yes?
No.

How many transactions can be validated with one block?
AFAIK currently each block is limited to 1MB which is about 1000 transactions. This may change in the future.

What is the chance for me to find a valid block which won't be accepted (and rewarded) by the network?
That depends, but I'd say a found block has about 1% chance to eventually be rejected.


Title: Re: What is this mining for?
Post by: specialsymbol on May 05, 2011, 01:37:24 PM
Great, thanks! I kinda start to grasp the concept. Still a lot to understand, though..
The "useless relic" in the client still has a chance (even if it's low) to generate a valid hash, doesn't it?

On the other hand, I have absolutely no clue about how our current monetary system works, only the faint idea it's all a great rip-off. Which I carry over to Bitcoin and right now I'm trying to convince myself this isn't the case. ;)


Title: Re: What is this mining for?
Post by: barbarousrelic on May 05, 2011, 01:44:19 PM
With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?
If they all worked on the same piece of data forever, yes. But the piece of data (the block) being worked on changes every 10 minutes.


Title: Re: What is this mining for?
Post by: Garrett Burgwardt on May 05, 2011, 02:13:34 PM
With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?
If they all worked on the same piece of data forever, yes. But the piece of data (the block) being worked on changes every 10 minutes.

Even then no - the nonce would just head toward infinity, as far as I know.


Title: Re: What is this mining for?
Post by: specialsymbol on May 05, 2011, 02:33:29 PM
I thought the nonce is part of the header? If the header has a defined (definite) size wouldn't that mean that the nonce once is 111111111 (how many places that would be) and therefore had to start all over again, where hashes would repeat?


Title: Re: What is this mining for?
Post by: Garrett Burgwardt on May 05, 2011, 02:46:47 PM
I could be wrong on this as I don't know the technicals, but the way I believe it works is that the merkle root is the previous block hash, and when you get an invalid hash (or rather, one that doesn't meet the difficulty requirement) the nonce is incremented by one.


Title: Re: What is this mining for?
Post by: Meni Rosenfeld on May 05, 2011, 02:47:29 PM
The nonce is a 32-bit integer which means its value goes up to 4 billion. When all those values are tried, the server needs to give a new work unit where some irrelevant stuff are altered in the generation transaction, thus changing the Merkle root.

The "useless relic" in the client still has a chance (even if it's low) to generate a valid hash, doesn't it?
Yes, but it's so low it's not worth considering.

I could be wrong on this as I don't know the technicals, but the way I believe it works is that the merkle root is the previous block hash, and when you get an invalid hash (or rather, one that doesn't meet the difficulty requirement) the nonce is incremented by one.
No, the Merkle root is the hash at the root of the Merkle tree of the transactions in the current block. The previous block hash is another part of the header which also goes into the current block's hash.


Title: Re: What is this mining for?
Post by: RustyShackleford on May 05, 2011, 03:15:44 PM
With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?
Yes?

Having a big list of all the passwords in the world is useless if you don't know the correct username. Does it make sense that way? :)


Title: Re: What is this mining for?
Post by: compro01 on May 05, 2011, 04:13:08 PM
With everyone in the world producing huge amount of hashes, wouldn't all hashes of all sorts be produced at some time, breaking every encryption system?

only for a suitably large definition of "huge".  this is what the difficulty/target adjusts for.

atmax difficulty, the probability of a valid block being found is about 1/2^224.

assuming everyone in the world had as much hashing power as the entire network today (this would be about 7 petahashes/second), a valid block would be generated about once every 10^34 years.   this is considerably greater than the time it will take for every star in the universe is go out.


Title: Re: What is this mining for?
Post by: ffe on May 05, 2011, 04:35:22 PM
touch


Title: Re: What is this mining for?
Post by: barbarousrelic on May 05, 2011, 05:09:42 PM
First I'd like to clarify: The "Generate coins" option in the client is a useless relic

And quite a barbarous one, at that.  ;)


Title: Re: What is this mining for?
Post by: allinvain on May 06, 2011, 03:28:51 AM
First I'd like to clarify: The "Generate coins" option in the client is a useless relic

And quite a barbarous one, at that.  ;)

hahahah...:P good one..

Worry not eventually that feature will be taken out of the official bitcoin client. I am one who believes that mining should be a separate and dedicated function of the network that is suitable only for those with high end graphics cards. At the moment CPU mining is pretty much pointless unless you don't pay your electricity and even if you don't it's a huge waste of energy.



Title: Re: What is this mining for?
Post by: EpicBacon on May 06, 2011, 04:22:06 AM

assuming everyone in the world had as much hashing power as the entire network today (this would be about 7 petahashes/second)

Do you mean 7 Zettahashes/second? (1 Terahash/second * 7billion)


Title: Re: What is this mining for?
Post by: compro01 on May 06, 2011, 06:48:38 AM

assuming everyone in the world had as much hashing power as the entire network today (this would be about 7 petahashes/second)

Do you mean 7 Zettahashes/second? (1 Terahash/second * 7billion)

yes, that is what i meant.  i think i posted that before the caffeine kicked in.