Scalability and transactions per second (tps) are heavily debated topics in the crypto world. Bitcoin can handle 7 tps and many say this is one of the main reasons it hasn’t experienced mainstream adoption yet.

I won’t go into this debate now as it’s rather long (and sometimes very passionate), but the reality is that a lot of crypto projects were created to address this scalability problem. Many of them claim truly impressive numbers: from 100,000 tps going up to 300,000 tps.

While I cannot refute them without looking individually into each project, it’s certain that these numbers can only be achieved under certain conditions. It’s important, then, to analyze its impacts on network decentralization, a main feature of cryptocurrencies and one of the reasons why Bitcoin was created in the first place.

What decentralized means

At Hathor, we share Bitcoin’s vision for decentralization. For us, a decentralized network means any node can enter the network at any time, with the same rights as the other ones. This means we can’t have validators, masternodes, coordinators or anything of the sort. These are not true decentralized solutions. Stopping just one or a few nodes should not halt the network (right IOTA?).

Moreover, requirements for nodes participating in the network cannot be high. The node should be able to run in a single computer — i.e. no clusters or other forms of horizontal scaling. This ensures that the network will be open to everyone, not just a select few people or corporations with access to high-end computers. Anyone with a modern computer or laptop should be able to join the network.

Let’s consider, then, how many transactions per second a regular modern-day computer can support.

Limits of scalability

There are many operations a node has to perform upon receiving a new transaction, but we’ll focus for now on a single operation: verifying digital signatures. Every transaction will have at least one input signature to verify. This is something every cryptocurrency platform has to do (otherwise they are not CRYPTOcurrencies).

Let’s examine the secp256k1 Elliptic Curve Cryptography, the same one used by Bitcoin. This test was developed in Python 3.6 and simply verifies crypto signatures. As I mentioned, this is an operation all cryptocurrencies have to perform.

We ran it on a computer with an Intel 2.7 GHz Core i7 processor (I7–8559U):

$ python3.6 ./signature_test.py

Verification of digital signatures per second: 2700

It was possible to verify 2,700 signatures per second. Considering this processor has 4 cores, we could get to 10,800 operations per second, maybe more with Hyper-Threading.

Let’s say it's possible to reach 15,000 operations. If each transaction has only one signature to be verified, this processor can handle 15,000 transactions per second. And that’s only considering one of the operations a node has to perform when validating a transaction. Many other operations have to be performed and will lower this number.

Besides this processor limit, other resources also play an important role in the node performance: RAM memory, hard drive speeds and network latency, to name a few. In the end, the number of transactions per second it can process will be significantly lower than the 15,000 imposed by digital signature verification.

Conclusion

We are very skeptical of cryptocurrencies promising 50,000 or 100,000 transactions per second. In most cases, they use mechanisms such as special masternodes or validators to boost their performance, which is not a real decentralized solution in our view.

In the cases where a network doesn’t use any special type of node and still promises numbers like those, we need to really investigate the conditions under which that is possible. We’ve seen that computers available today (year 2020) are very unlikely to process more than 15,000 transactions per second. The only solution is using highly specialized hardware, which is not available for most people and inevitably leads to a centralized network.

At Hathor, we’re committed to creating a truly decentralized network, following Bitcoin’s example. We have a novel architecture which overcomes Bitcoin’s scalability problems while still being able to run across a distributed network, where all nodes can participate equally.