Friday, January 5, 2018

Blockchain: What Are the Fundamentals?

I enjoyed reading the article: “2018's Resolution? Revisit Blockchain's Fundamentals” by William Mougayar on Coindesk.
The author warns us that when a new technology comes along, we are often too eager to quickly implement some of the pieces we need, without a vision and an understanding of the full potential of the technology.
We have seen this happen in part with the Internet. It was quickly adopted, even though many designers at the time could already see the lack of those security features that had to be added almost as an afterthought. The whole world still suffers the consequences of the lack of a well designed security architecture for the Internet.
We are now facing similar design choices with the blockchain technology.
As a coach warning us to “stick to the fundamentals”, the author lists some of what he considers the blockchain fundamental innovations, or “fundamental outcomes”.
But are we sure we understand what the blockchain fundamental blocks are?
For example, the first fundamental in his list is “replacing intermediaries”. This objective is definitely important, for applications running on unpermissioned (or public) crypto-networks.
I agree with the author. But the designers and investors of Ripple and Hypercom could argue otherwise. It depends on what the target applications are.
We do not really know what problems future applications will need to solve.
Looking at the following “fundamentals” in the author’s list, his suggestions seem to be somehow limited to the current state of the art.
By looking at what we currently understand as innovations, we risk, as the author says “copying what we already see instead of inventing what we don’t discern yet”, that is, we may miss the full potential of blockchain technology.
For example, we cannot limit our thinking to today’s smart contracts running on today’s crypto-networks as the only engine to run blockchain applications.
If we do so, we may miss 97% of future general distributed applications that will use the blockchain, but will run on different engines, off-the-blockchain.
If we want to create an environment able to support the distributed application of the future, without knowing what they will be, we may need not just a better engine, but a multitude of better engines.
The ability for general distributed applications to use the blockchain functionality without having to run a smart contract on-the-blockchain is a top requirement on my list.
Millions of concurrent distributed applications will need to process and securely exchange many terabytes of information per second among identifiable, unique parties.
Current crypto-networks do not begin to solve the problem. Public crypto-networks do not even contemplate the problem of identifying who the users are: people, IoT objects, vehicles, autonomous robots or something else.
We could describe many characteristics of the blockchain and things that we will be able to do using the blockchain, but we would never finish: any imaginable distributed application should be able to use the blockchain, just as today any App on a cell phone can use the cell phone communication ability.
So what are the fundamentals?
Is the ability of the blockchain to support communication between a person and IoT objects a fundamental?
Is the ability of the blockchain to support Virtual Private Blockchains a fundamental?
Is the ability for autonomous robots to trade assets using their personal accounts a fundamental?
The fundamentals are not what future blockchain applications will do, but what these applications will not do.
We can use the following analogy: An iOS allows the development of Apps without these having to solve the problems of memory management, or using storage commitment techniques, or even be dependent on the CPU instruction set.
In a similar way, a Distributed Operating Environment (DOE) for the blockchain will allow the development of General Distributed Applications (GApps) without these having to solve the basic problems of communication, addressability and unique identification, replication of data, and security.
These seem to be the main requiements of any distributed application. How much easier would it be, for example, to design an airline reservation system if the DOE already solved for us the problems of system security, verification of the passenger identity, and ticket purchase transaction? How faster would the check-in and boarding processes be for the public?
The blockchain technology has been rightfully compared to the introduction of communication technology. Mostly this is because they complement each other.
With the Internet we have solved the problem of communication among any two parties. Now, with first-generation crypto-networks, how close are we to a DOE for general distributed applications?
Which fundamental blocks are still missing?


Our efforts should concentrate in establishing at least these fundamental blocks by developing second-generation crypto-networks, that will create a DOE for future distributed applications.
The longer term goal for application designers is to solve any OTHER imaginable problem, easily and transparently.
A DOE that proves those fundamental blocks will truly add value to what started as a distributed ledger for financial transactions.
Future generation crypto-networks will go even further in doing what future applications will not need to do.



Giuseppe Gori is the designer and CEO of Gorbyte, a new-generation crypto-network that uses a cooperative consensus mechanism replacing miners/verifiers. He has over thirty years experience in the design and development of computer networks.