What are blockchains?
Blockchains allow people or organizations that don’t implicitly trust one another to work together in a shared data environment, without a central trusted authority to oversee their cooperation. As a result, they have great potential to cut out middlemen from areas that have traditionally required them, such as payment processing, stock brokerage, asset ownership registration, and so on. Cutting out the middleman cuts the commission costs associated with such areas, and increases the rate at which transactions can be processed.
Blockchains are decentralized data storage systems propagated, extended and stored in peer-to-peer networks. The most prominent public blockchain in existence to date is Bitcoin, a crypto-currency invented and initially implemented by Satoshi Nakamoto, which currently carries a value of over $12 billion USD.
A blockchain allows a group of people or organizations to share and append data to a data storage system or digital ledger without having to trust each other implicitly. The potential uses of blockchains are only just being realized, and participants in finance, the law, and the internet of things (IoT) are all investigating and investing in blockchain applications.
Why use a blockchain?
In a centralized system such as a data storage company, a payment processing company, a banking system or a stock exchange, clients of the system trust the company in charge of the system to act with integrity due to legal regulation or the threat of clients taking their business elsewhere.
For example, a payment processing company such as PayPal or Visa acts as a central authority to ensure no “double-spending” can occur – when a customer makes a payment to a merchant, the customer’s balance is decreased and the merchant’s is increased by the same amount (minus the processing fee), and the customer can’t spend their money twice in two different shops. Similarly, a stock brokerage is supposed to ensure that when one party buys shares and another sells them, the first actually gets the shares and the second gets the payment (minus the processing fee).
In a decentralized blockchain system, there is no centralized authority, and so the system has to be designed to make sure that all the participants are compelled to work together, to prevent problems such as double-spending. However, if decentralized trust can be achieved, then there is no middleman, and hence there are no processing fees. Costs are reduced, and friction is reduced (ever waited three days for a check to clear or a share transfer to settle?).
How do blockchains work?
The simple non-technical answer is: they are set up so that only participants who agree to bide by the rules can add data to the blockchain, and the risk of losing any value obtained by using the system outweighs the gains of breaking the rules. In that sense, they rely on a combination of greed and fear, which have historically proven effective in enforcing cooperation in the financial markets.
The technical answer is a bit more complicated, but explains the practicalities underlying the system.
Nakamoto solved the problem of how to ensure trust in a distributed system which has no central authority to arbitrate on transactions, mainly through the use of asymmetric cryptographic keys and proof-of-work algorithms.
Asymmetric keys
Clients using a blockchain typically identify themselves and authenticate their actions using an asymmetric key. The client holds the private key, which allows them to sign messages and transactions to submit to the blockchain. Other users can use the client’s public key to verify that the transactions are valid. If the blockchain in question implements a crypto-currency, then the credits of value of the system are linked to public keys, and can only be used by the holder of the private key associated with the relevant public key.
Proof of work
At the core of the system is a “proof of work” effort. For data to be included into the blockchain, validators (called “miners” in Bitcoin) package up all the unprocessed messages, requests and transactions into a block (hence the “block” part of blockchain), add a reference to the previous data in the blockchain (hence the “chain” part of blockchain), together with a random number, and run a computation on the packaged data block.
If the validator is lucky enough to pick the right random number, the proof of work computation returns a successful result. Finding a successful result means the block can be submitted to the rest of the network for inclusion in the blockchain, and this generally results in a reward for the successful validator. If, as is usual, the random number is wrong, the proof of work computation returns a failure. A failure means the validator picks a new random number and tries again. And again, and again.
As a result “proof of work” is a bit like a lottery: computer resource owners play, eventually somebody wins, and a byproduct is that the relevant data is packaged and added to the blockchain on a regular basis. The blockchain grows, each block refers to the previous block, and any attempt to subvert the system and create a false blockchain would require more work than any single individual can expend.