/Blockchain Series #1: About Byzantine Generals

Blockchain Series #1: About Byzantine Generals

Welcome to the first epsiode of our series on blockchain. After the hype around Bitcoin and other cryptocurrencies has gradually come to an end, the technology behind one of the greatest innovations in recent finance history attracts growing attention in various industries. Against prevalent thinking, blockchain’s application areas reach far beyond cryptocurrencies and the financial sector. From IoT applications for manufacturers to disrupting the public sector through distributed land registries, blockchain is said to change a large number of industries. The Australian stock exchange will operate stocktrading on a blockchain-based system, energy suppliers and governments (e.g. Chile) will utilize the technology to distribute energy more efficiently and car manufacturer Audi expects process improvements in its supply chain through leveraging blockchain technology. Although the list could be continued at will, we kindly refer to more elaborate examples that will come along throughout the upcoming episodes. The series is meant to give the interested reader a comprehensive introduction into the technology (without dealing too much with its technical intricacies), thereby providing the reader with a deep understanding of the potential that the technology yields and enabling him or her to draw the right conclusions for the potential impact on their industry. So lets jump right into it.

The fundamental achievement of the blockchain can be illustrated best by stating the problem it is said to solve. This problem, a very fundamental one in computer science, is commonly referred to as the The Byzantine Generals Problem. The problem is exemplified by a scenario where several divisions of the Byzantine Army are camped outside an enemy castle, each division with its own general. In order to conquer the castle, they have to decide upon a common plan of action, attack or retreat. This requires coordination, since the army factions are dispersed and only a simultaneous attack will lead to a victory. However, the only way of communication is through a messenger and some of the generals might be traitors, trying to prevent the loyal generals from reaching an agreement. The problem in this scenario is to find a solution which ensures that the loyal generals come to a common agreement, regardless of the behavior of the traitors.  

Although this analogy might seem a bit odd in the first place, it can be easily attributed to computer science. Mapping the story above onto computer systems, the Byzantine generals represent computers and their digital communication system links are the messengers. For a computer system to work reliably, it must be able to cope with the failure of one or more of its components, just like the above decision-making must be resistant against manipulation from disloyal generals. A failed component may exhibit byzantine, i.e. arbitrary behavior, – for example, sending conflicting information to different parts of the system. In the above scenario, for instance, this would be the traitor trying to sabotage the attack by disseminating inconsistent information. The aim is to find a solution that provides robustness against byzantine behavior, be it a traitor trying to corrupt a common attacking strategy or whatever imaginable part of a computer system that could cause the system to fail. 

There are various opinions about how this problem should be approached. In the Byzantine example one might suggest finding an objective, incorruptible general that coordinates the decision-making process. It seems like a reasonable solution to interpose an intermediary that ensures secure, error-free communication within a system. In fact, computer systems, in particular the internet, rely heavily on parties that coordinate interaction. Coordinating individual activities over distributed systems always required some sort of centralized body ensuring that no one has tampered with the data in circulation. No viable solution has been offered before, how unrelated parties could reach consensus that an event had occurred without relying on a central authority to ensure that this particular transaction was not corrupted or invalid.  

This is where blockchain comes into play. The technology offers a solution to this problem by providing a protocol to create distributed consensus throughout a network. The blockchain protocol is able to ensure that every transaction in a certain database is valid, allowing participants to coordinate their individual transactions in a decentralized manner without having to rely on a trusted institution. The following issues will step by step introduce the technical concepts that form the basis of such a “decentralized, trustless system”.