recent posts

Why so Delirious about Blockchain? - A Technical View


Why so Delirious about Blockchain? - A Technical View



Over a billion dollars were invested in blockchain startups in 2016. For the first time, in Q1 2016, investment in blockchain-related startups overtook investment in Bitcoin-related startups. From blogs and videos to private board room discussions, blockchain is leaving its mark everywhere. Its impact is expected to go far beyond just the financial industry, to industries as wide ranging as logistics, healthcare and digital rights management, among others. Why is it such a big deal?





As a high school kid, trying to figure out what computer science really was and whether I wanted to study it, I went around asking my seniors and teachers about it. One person told me it was about electronics and machines, while another person told me it was about how information is stored and retrieved. A third opinion told me it was about automated processing and yet another savant told me it was all just mathematics and algorithms. It wasn't until much later that I realized that it wasn't just about any one of these things, but its really the collection of ideas that makes it revolutionary. I'll endeavor to argue in this article that blockchain is revolutionary in much the same way.

Such confluence of ideas, or inter-disciplinary research, is increasingly becoming the norm for how scientists and technologists are unearthing fundamental breakthroughs. The traditional divisions between biology, chemistry and physics are already becoming blurry with fields such as bio-chemistry, bio-physics, genomics, and nanotechnology becoming among the most sought after undergraduate programs of study. Cognitive science, computational linguistics, and neuroscience bring human anatomy, psychology, physiology, and computer science together. Robotics, artificial intelligence and Internet of Things (IoT) bridge the physical and the virtual worlds. We created disciplines in an attempt to organize the world's knowledge, and now rather paradoxically, we are going around breaking those artificial boundaries.
What is Blockchain?

Blockchain is an emerging platform for executing transactional services spanning multiple organizations or individuals who may not trust one another. It is an append-only, shared ledger of digitally signed and encrypted transactions that is replicated across a network of peer nodes. Cryptographic security is used to ensure that participants can only view information on the ledger that they are authorized to see. The replicas of the shared ledger across the peer network are maintained in sync by running a coordination protocol called aconsensus algorithm. Transactions are committed onto the ledger only after consensus is reached, and once committed it can never be changed by any of the nodes unilaterally, i.e., participants cannot alter history or deny past transactions.

Apart from enabling sharing of data across organizations in a secure manner, another fascinating capability of blockchain that is gaining popularity, is the ability to execute business process logic or smart contracts as part of transactions. This enables automation of business processes that transcend organizational boundaries in a secure and decentralized manner, that isn't possible otherwise.




The origin of blockchain is typically credited to Bitcoin, the peer-to-peer cryptocurrency exchange system brought into existence in 2008. Many bloggers write of Bitcoin as some otherworldly intervention that left the technology world with a gift that they were completely unprepared for. This is far from the truth. Bitcoin merely popularized the idea, with what one might call an ingenious use case. There were several threads of work in distributed computing, security, smart contracts and economics over the '90s and '00s that lead to maturing the concept of blockchain. It then took a touch of genius from the author(s) of Bitcoin, to expand on those ideas and put them together to solve a cool use case. The Bitcoin whitepaper in 2008, in fact, makes no reference to the word 'blockchain' (although it talks about chains of transactions). Wikipedia credits the term 'blockchain' to a piece of security literature dating as far back as 1976.

Securing Records Cryptographically


While the need for securing or encrypting information dates back to the early human civilizations, it was really World War II that spurred serious mathematical study in the area. Cryptography has since matured to a significant extent over the last 50 years. Somewhere between 1970s and 1990s, security researchers realized that if we chained records together, such that a fingerprint of a previous record was inserted into the next record, this made it mathematically very hard to alter or tamper with past records. There were many flavors of such chaining of records that were proposed over the years and the term 'blockchain' was coined. This was still all being done by one entity trying to secure their records and was not done in a decentralized network setting.
The Notion of Distributed Consensus

With the growing popularity of the Internet and networking in general in the '90s, scientists were exploring the problem of ensuring that different nodes in the network see the same data at nearly the same point in time. In other words, all nodes in the network need to agree or consent on a regular basis, that the data stored by them is the same. This property has obvious benefits allowing distributed decision making, not having a single point of failure, and the ability to provide service even if certain nodes in the network have failed. There was a large body of work that looked at this problem from various lenses including supporting different failure models, different network sizes and topologies, and various metrics for optimization.

Out of the thousands of research papers written in this space, a thread of work emerged that deserves attention. All the work until then was looking at closed-network settings, where all participants in the network knew all other participants and were connected with them. Consensus was typically achieved by exchanging messages among all the nodes in a manner orchestrated by the consensus protocol. Then the question emerged, can we achieve consensus even when the network was arbitrarily large and no participant in the network really knew all other participants? This open-network scenario meant protocols that depended on orchestrated message passing to reach consensus were no longer feasible. An alternate thread of work on challenge-response systems then came to the rescue.
Challenge-Response Systems

It was the height of the Internet era. Web services and startups were springing up like mushrooms after the rain. Hackers were trying to bring websites down by simply bombarding them with requests as a form of denial of service attack. Web services in turn resorted to challenge-response mechanisms. They posed a problem that would take a certain amount of computational power to solve, and only upon solving the problem would the web request be entertained (for instance, CAPTCHA is a challenge-response intended to keep bots out completely, but here we want to allow legitimate bots access by giving them a math challenge that would take some computation power to solve). This proved a simple and effective way to keep hackers and bots from bringing the service down with excessive requests (challenge-response systems have been used in other contexts as well, but the above example is easy to understand).

Now, back to our problem of reaching consensus in a large open network, without having to exchange messages with everyone else. The network would pose a challenge and each node in the network would attempt to solve the challenge. The node that is able to solve the challenge first, would get to dictate what the next set of data or state elements to be added should be. This would continue iteratively, and probability suggests that different nodes will win the challenge in each round, ensuring that no one node controls the network. Of course, theory and algorithms for such techniques followed.
Proof of Work Algorithms

There was still a problem though. How does a node prove to other nodes in the network that it has indeed correctly solved the challenge? This meant that the challenge should be difficult to solve, but once a solution is found, it should be easy for other nodes in the network to verify. Cryptographic challenges with the above property were used. This lead to what were called 'Proof of Work' algorithms. Nodes that are solving the challenge need to prove to the network that they have done the work to solve the challenge. There are other issues such as what happens if two or mode nodes in the network solve the problem at the same time? Clearly the challenge needs to be sufficiently hard to minimize the chance that this happens. So, larger the network, the harder the challenge needs to be. Despite this, there needs to be protocol protections for when multiple nodes solve the challenge simultaneously, but all that is mathematical detail. Bitcoin was not the first to device a proof-of-work algorithm. In fact, it refers to and leverages and applies it to ensure that all nodes in the network have an identical replica of the cryptographically chained record of transactions at all times.

But, hold on, why do we need consensus in such large open networks? What is the incentive for nodes to spend large amounts of computational power to solve a mathematical challenge in each iteration of consensus? There was another trend that would provide the answer.
Digital Currency and Economics

Yet another off-shoot of the Internet boom in the early and mid '90s, was that economists and bankers were figuring out various limitations of physical cash and book-keeping on paper. Digital banking and payments became a reality. Apart from the many operational efficiencies it offered, it also provided more levers for controlling monetary policy. Governments and central banks could monitor the flow of money more closely and enforce regulations easier than they could with physical money transactions.

.. All Served with a Touch of Philosophy


On the sidelines of this digital money proliferation were a set of philosophers and mathematicians who questioned why the entire financial ecosystem should be controlled by a central entity and a set of banks we need to trust. After all, banks fail all the time and governments spend even more money trying to bail them out. They envisioned a completely decentralized financial system where end users could transfer money without central trusted agencies. In 1998, Wei Dai published a description of an anonymous distributed electronic cash system called 'b-money' (cited by the Bitcoin whitepaper). This arguably laid the seed for what would later be called as cryptocurrency, although the system to actually bring this vision to reality would take another 10 years and a lot of other technical ideas to mature and be brought together by Bitcoin in 2008.

Hopefully, all this is starting to make sense now. Bitcoin targeted a completely decentralized currency exchange mechanism without any central agencies controlling the network. The paper ledgers of transactions that banks maintained were replaced by digital ledgers that were replicated across all the nodes in the network. The decentralized management and updates to these ledgers was achieved through consensus among a very large number of nodes, such that no node has the power to sabotage the network and gain control. The computational effort expended by the nodes in achieving consensus would be paid for by cryptocurrency generated and managed by the network. Finally, crypto-security ensured that the currency balances and transfers were managed in a secure and tamper-proof manner.

Making Contracts Smart


Contractual obligations between entities today are typically specified in natural language legal prose (e.g., I will ship X kgs of mangoes to you, if you will pay $Y). The systems that implement on the contract are typically distinct from the specification (e.g., the logistics of how I will ship X kgs of mangoes to you, and how you will pay $Y to me). Nick Szabo argued that this separation of the specification from the execution or implementation leads to a lot of disputes and fraud (e.g., you may claim that you agreed to pay me, but only after 3 months). He coined the term smart contracts in an article by the same title in 1994, and in that and subsequent writings proposed that the contract specification should be autonomous and self-executing, in a manner that no entity participating in the contract should be able to prevent execution or alter the course of execution of the contract once agreed upon (the above is my own interpretation of his writings and not his exact words).

Clearly at that time, there was no means to realize such a vision. But, with the emergence of blockchain as a decentralized platform for transactional services, there has been a renewed interest in smart contracts. Contractual obligations can be specified as a business process codified as a smart contract, and the agreement is deployed on a blockchain network. As no one entity controls the blockchain network, the smart contract can execute autonomously as per the terms specified (e.g., once I provide proof that I have delivered X kgs of mangoes to you, the network will ensure that $Y will automatically be transferred to me and you will not be able to deny payment to me). Of course, in a fully unregulated or permissionless setting, the blockchain network will need to control all the assets alluded to in the contract (and hence difficult to extend to physical assets). But, in a permissioned and regulated setting, the network can carry sufficient undeniable proof of contract agreement and execution to significantly reduce the incidence of disputes or reduce the time needed to settle them.
A Rationalization of Concepts

Over the last few years, experts have recognized that the concepts leveraged by Bitcoin, what is popularly called as 'blockchain' today, can actually be applied to a wide variety of enterprise use cases beyond just cryptocurrency. The underlying notions of consensus, security and distributed replicated ledgers that constitute the blockchain, can be applied to even closed or permissioned-network settings - after all, most enterprise use cases only involve a few tens to a few hundreds of known participants. This permissioned blockchain model, infact offers the ability to leverage 30+ years of technical literature to realize other significant benefits including stricter notions of security and privacy, greater transactional throughput and the ability to execute smart contracts. Hyperledger Fabric is such a permissioned blockchain system, managed as open source under the aegis of the Linux Foundation, and is the fastest growing Linux Foundation project ever.
Why so Delirious about Blockchain? - A Technical View Why so Delirious about Blockchain? - A Technical View Reviewed by Blogger on October 31, 2018 Rating: 5

No comments:

Recent Posts

Useful Content

Powered by Blogger.