Spotlight on: Scalability

Wednesday 25 May 2016

Scalability is maybe THE most important problem for crypto to solve. But how?

Bitcoin established the viability of trustless value transfers online. Peer-to-peer transactions with no central authority are undoubtedly possible - but only a few. The problem is, blockchains in their current form aren’t capable of sustaining the thousands of transactions-per-second (tps) that would enable them to compete with conventional systems like Visa (Visa manages an average of 2,000 tps, peaking at many times that). So, how do you scale up the volume? Here are a few approaches, though there are others.


Blockchain tech needs to scale by a factor of 100+ tps to compete effectively

1) Make bigger blocks. This is Bitcoin Core, XT and Classic’s basic approach. The whole scalability issue comes down to the fact that each block has limited space; we’re at the point where transactions are being delayed because they’re getting bumped to the next block, and the easiest way to fix that is to make bigger blocks. It’s a fairly blunt approach, since it means the blockchain will grow exponentially - and therefore so will the bandwidth and hard drive space required to run a full node, resulting in the centralisation of the network around a small number of well-resourced providers.

2) Snapshots of the blockchain state - basically the contents of every address, plus the headers for each block to ensure this information hasn’t been faked. This is the approach that will be used by WAVES’ proof-of-stake system. It has the potential to reduce the size of the blockchain by between 10 and 100 times, which is no mean feat.

3) Sidechains, or child chains, or… There are various approaches to sidechains. The proposal for Nxt 2.0, for example, includes a system of child chains, secured on the main chain. The main chain itself is super-slim, pruned of everything unnecessary, whilst the child chains can do what they want. The advantage of this is that it allows separate economies to develop, secured on the parent chain. However, it’s not scalability in the same sense as other approaches: you’re securing many different and separate blockchains on the one chain, not increasing the capacity of the main chain. Thus it enables many more tps, but as part of a series of systems, not the same one.

4) Sharding. This is something discussed in the context of Ethereum. Basically it involves splitting blockchain-space into segments (shards), by groups of addresses. Shards are then dealt with by different sets of nodes, so any given node is only handling a fraction of the blockchain. Transfers between shards are managed by special contracts. The advantage - for Ethereum - is that not every node in the network needs to execute every smart contract.

Scalability is a big deal, and we're likely to see more imaginative approaches in the coming months - because this has to be cracked for crypto to go mainstream.

comments powered by Disqus