I was told to ask questions about bitcoining here (recommended from another forum), I am new to this whole process and I don't quite understand the whole process of bitcoin mining, other than it is a very slow process.
Does anyone have any links, I have read the wiki page on the main bitcoin page, but I still don't get it.
Short (and inaccurate) answer: Mining pools make available some computational work to be performed, mining operators perform that work and get paid. Specialized hardware does this work much faster than general purpose computing hardware (e.g., A GPU is much faster at mining than a CPU on a desktop PC is. An ASIC built for mining is much faster than a GPU.) The decision to invest in mining hardware involves speculation of a handful of factors with significant unknowns.
Long, drawn out answer:
Mining is the process that records the history of all bitcoin transactions over time.
When you withdraw money at an ATM, that machine first requests permission to withdraw N dollars from your account and after the transaction your bank ledger system subtracts that amount from your account. Your bank is the authority over what transactions occur and what the history of your account looks like. Their ledger is where that history is stored and is the master authority for each subsequent withdrawal request. If there is an issue, you need to appeal to your bank to get it straightened out.
Bitcoin's value is in being decentralized. There is no "master authority".
So why would a merchant, say Coinbul.com, ship out gold coins if I am paying in a form of money that has no physical form and which there is no authority?
So they must be able to trust that the transaction cannot be reversed under any circumstances.
That's what miner's provide -- a way that a Coinabul can accept payment without concern about the payment being reversed.
So, how do miner's do this?
When a transaction is sent, it gets relayed to peer nodes (a typically number of peer nodes connected to might be
. When a peer node first sees a transaction it first does a check to make sure the coins used to pay have no previously been spent. Each node verifies the transactions and then further relays it to other peer nodes. So within seconds nodes around the entire world have seen and verified a new transaction.
Mining nodes are special nodes which are not just verifying the transactions but trying to construct a batch of them. This batch is called a block. Each block has a reference to the prior block. They are chained together. So by looking at all the blocks in the chain, the software can determine what coin transactions have not yet been spent. Miners build blocks because they are rewarded financially for doing so. Currently most of the reward comes from a subsidy paid for through issuance of the currency. A smaller amount of the reward comes from the transaction fees that are paid. With all of the miners combined it will take about ten minutes before one miner figures out a solution that is acceptable and the block is valid. So today that reward is 25 BTC per block every ten minutes. At nearly $50 per BTC, that's about $180K USD being paid to all the miners combined each and every day.
Because mining nodes learn of transactions at different times, not every miner is building the same history. If a transaction arrives too late, or the miner ignores it for whatever reason, the contents of the block could be different from the block produced by another miner. But there can only be one truth. So let's say two miners, Bob and Alice, are both working on the next block, say block #100, and they both submit a block of transactions and the contents differ. With a solution for block #100, miners start working on block #101. Some of Bob's peer nodes who are mining will extend on his block #100 and not even know about Alice's block #100. At the same time some of Alice's peers will start extending her block #100, unaware that other miners are already working on extending Bob's block #100. So the mining work is splintered. There needs to be a conflict resolution method so that either Bob's wins or Alice's wins. If Alice's block ends up winning, Bob loses his reward. And vice-versa. How does Alice's win? By having #101 extend off her #100 and not Bob's, then #102 must extend off the #101 she was party responsible for. Then #103, and #104, #105, #106, etc. Once a block has another five blocks that have extended off of it, there's essentially no chance remaining that she would lose that reward. It isn't up to Alice though, it is up to other mining nodes to extend off of her block.
Miners don't know each other, so it isn't like Fred who is a friend of Bob will choose Bob's #100 over Alice's. Instead what happens is the miners extend off of whichever block they get first. So if a miner knows of block #99, and now receives Alice's #100 that's the one that gets extended. If a few seconds later Bob's block #100 shows up it doesn't matter. The miner is already hard at work trying to build block #101 that extends off of Alice's #100.
That conflict resolution determines which is the truth -- either Alice's or Bob's will become truth. Once a block has five more blocks that have extended off of it (so a total of six blocks including the one with the transaction) it becomes "truth" -- at least as far as a merchant like Coinabul is concerned.
So mining is the process of building consensus of the truth.
If all that makes any sense, then you probably have a dozen more questions about mining. Like why did Alice and Bob submit a block #100 and not a thousand other people all at the same time. Or if there is a reward that produces profit, more people will be attracted to mining -- won't blocks com faster and faster? etc.
For those, Satoshi's white paper is excellent.Bitcoin: A Peer-to-Peer Electronic Cash System