This article is the first in a series of blog posts that investigate and describe a unified blockchain protocol. Such a protocol should be reusable for all different kinds of blockchains. The underlying assumption is that such a shared protocol exists and that a “standardization” simplifies the creation of new, domain-specific, blockchains, without the need to reproduce each time the low-level design and implementation part.
The blog series starts with an introduction why a blockchain protocol is needed and gives a first overview about the two conceptual parts, the low- and high-level protocol. The two consecutive posts describe them in more detail. After the theoretical specification a new post introduces the reference implementation, implemented in the a related blockchain software framework. In the last post the framework is described.
- Introduction: Introduces the idea and outlines the structure.
- Low-Level Protocol: Node to node communication and message format.
- High-Level Protocol: Blockchain overlay network management and blockchain data exchange strategy.
- Implementation: Reference implementation in the blockchain software framework.
- Software Framework: The shortly introduced framework, as described in the previous post, is explained in more detail.
The need for such a Protocol
The internet would not be such a big success without the underlying protocol stack, also known as OSI model. This protocol stack allows communication between hosts across geographical regions, organizations and domains, without the need to negotiate each time the communication means. It makes the internet as we know it possible. With this analogy in mind we can see the blockchain protocol as extension to the current OSI layer. The new layer adds economic and social value exchange to the mix. The main purpose is to have an unified, but not limiting, protocol that allows the development of blockchain applications, the same way as web application are developed today. The main driving factors to standardize the protocol is interoperability between participating nodes, and that across all kind of blockchains, and simplicity for the development of new blockchains, without the need to reproduce low level and generic implementations.
Where does it fit in?
The following image shows the two types of protocols on top of the OSI model. The lowest level, the Blockchain Message Exchange,is similar to TCP. It specifies a handshake logic to agree on the right protocol and assures compatibility between nodes. It further specifies and serializes the binary packages that are send over the wire. This protocol could be part of the operating system or any lower level implementation, e.g. hidden in a library.
The next layer, on top, is the Blockchain Overlay Network. It contains higher level functionality, like discovery of new and management of overlay networks related to blockchains. This layer abstract away from the underlying blockchain management and allows to manage multiple blockchains at the same time. This part will be most likely designed as middleware, with a clear interface for the development of new blockchains.
In this article the idea to abstract away from the underlying implementation and make blockchains more interoperable, but also simpler to develop, was introduced. In the next few blog posts this idea is described in more detail.
The main purpose of this series is to trigger a discussion and propose solutions.