A common question in the crypto space is, “how many TPS can any given blockchain handle?”. Referring to “transactions per second”, this question is second only to “when will blockchain break the mainstream” (that is a whole other blog in itself).
Although it is a crucial figure for comparing blockchains, it is also a term which leads to a lot of confusion about how a blockchain works. The hype and frenzy surrounding high TPS figures has led some blockchain companies to make outlandish claims. The knock on effect is, many users have become incredibly focussed on quantity, without consideration for how TPS works.
CALCULATING TRANSACTIONS PER SECOND
Transactions per second can be compared to the indicator “query throughput” as known in the performance tests of databases. It indicates how many transactions can be handled on a blockchain, although it is important to note that this number is purely theoretical.
It is calculated by knowing the block time, the average transaction size, and the block size. For example, a block size of 1 MB, an average tx size of 1 kb, and a block time of 30 seconds would equate to a theoretical TPS of 33 ((1000/1)/30=33). By using this formula, the maximum TPS of the Rebellious chain can also be calculated.
With a block time of 30 seconds, the smallest transaction only costing 0.229 kB, and a block size of 6 MB, a theoretical maximum TPS for the REBL blockchain would be 873. By comparing this estimated figure with other blockchains, we can start to identify why TPS has become such a key focus. Bitcoin is currently around 7 TPS, EOS is operating at approximately 50 TPS, with a logged maximum of 4800 TPS, and Ethereum around 15 TPS. Moreover, EOS has already claimed it should be capable of handling more than 100,000 TPS—the crucial word here though is “claimed”. Vitalik Buterin has even stated that with newer versions of the Ethereum chain, it should be able to grow to one million transactions per second.
HOW DO FIAT PLATFORMS COMPARE?
As is often the case with the inner workings of a blockchain, there is a catch to these figures. When talking about the TPS of a blockchain, and how that fits into the real world, an obvious comparison would be with that of a traditional fiat platform.
VISA claims its global payment system can handle 24,000 transactions per second. However, the servers of VISA have previously shown the capability of handling up to 56,000 TPS. The circumstances needed to achieve this cannot be replicated on an everyday basis. Instead, the maximum TPS figures for VISA would need to be performed under controlled conditions. When looking at the live global network, the system reaches an average of 1,700 TPS due to latency and other factors that keep the network from operating at its highest speed. Achieving greater speeds comes at the expense of decentralisation, going against the core principle of blockchain technology. The blockchains that are currently both active and fast are characterised by a high degree of centralisation. Solutions are being developed (e.g. Sharding), as well as live concepts (e.g. Lightning Network). However, until now, breakthroughs in achieving both a high TPS and retaining decentralisation have yet to be found.
HIGH TPS: DOES IT MATTER?
A blockchain is meant to do two things, serve as a public ledger and a place to store information. Some blockchains will have both characteristics, while some blockchains will focus on one or the other (e.g. a blockchain used by a company to store sensitive information is not meant to be open to everyone).
Let’s look at two types of businesses and how TPS fits their respective blockchain model. The characteristics of a bank can be defined by numerous transactions containing several elements of information—a sender, receiver, and the amount transferred between the two stakeholders. A public ledger in this scenario could have a high TPS since it is only responsible for processing transactions containing minimal amounts of data.
On the opposite end of the spectrum would be a factory or business that needs to transfer larger amounts of information. The difference in blockchain requirements is like night and day compared to the banking scenario. This chain processes a relatively low number of transactions, but each one contains significantly more data. Let’s assume we want to store a contract, a purchase order, or a certificate on the blockchain. Each one could easily be around 250 kB or more. The TPS in this case (assuming the specifications are the same as the Rebellious masterchain) drops to 0.8—although that isn’t necessarily a bad thing.
TPS SHOULD MATCH THE NEEDS OF THE BLOCKCHAIN
The figure above may not be inspiring, but for the company running the blockchain, it might be enough to be able to operate efficiently. Having more TPS does not always make sense, especially if it isn’t needed and comes at the detriment of decentralisation.
Transactions per second can be calculated easily by anyone using the following formula:
1. What is the average tx size?
2. What is the block time?
3. What is the block size?
1 kB tx size, 30 seconds block time, 1 MB block size means:
(1 MB/1 kB) / 30 secs = 33 TPS