What is Blockchain?
Taken in its purest form, a blockchain is just a database which structure differs from usual ones in the way is processes new information. Hence, not only one blckchain exists but many and they can have very different usage. They can be used to store an history of ‘cash’ transactions (as in Bitcoin), to manage and allocate distributed resources (disk space, computation power…) or track ownership of any type of physical assets such as stocks or real estate to name a few. The technology is particularly well suited to store a system’s state at any given point in time and keep track of the transitions between states. It does so by using a chain of blocks each one adding new information (state changes) to the last created one in a recursive mode.
Hence, the chain grows over time as more blocks are added. For example, in the case of Bitcoin, each new bloc contains a finite and preset number of transactions that have not been recorded in any previous block. The system makes it possible to track the whole history of one particular account by exploring the chain backwards from the last validated block to the initial one (state zero or genesis block). In the case where the chain is open (non encrypted) and distributed (case of most implementations of interest), all the information about any part of the system is available publicly to any participant.
Importance and drawbacks of the system
As described above, the technology does not bring much to the table and has actually been around for quite some time (well before the introduction of Bitcoin in 2009). The true power of the setup was made available with the introduction of the internet and distributed databases (peer to peer) to pave the way for decentralized networks. In such a scheme, the information is available to anyone and everyone is jointly responsible for its accuracy. The database is replicated in all nodes which participate in its updating over time (new block creation). As a result, it becomes possible to run decentralized systems, for example getting rid of a bank in a true peer to peer cash network.
This setup is not free of complex new problems to solve to warrant a high degree of trust and safety. The first problem to deal with is about how to keep the data properly synchronized between potentially thousands of participants. In particular, where would a new node looking to join the network look for the current state of the system (in order to replicate it)? It would most likely request it from an existing node but we have to consider the possibility that in a deep network, a portion of the nodes will be corrupt (voluntarily or not). How will it then select the proper node or be certain that the information it gathered has not been tampered with? A second issue arising concerns the creation of new blocks: how do we get nodes to agree on which transactions to include in a new block and how is it validated? The initial Bitcoin paper written published by Satoshi Nakamoto in 2009 described an innovative way to solve both problems simultaneously with the introduction of mining and Proof of Work which we’ll describe next.