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.
No comments:
Post a Comment