At CeBIT and over the last couple of weeks, a handful of people have asked what a blockchain actually is. Here's an attempt to explain it in (relatively) simple terms.
So what even is a ‘blockchain’?
It’s a kind of database – a way of storing information in a way that’s easy to search and access. Specifically, it’s a community-maintained database.
What does that mean in practice?
Most databases are maintained by one organisation, for example, a bank or web services company. They control who gets to add information to the database, and they can edit or delete entries if they want to. A blockchain isn’t controlled by any one individual or organisation. Instead, responsibility for its maintaining it is shared among a large network of computers.
Why would you want to do that?
Lots of reasons. It means that no single organisation controls what’s in the database (a privilege it’s easy to abuse). Everyone can see what’s in it and anyone can add entries to it. In other words, it’s ‘open’ – accessible by anyone and everyone, not just an administrator. It’s also transparent, so its contents aren’t hidden like they are in a normal database, where entries can only be accessed if the admin lets you. Plus, because it’s a community-maintained database, there’s no one acting as a gatekeeper and so no unnecessary costs are imposed on those who want to use it.
If anyone can change the database, how do you make sure no one edits something they shouldn’t – for example, fraudulently adding lots of money to their own balance?
This is the really clever bit about blockchains. The job of the network is to make sure that you and only you can make changes to your account. You can update only the things you have permission to change (like making financial transactions), and the entire community collectively enforces the honesty of you and everyone else using it.
How exactly does that work?
In broad terms, everyone is offered an incentive to be honest, and if you choose not to be honest you are working against everyone else – like a tug-of-war against a crowd of people pulling in the opposite direction.
In a little more detail: all of the computers that make up the network compete to be the one to add new batches of entries to the blockchain. It’s a hard competition, and it costs them money in one way or another (electricity and specialist hardware in the case of bitcoin). They do it because there are rewards in the form of small fees collected from everyone who wants to add a new entry to the blockchain, and sometimes new coins.
Every computer wants to win the competition and get paid. If one of them decides to try something dishonest, they are working against everyone else in the entire network. It’s very easy to see whether a new entry to the blockchain is legitimate or not by checking it against the previous contents of the database – for example, making sure that someone really does have the funds they are trying to spend. Blocks are linked together (hence the term ‘blockchain’), and the complete history of every user is available, so it’s easy to see who should own what.
This means every other computer in the network would recognise a fraudulent entry and ignore it, so the dishonest computer has just wasted its valuable resources. The only way a dishonest computer could win is if it had more than half of the power of the entire network at its disposal, which would be hugely expensive (and would cost far more than it stood to gain).
One upshot of the way blockchains work – by maintaining a continuous record and with every block linked to the last – is that all data is stored permanently. There is an unchangeable record of every entry ever made.
Ok, so what can you use blockchains for?
Databases just store information, so you can use blockchains for anything that requires information…
Money is one obvious application, which bitcoin pioneered. The blockchain can be used as a ledger of transactions between different users. Because entries are permanent, transactions cannot be reversed – making it a lot like using physical cash. You can use blockchains to send/store messages, including short texts or strings of characters that form a kind of unique ‘fingerprint’ for a document. Because the records on the blockchain are permanent, you can use it to prove that something existed at a given time. You can even use them to run software that always executes and cannot be shut down. There are many, many more use cases.
And Incent uses a blockchain?
Incent uses the Waves blockchain, which is a great piece of technology – but more on that another time.