The advent of blockchain technology has resulted in a wide array of blockchain applications in a variety of different industry sectors worldwide. Blockchain growth continues to march forward exponentially offering numerous innovative and limitless solutions. However, this does not come without its challenges, as the many blockchains continue to grow and expand. This in turn is coupled with the enormous growth in users and subsequently results in scalability issues, and transaction latency problems.
Scalability in this context can be defined as the platform or system’s ability to manage and support an increasing amount or quantity of tasks, namely an increasing amount of transactions together with an increasing amount of nodes in the network. Generally, blockchain networks suffer from low scalability. In the blockchain world, this mostly refers to the transaction throughput, bootstrap time, latency, and even the cost of the actual transaction. As is well known, the costs when executing crypto transactions can vary greatly with certain networks, however, from a high-level perspective these costs can be attributed to various factors, including the frequency and processing of large quantities of transactions. A blockchain network can be classed as scalable when it is able to adequately handle a high volume of transactions per second (TPS), usually by the adjustment of certain system characteristics such as its consensus mechanism.
As growth in blockchain networks continues to increase exponentially, this naturally results in an ever-increasing number of nodes within the blockchain networks. This in turn raises the issue of scalability. This tends to result in the transaction processing slowing down, and often increases the transaction costs, whilst restricting additional users from joining the network. As the number of nodes increases, this subsequently results in an increase in transaction times, as it takes longer to process the transactions and reach consensus. Hence, this causes degradation of the overall performance.
Probably one of the best comparisons to make here to highlight the scalability issues would be to consider the number of transactions processed in the Bitcoin network, which currently runs to around 7 transactions per second. If we compare this to the well-known Visa card processing system, the number of transactions processed every second is around 17,000.
Various factors define blockchain scalability, and generally speaking these consist of networking, capacity, and throughput. With regard to networking, every type of transaction that occurs is transmitted to all nodes residing in the network. This can consume a vast amount of network resources coupled with increasing propagation delays. Secondly, the capacity and cost also factor into this equation, as storing large quantities of data is a key requirement here.
As mentioned above, in order to achieve scalability there are various challenges to be overcome. To highlight these problems often regarded as bottlenecks, it is evident that the main issues consist of the following points:
This is one of the key issues with regard to scalability, as the block size significantly impacts the network capacity and speed. There is a size limit for each block created which is known as the block limit. As we have previously learned, blocks contain both actual data together with the transaction data. For example, Bitcoin has a block limit of 1Mb. The logic behind setting this limit was to prevent the miners from creating blocks that would be considered too large for other miners to accept. However, limiting the block size results in reducing the transaction speed. This in turn limits the speed of transactions being validated, hence slowing down the entire process in the blockchain network. In addition, increasing the block size also has an impact, as this requires an increase in the node’s storage capacity. Furthermore, if a node is required to upload a substantially large block into the network, this can cause delays in processing the transfer and could cause a loss of synchronization resulting in temporary chain splits.
As in all blockchain networks, each transaction has to be validated as described on the How blockchain works page. Naturally, as the transaction volumes increase, this, in turn, increases the load on the network, and transactions are queued, which subsequently slows the process down. In addition, this can also result in transaction fees increasing.
TPS (Transactions per second)
The TPS (transactions per second), rates are directly related to the response times as described above, as managing the load and transaction speeds are intertwined, hence, these are two of the key challenges to be overcome. However, in the Lisk ecosystem, the TPS is actually improved due to the Lisk interoperability solution. This is covered further in the Scalability in Lisk section below.
As the blockchain grows more and more transactions have to be processed. Therefore it is important to take into account the increasing block sizes, as this can result in overloading the network. In addition, this can also be further compounded by the existing hardware limitations of many of the nodes, whereby they are simply unable to handle the vast quantities of data and bandwidth requirements.
As the scalability issue is always at the forefront of efficiently managing blockchain networks, it is important to familiarize ourselves with the key issues here. This can be characterized by referring to the blockchain network’s ability to handle the continuing growth, ensuring the security is not compromised in any way, shape, or form, whilst continuing to maintain the node synchronization, transparency, and fairness together in a fully functional decentralized network. Ultimately, achieving this results in a trade-off, as depicted in the scalability trilemma diagram below.
The scaling trilemma is classed as somewhat of a loose concept, implying that there is a trade-off between these three key components here, namely decentralization, security, and scalability. Therefore, it is always a challenge to maximize the other two components without compromising the third, as can be seen in the following diagram below. In this hypothetical example, if we were to improve scalability this requires compromising on decentralization and security. However, it should be noted that as decentralization is a constant, a proportional relationship between scalability and security exists. Hence, it is evident that a blockchain network is unable to optimize scalability, decentralization, and security simultaneously. As a result, we have to accept trade-offs.
There are various methods that can be used to address the blockchain scalability problem, such as layer 1 and layer 2 solutions, scalable consensus methods, and DAGs (Directed Acyclic Graph). These are covered in more detail in this section.
Firstly, to improve the attributes and properties of the blockchain network Layer 1 solutions can be adapted to address such issues as reducing the block verification time or increasing the block size limit. From a layer 1 perspective, other options consist of Sharding, Segregated Witness (SEGWIT), and Directed Acrylic Graph (DAG), as described below.
Sharding is relatively well known these days, and functions by creating ‘shards’ which are small manageable chunks of the network, which are the result of breaking down the blockchain network into smaller sections or chunks. These chunks of the network are then executed in parallel with one another. This in turn increases the network’s processing output, as each shard is responsible for handling a portion of the network’s transaction processing tasks. In essence, this is dividing the network into smaller parts increasing manageability. The beauty of this is that to achieve faster and more efficient transaction throughput, there is no need to rely on the performance of individual nodes anymore. Some of the blockchain projects currently deploying sharding are Ethereum 2.0, Polkadot, Zilliqa, Near, and Elrond. See blockchain sharding for more information.
SEGWIT (Segregated Witness), is also a first layer option to increase blockchain scalability and is generally more prominent regarding Bitcoin and Litecoin. In essence, it is an improvement enhancement that reduces the size of storing transactions in a block. Basically, as the digital signature utilizes a high proportion of the total available space in a transaction, it reduces the size, resulting in increased storage space and capacity for transactions.
Directed Acrylic Graph (DAG)
DAG is a unique methodology that is built on the concept of an intertwined network of parallel nodes and blocks, whereby each block contains a transaction with more than one parent root. This type of structure has proven to scale well and has the added advantage of virtually no limits. As the network grows and more transactions are performed, utilizing parallelization results in the network becoming both faster, coupled with a greater level of security. From a consensus perspective, when contrasting DAG to other well-known mechanisms such as PoW or PoS, whereby the basis is having several users competing to add the next block, with DAG a profoundly different structure exists that enables them to function synchronically adding transactions almost simultaneously. However, certain disadvantages and trade-offs exist when using DAG. It requires a high volume of traffic for it to function, and any decrease in traffic can increase the network’s vulnerability to attacks. In addition, it is known to suffer from transaction propagation latency and an accumulation of unconfirmed transactions. Nevertheless, Fantom, Byteball, and NANO are some of the major projects currently implementing DAG, although, IOTA is probably the most commonly known DAG. Their DAG named Tangle, completely removes miners from the verification process, as in order to broadcast each transaction, two previous transactions have to be validated first before the transaction can be processed. This in turn increases decentralization as it requires that all of the users have to reach consensus.
To summarise, DAG’s fundamentally new design concept has the ability to address the scalability issues specifically with regard to large networks that require the transfer of high volume data rates at speed without compromising security.
Off-chain scaling solutions have now become another option to solve the scalability issues resulting from various studies performed, which are not so heavily dependent on actual changes or modifications to the mainchain. The crux of this is based on layer 2, whereby additional supplementary protocols are actually installed on top of the blockchain. The role of these second layer protocols is to ‘offload’ transactions from the mainchain. For example, these would consist of off-side chains and state channels. The benefits here consist of reducing network congestion problems and also resolving storage issues.
A sidechain operates as a separate transactional chain alongside the mainchain and can be invaluable when large batch transactions are required to be processed, hence resulting in reducing the load. Sidechains can also utilize different consensus techniques as compared to the mainchain. In fact this approach is used by Lisk in order to improve scalability, as a Lisk sidechain can be adapted specifically for a blockchain app use-case.
With regard to off-chain transaction channels and blockchain networks, state channels offer the possibility to enable two-way communication between them. Naturally, this results in substantially increasing the transaction speed as well as increasing the capacity. State channels can be considered as resources that operate next to the mainchain, and are integrated using a multi-signature method or a smart contract. The process works whereby when transactions are executed, the mainchain is able to record the end state of the actual channel, together with any other associated transactions. Some of the blockchain projects currently using state channels are Raiden, Trinity, Perun, and the Lightning Network. For more information on this topic, see state channels.
The Lightning Network is also a well-known system for tackling scalability. It is basically a transaction mechanism that can be utilized between users. It functions by using an off-chain approach, whereby participants complete transactions to open and close channels. This can be accomplished by using smart contracts via private off-chain channels over the mainchain. In addition, the benefits include increasing the speed of the transactions, coupled with lower costs, mostly by moving the transactions away from the mainchain, whilst also reducing the load.
Plasma is another potential scalability solution, and functions by utilizing child chains that start with the parent blockchain. This methodology works by having each separate child chain function as a separate blockchain. As a result, Plasma can be highly beneficial whereby certain types of transactions are occurring, which may be required to deploy and execute specific use cases. Plasma has proven abilities in assuring transaction execution is managed efficiently, and also has the added extra bonus of enhanced security.
Briefly, the Plasma structure is designed in a manner whereby it is built through the use of Merkle trees and smart contracts, enabling the creation of an unlimited number of child chains. Each chain works singularly and ensures the different requirements are fulfilled by operating and coexisting independently. Additional chains can be created on top of each child chain, resulting in a tree-like structure. As there are 4 main versions of the Plasma model, which results in different variants, the transaction process is not described in detail in this section. For more information, see Plasma’s description on the Glossary page.
Lisk is currently well-placed in this regard, firstly by its interoperability solution that allows each application to run on its own sidechain. By deploying the cross-chain certification methodology, this results in an efficient and scalable solution for transferring information between chains. In effect, being able to run each application on a separate sidechain results in significantly increasing scalability. For further information, see the cross-chain communication page.
Secondly, scalability is further increased by the use of the PoS consensus mechanism as explained in more detail on the How blockchain works page. Basically, PoS is a much more efficient consensus mechanism from a network scalability viewpoint as compared to PoW. In addition, PoS does not demand vast power requirements either. Furthermore, Lisk deploys deterministic block processing which in turn increases scalability further. PoS also possesses further key benefits of being a highly decentralized and efficient consensus mechanism, coupled with having fast transactions, faster node restart times, reduced block production times, and a high level of security, ensuring it is well placed for any Web3-based projects. In addition, a limited amount of block processors are chosen based on their stake in the blockchain, making the throughput much greater and faster.
The PoS used by Lisk is more of a middle ground between PoS and DPoS.
The DPoS-related characteristic is the ability of users to register as validators and then receive stakes from other users, in order to increase their validator weight.
The PoS-related characteristic is the requirement for validators to self-stake a certain amount of tokens, in order to increase their validator weight. Another PoS characteristic is the mechanism for the selection of the two random standby validators, who are selected every block generation round. The higher the validator’s weight, the higher the chance to be selected in one of the two random spots available for standby validators.
Furthermore, with Lisk SDK v6 an additional consensus mechanism, Proof of Authority, (PoA) will also be supported, therefore the user will be able to choose between PoA and PoS. With PoA no consensus tokens are required, therefore it is possible to deploy a PoA sidechain that solely uses the Lisk token. This results in increasing the node’s performance, resulting in a more simple and efficient system as it requires fewer message exchanges and less overhead. Finally, resulting in an additional positive effect on scaling for the Lisk ecosystem. Further information can be found here in the following Lisk blog post: PoA Consensus for Sidechains.
To summarise, Lisk is well positioned in this regard, as having the ability to be able to run applications independently on separate sidechains, results in reducing the load on the mainchain, therefore increasing the overall scalability of the network. Furthermore, by offering the user the choice of either being able to use the efficient PoS consensus mechanism or the more simplified PoA consensus mechanism, now introduced with the Lisk SDK v6, also enables scalability to be effectively increased.
To conclude this section, the ongoing quest continues to further enhance and improve scalability, which remains constantly in the spotlight. Therefore, it is predicted that achieving ultimate scalability on all fronts will require a combination of many different solutions. Research and development towards new approaches are ongoing, and currently, constitutive scalability solutions are being studied, which do not require additional layers, whereby the immutability for all transactions is certified within the constitutive protocol itself. Therefore, it is inevitable that further improvements in blockchain scalability will come to fruition in the near future.