What does the mining difficulty number really mean? I'm new to bitcoin; please bear with me.

I'm looking into mining, how it works, and how to get started. I see a "mining difficulty" from many sources and list a 3 billion something number without units.

What exactly does this number mean and how does it relate to the processing speed of the hardware used? For example, what predictions can be made on the number blocks you will solve with a 100 Gh/s ASIC at any given difficulty?



I assume Gh/s is giga hashes per second, though I don't know what a hash is either.



I found this related question, but I don't understand the answer.



As an extension question, how might this relate to mining in a pool? Bitminter says it has 424 Th/s, so my 100 Gh/s is a drop in the bucket.
(If I may repeat myself a bit...) Mining is like having a lot of people throwing weighted coins (such that 1 millionth of the time it comes up heads) and telling you when they hit a heads. If one such "heads" is reported every 10 minutes (600 seconds), you can make a very accurate estimation of how many times per second the coins are being flipped. In this example:

(1,000,000 flips/heads) / (600 seconds/heads) ~= 
1,667 flips/second


The network difficulty is how you adjust this 1,000,000 figure so that the 600 figure stays consistent as the network's total hash power (1,667) changes.

To see real-world calculations of how the difficulty affects the coins discovered per time spent, see any mining profitability calculator, and change the "difficulty" figure. The Bitcoin wiki has details on difficulty, as well.


  I don't know what a hash is either.


When mining, your computer creates a block of data, which has a list of all of the transactions it knows about, includes a transaction that pays you the mining bonus, and then hashes that. If the hash happens to be a small enough number (as defined by the difficulty), the block is valid. If it's not, you increment a random number called a "nonce" that's in the block, so that the block has the same meaning but different data, and hashes the block again. Lather, rinse, repeat. (the nonce is included from the start, of course, but I didn't mention it to avoid being confusing)

The details of the block hash are explained in more detail at Bitcoin wiki's Block hashing algorithm.

Gigahashes per second, then, are how many billion times your hardware can do this hash per second.

If the pool you're in has 424 Th/s and you have 100 Gh/s, then you are about 1/4000th of your pool's total power. You can expect to be the one to solve about 1/4000th of the blocks (on average) that your pool finds.

(technical details intentionally omitted; those are available at my various links, and your link)