Skip to main content

How Bitcoin Mining Works

In traditional fiat money systems, governments simply print more money when they need to. But in bitcoin, money isn’t printed at all – it is discovered. Computers around the world ‘mine’ for coins by competing with each other.

How does mining take place?

People are sending bitcoins to each other over the bitcoin network all the time, but unless someone keeps a record of all these transactions, no-one would be able to keep track of who had paid what. The bitcoin network deals with this by collecting all of the transactions made during a set period into a list, called a block. It’s the miners’ job to confirm those transactions, and write them into a general ledger.

Making a hash of it

This general ledger is a long list of blocks, known as the 'blockchain'. It can be used to explore any transaction made between any bitcoin addresses, at any point on the network. Whenever a new block of transactions is created, it is added to the blockchain, creating an increasingly lengthy list of all the transactions that ever took place on the bitcoin network. A constantly updated copy of the block is given to everyone who participates, so that they know what is going on.
But a general ledger has to be trusted, and all of this is held digitally. How can we be sure that the blockchain stays intact, and is never tampered with? This is where the miners come in.
When a block of transactions is created, miners put it through a process. They take the information in the block, and apply a mathematical formula to it, turning it into something else. That something else is a far shorter, seemingly random sequence of letters and numbers known as a hash. This hash is stored along with the block, at the end of the blockchain at that point in time.
Hashes have some interesting properties. It’s easy to produce a hash from a collection of data like a bitcoin block, but it’s practically impossible to work out what the data was just by looking at the hash. And while it is very easy to produce a hash from a large amount of data, each hash is unique. If you change just one character in a bitcoin block, its hash will change completely.
Miners don’t just use the transactions in a block to generate a hash. Some other pieces of data are used too. One of these pieces of data is the hash of the last block stored in the blockchain.
Because each block’s hash is produced using the hash of the block before it, it becomes a digital version of a wax seal. It confirms that this block – and every block after it – is legitimate, because if you tampered with it, everyone would know.
If you tried to fake a transaction by changing a block that had already been stored in the blockchain, that block’s hash would change. If someone checked the block’s authenticity by running the hashing function on it, they’d find that the hash was different from the one already stored along with that block in the blockchain. The block would be instantly spotted as a fake.
Because each block’s hash is used to help produce the hash of the next block in the chain, tampering with a block would also make the subsequent block’s hash wrong too. That would continue all the way down the chain, throwing everything out of whack.

Competing for coins

So, that’s how miners ‘seal off’ a block. They all compete with each other to do this, using software written specifically to mine blocks. Every time someone successfully creates a hash, they get a reward of 25 bitcoins, the blockchain is updated, and everyone on the network hears about it. That’s the incentive to keep mining, and keep the transactions working.
The problem is that it’s very easy to produce a hash from a collection of data. Computers are really good at this. The bitcoin network has to make it more difficult, otherwise everyone would be hashing hundreds of transaction blocks each second, and all of the bitcoins would be mined in minutes. The bitcoin protocol deliberately makes it more difficult, by introducing something called ‘proof of work’.
The bitcoin protocol won’t just accept any old hash. It demands that a block’s hash has to look a certain way; it must have a certain number of zeroes at the start. There’s no way of telling what a hash is going to look like before you produce it, and as soon as you include a new piece of data in the mix, the hash will be totally different.
Miners aren’t supposed to meddle with the transaction data in a block, but they must change the data they’re using to create a different hash. They do this using another, random piece of data called a ‘nonce’. This is used with the transaction data to create a hash. If the hash doesn’t fit the required format, the nonce is changed, and the whole thing is hashed again. It can take many attempts to find a nonce that works, and all the miners in the network are trying to do it at the same time. That’s how miners earn their bitcoins.

Comments

Popular posts from this blog

Visual Basic ( Catch Me ) Introduction

Hello guys, Welcome back to Visual Basic Tutorial ( GAME ) Catch me: - It is a simple game that a Picture will appear Random in the Windows Form and the player (user) will try to click on it by mouse that all We have lot of version to Catch me so I will make a list for them 1. Catch me Version 1.0.0  Features : User will play in 800*600 window state  User will play it without any effects The result will not be saved 2. Catch me Version 2.0.0  Features : User will play  in Full Screen When User will press in the picture ( Target ) the black color will be green the back to Default The result will  be saved as long as the game is opened 3. Catch me Version 3.0.0  Features : User will play  in Full Screen User will choose the level of game ( Insane - Extreme - Hard - Normal - Easy - Baby Level ) The result will be saved in Database with Names ------------------------------------------------- Notice The ti...

Digital Money

Origins of digital currencies date back to the 1990s  Dot-com bubble . One of the first was  E-gold , founded in 1996 and backed by gold. Another known digital currency service was  Liberty Reserve , founded in 2006; it let users convert dollars or euros to Liberty Reserve Dollars or Euros, and exchange them freely with one another at a 1% fee. Both services were centralized, reputed to be used for money laundering, and inevitably shut down by the US government. [3]  Q coins or QQ coins, were used as a type of commodity-based digital currency on  Tencent QQ 's messaging platform and emerged in early 2005. Q coins were so effective in China that they were said to have had a destabilizing effect on the Chinese Yuan or RMB currency due to speculation. [4]  Recent interest in cryptocurrencies has prompted renewed interest in digital currencies, with  bitcoin , introduced in 2009, becoming the most widely used and accepted digital currency. ...

Catch Me Version 1.0.0

Hello guys, Welcome to the first version of Catch me ( Visual Basic Game read Introduction ) Ok, Let's Start Open Visual Studio 2012 and Open new project 1. Program Design Stage Let's add the tools 1 PictureBox, 2 Button, 2 Label, 1 Timer In Picturebox1 My Image Choose any picture in my case I will choose this image  Make Visible Property = False Resize it as you like I will make it (150,150) Don't forget to Change SizeMode to StretchImage Button1, Button2 In One of the 2 Button make it's Text property to Quit and the another make it Start Label1 In Label1 change the Text to your Description  Label2 In Label2, Change the Text to "Time: 60s" without quotation  put in the middle Bottom of the Form and 60s is the game time Timer1 Change the Interval This is the game Time Form1 Change FormBorderStyle to None Change the Size to 800,600 Change StartPostion to Centre of the Screen Ok Your Window Should be like th...