Scalability is the term used to talk about the ability of a cryptocurrency to deal with increased usage and adoption. There are fundamental bottlenecks and circumstantial limitations for cryptocurrencies that affect their ability to work as intended as they become more popular. Scalability is not a well defined, singular property of a cryptocurrency. Rather it is a broad term which covers a number of properties that together limit the cryptocurrency in ways that affect its ability to deal with increasing usage.
On Scaling Decentralized Blockchains identifies a few key metrics of cryptocurrencies that are pertinent to the scaling debate: maximum throughput, latency, bootstrap time and cost to the network per confirmed transaction.
Maximum throughput is measured in transactions per second (tps) and is found by dividing the maximum number of transactions that can be contained in a block by the block time. The maximum number of transactions that can be contained in a block depends on the block size and the size of each transaction. For example, ignoring SegWit, Bitcoin’s blocks are up to 1MB (1,000,000 bytes) in size and a simple one-input, one-output transaction is roughly 250 bytes. Thus one Bitcoin block could potentially contain 4000 transactions (because 1,000,000/250 = 4000). The average block time (the interval of time between the mining of one block and the mining of the next) for Bitcoin is 10 minutes by design. Thus, calculated using these numbers, the maximum throughput for Bitcoin is 6.7 tps. In reality, transaction sizes are usually larger than 250 bytes. This doesn’t affect the how we would calculate the maximum throughput, but it is worth bearing in mind when talking about throughput.
This is the time required for a transaction to be considered final. This will depend on both the cryptocurrency and the service or payment processor in question. For example, Bitcoin transactions can take up to 10 minutes (the block time) to be confirmed by being included in a block, but some services accept zero-confirmation transactions and others follow a 6-confirmation standard before they consider a transaction to be final.
This is the time that it takes for a new node to download the blockchain of a cryptocurrency to validate its system state and be able to participate in block production.
Cost to the network per confirmed transaction:
This is the cost of resources consumed by the entire system to confirm a single transaction. These costs are:
1) Block production cost: The cost of issuing a new block undertaken by the block producer. For example, the operational costs of Bitcoin mining.
2) Transaction validation cost: The cost of computation necessary to validate that a transaction can spend the outputs referenced by its inputs, dominated by cryptographic verifications.
3) Bandwidth cost: The cost of network resources required to receive and transmit transactions, blocks, and metadata.
4) Storage cost: The cost of storing the data associated with the cryptocurrency.
These are some of the key metrics we can use to talk usefully about the cryptocurrency scalability problem.
Problem 1: Congestion due to maximum throughput being too low
There is competition for a transaction to be included in a block when the number of new transactions is greater than the maximum throughput. This not only leads to a backlog of unconfirmed transactions, but also raises the transactions fees as higher transaction fees have a better chance of being included in a block. Thus a cryptocurrency will want to achieve the highest maximum throughput possible. On Scaling Decentralized Blockchains shows that designing maximum throughput is a balancing act: it is possible to achieve a very high maximum throughput by adjusting the block size and block time, however doing so would be at the cost of decentralization and/or security.
Smart contracts also play into this problem. The impact of smart contracts on the usability of the cryptocurrencies which have them is well documented. This is in part because they introduce a whole new series of transactions which can further congest the network in the form of gas. The above backlog can then occur if there are many popular smart contracts deployed to the same blockchain. One possible solution to this is to have the smart contracts deployed to a cryptocurrency’s sidechains, rather than to its mainchain. This will offload the heavy lifting to sidechains while leaving the mainchain free to carry out transactions.
Problem 2: Full Nodes become too large for practical blockchain applications and cost to the network per confirmed transaction grows as the cryptocurrency grows
Blockchains can become very large very quickly. Many applications of blockchain technology require the user to be operating a Full Node which has downloaded a copy of the complete blockchain. Doing so incurs costs to the user and takes time. As the blockchain grows in size, the operational and time costs to the user may become a deterrent. This is not just an issue with public chains. Blockchain as a Service applications may end up using private chains which are recording a large volume of transactions. This may make the application unwieldy and is a common criticism of the technology.
The above two problems are by no means the only ones which fall under the broader category “scaling difficulties facing cryptocurrencies”. They are probably the most common and both are relevant to content in this FAQ, which is why they have been included here.