Getting ahead of ourselves in distributed systems…

Originally posted for https://medium.com/@twobitidiot or subscribe to the daily bit http://eepurl.com/JgGy5

History has shown that the eventual application of software technology is not always how it first seemed from the onset. While some of the initial ideas around the Internet have still not materialised, many of the uses that people thought of in the early 90s have come true. The feat of Meerkat and other live streaming services seemed impossible in the early days of the Internet. Now we carry these applications around everywhere in our pockets. However, we do not go home at night and upload our brains to the internet (at least not yet). We need some framework to understand which applications of Bitcoin and blockchain technology fit in the category of outside the realm of possibility and some that become ubiquitous.

This week I have blogged about some of the macro drivers behind Bitcoin’s success. I chose these domains on the basis that these are the areas of true innovation for Bitcoin. Bitcoin has created a bootstrapped ecosystem with a currency unit that is only referenced inside the Bitcoin network. Its distribution model combined with its security model has created the necessary conditions for people to believe that the token has scarcity and subjective value. The economics that sustain the network is one of the first computer science systems that critically must be modeled as an economic system. The functioning of the network is reliant on anonymous parties consenting to behave in the best interests of the rest of the participants. The participants themselves for the first time are going to need to secure their own digital assets and have learnt the hard way about the difficulty of this problem. Fortunately, there has been much progress in the shortcomings of the technology and real world applications are starting to emerge.

However progress is slow, companies that took to Bitcoin and have been disappointed with the slow growth have started to look back at existing industries to find inefficiencies that can be ameliorated with the help of a blockchain. Others, have taken various macro themes, like the ones discussed this week to develop new products based on cryptography or consensus that do not need tokens, currencies or blockchains. Will they succeed in their endeavours?

The answer to this is a combination of luck and design. However, taking stock of the nature of Bitcoin’s blockchain and information storage mechanism is crucial in understanding its applicability. The key problem that Bitcoin’s proof of work solves is Sybil attacks. New nodes entering the network can independently verify which is the chain with the most valid proof of work and select it as the correct chain (the same is not true for proof of stake). Use cases which require the timely settlement of account balances, need ordered transactions and require infrastructure to be plug and play may be well off on a proof of work blockchain. However, these are not problems that banks or other major companies have. Most of the time they need to know the participants or know someone who knows the participants. There are some applications where there are many parties that may need to trade and don’t necessarily need to know the identity of who they are trading with. The latter problems have been discussed extensively in the distributed systems literatures and many solutions do exist. Would invite more discussion around multi-party computation and decentralised systems, but in the meantime lets pause and reflect, lest we take a hammer and go looking for a nail.