One of the often heard criticisms of Bitcoin concerns the relatively long waiting period before a transaction is confirmed: 10 minutes on average. This raises the question how Bitcoin will ever be useful in brick-and-mortar stores where you don’t want to wait for 10 minutes (on average, the time between blocks can be over half an hour!) with your groceries or before you get your coffee. As it turns out, while the security of a confirmed transaction is unmatched, even an unconfirmed transaction is already very useful. And there are techniques that can be used to enhance the security of these so-called 0-confirmation (0-conf) transactions.
In an earlier article on mining, I mentioned that the Bitcoin system periodically changes the difficulty of finding a block to ensure that the average times between blocks is approximately 10 minutes. That means that under normal circumstances, a block is found every 10 minutes on average, an average of 6 blocks are found per hour, 144 blocks per day and 1008 per week. Once there are sufficiently many miners, this means that a single miner may have to wait a long time before he finds a block and gets the reward. This turns mining more and more into a lottery and less of a relatively constant income stream to offset the costs. Fortunately, a system known as a ‘mining pool’ was developed where miners can collaborate on finding a block and are paid out a portion of the block reward. This article describes how pool mining works.
Mining is one of the more mysterious aspects of Bitcoin and other cryptocurrencies. It is often described by vague statements such as “miners try to find new coins”, “miners solve puzzles for coin rewards”, “miners verify transactions”, etc… This is coupled with a sentiment among new Bitcoin-users that mining is *the* way to obtain bitcoins and that obtaining coins through mining is somehow one of the main purposes of a cryptocurrency. In this post, I will delve into the details of the mining process, discuss its purpose and how it works.