Scalability has undoubtedly been the topic at the forefront of decentralised ledger design throughout 2018 with rates of thousands, tens of thousands and even millions of transactions per second (TPS) claimed by many of the projects slated for launch over the coming year. Even on established platforms, such as Bitcoin, the typical demand for transactions falls well below the upper end of this range, so the novel ledger designs have at best been operating under test conditions. It remains to be seen how successful they will be in supporting huge transaction volumes while maintaining security and keeping costs low. The prize for solving these technical challenges is a slice of the future multi-trillion-dollar market in powering the machine-to-machine economy, which is the target of the system under development at Fetch.AI.
In the decentralised world envisaged by Fetch, every network-enabled device is controlled by an Autonomous Economic Agent (AEA) that facilitates communication and financial exchange. The Fetch ecosystem enables agents to collaborate with each other to find bottom-up solutions to supply-chain optimisation, energy markets or digital health, to name a few examples. This places certain demands on the ledger, which must scale to accommodate millions of transactions while still delivering rapid and consistent confirmation times. Another key requirement is an expressive and low cost smart contract system. In this article we provide an accessible introduction to the scalable ledger. Additional details can be found in our technical white paper.
When we consider the prototypical blockchain structure (see Figure 1) there are several points that could act as potential bottlenecks:
Figure 1 In a typical blockchain, each block is proposed by one node in the decentralised network. This block is broadcast to other nodes, which decide whether to add it to their local representation of the blockchain. If all of the local representations of the blockchain are identical this constitutes a global state.
· Block Synchronisation Latency in broadcasting mined blocks across the network. Increasing the rate at which blocks are produced or their size might increase throughput but at the cost of reduced security.
· Memory/Storage Maintaining a complete record of the blockchain becomes expensive for participating nodes.
· Contract Execution The time required to execute transactions could act as a bottleneck on ledgers with complex smart contract languages and large state databases.
A simple solution to the scalability issue is to simply duplicate the blockchain so that network traffic and execution is divided between multiple independent chains. This process can be repeated multiple times to scale the network to a theoretically infinite number of TPS (see Figure 2). However, this leads to a second problem of how to enable transactions between the different chains.
Figure 2 Duplicating a typical blockchain including the peer-to-peer network leads to a doubling of the transaction throughput.
St. John's Innovation Centre,