Showing posts with label blockchain. Show all posts
Showing posts with label blockchain. Show all posts

Tuesday, 19 December 2017

Blockchain: A solution looking for a problem?

I have long argued that the blockchain – the system that underpins Bitcoin – is a real fintech innovation,  whereas Bitcoin itself is a by-product. But not everyone agrees that blockchain is such a wonderful idea and that it is a flawed system. It is thus worth digging a little deeper into the workings of blockchain to assess some of the pros and cons.

There are two key elements associated with blockchain: How it works and why it works. The ‘how’ is a routine process of transaction verification designed to ensure that each transaction is valid. One way to do this is to add a timestamp to each transaction and adding it to a chain of time stamped transactions. This is validated by a complex proof-of-work algorithm that cannot be changed without redoing all previous steps in the proof-of-work chain. This makes use of an algorithm known as a ‘cryptographic hash function’ which converts a numerical input of arbitrary length into an output of fixed length. This process is resource intensive and has to be run numerous times before the hash function generates an output that is accepted by the rest of the blockchain community. One feature of the system is that it is difficult to work back from the output to the input, thus preventing miners from working out how to falsify previous blocks. This is similar to procedures used to encrypt website passwords which prevent hackers from being able to work out users’ passwords by viewing the encrypted data.

The ‘why’ of blockchain is also interesting. It effectively offers a solution to the long-standing game theory puzzle which has bamboozled generations of computer scientists – the Byzantine Generals problem. Cracking this problem offers an insight into how a decentralised ledger system can operate. To get a handle on it, consider a thought experiment in which a group of generals (>2) are assumed to be outside a city, each with an army, and all want to invade the city. It is known that if at least half attack at the same time, they will be successful. But if they do not co-ordinate their plans to ensure they can muster the requisite number for the assault, they will be unsuccessful. They must thus collude in planning their attack, but the generals face three problems: they must (a) know whether their messages get through in the first place; (b) receive an acknowledgment indicating that the plans have been accepted and (c) verify that the information passed between them is true.

Computer scientists have struggled for 40 years to derive a network solution which will overcome all three of these problems simultaneously but finally the blockchain appears to have managed it. Since the blockchain is arranged on a peer-to-peer basis, messages are transmitted to a user’s immediate peers and the information disseminates quickly through the system. Thus, unless the user’s connection is faulty, condition (a) is satisfied. Condition (b) is satisfied once all other users in the system validate the proposed change to the ledger.

But before users are prepared to validate these changes, they must be sure that condition (c) is satisfied. The trick to ensuring that people send true information across the network is to make the history of all transactions publicly available and the cost of providing false information prohibitively high. In the case of our Byzantine generals, in which they are each shuttling messages back and forth between themselves, a potential traitor must be able to falsify all messages – including those in which he had no hand in writing. If we impose a constraint on the time each general has to reply to the message sent from one of the others, it becomes ever more difficult to falsify the results of communication between third parties.

In the case of Bitcoin miners, the costs of doing the number crunching in order to falsify all historical transactions is so high that there is no apparent gain from doing so. In short, if we attach a cost to sending a message and ensure that only one person can send a message at a time, the authenticity of the blockchain is guaranteed.

So far, so good. Moreover, the blockchain offers the security advantage that information does not sit merely on one system, but is distributed across many, and may thus be less susceptible to denial-of-service attacks. But it may not be immune to hacking. For example, if sufficient computing power can be corralled to gain access to more than 50% of the systems linked to the network, the integrity of the chain will be compromised. This is not believed to be possible at present, but there may come a day when the power unleashed by quantum computers is such that it can overwhelm existing networks.

There is also a question of what sort of transactions are suitable for recording on a blockchain which is increasingly used to design smart contracts. The smaller blockchains upon which they rely might be easier to circumvent than the huge public networks which underpin Bitcoin, precisely because the smaller number of participants makes it easier for parties to collude (this blog post discusses such an example). If the complex and expensive  proof-of-work algorithms can be undermined in small networks, blockchain may not offer the security benefits for private sector transactions which are often claimed. Consequently, as the Bitcoin experience demonstrates, it may be more suitable for large-scale networks (e.g. maintaining driving licence or social security records). But the bigger the network, the higher the energy costs of maintaining it – a cost which is an inevitable consequence of providing the desired level of security.

I still happen to believe that blockchain has a future. It may not be the all singing, all dancing product which its proponents believe, but it does represent a major breakthrough in computing technology. It may prove to be a solution which has not yet found the right problem to solve.