Scalability of TX++: 2021 update

Scale

Introduction

In May 2020 we published an article about how many invoices summitto’s real-time reporting system could handle. We showed that TX++ could already serve e.g. Italy (between 2 and 3 billion invoices per year)[1] and Spain (4.8 billion invoices per year).[2] At that moment in time our software could handle 700 transactions per second, which refers to a maximum of 22 billion invoices per year.

It is important for reporting systems to be future-proof, and to be able to handle changes in legislation and a growth in invoice usage. Therefore, we have continued investing into R&D in order to reach a so-called throughput of 1255 invoices per second. This means that 39,577,680,000 invoices can be sent through our system every year.[3] In the following we will provide a bit more background information about what this figure means and how we achieved this milestone.

Additionally, we still have some improvements in the pipeline which can increase that number even further. However, as we can already handle the invoicing volume of any EU Member State, this has no immediate priority.

Invoices per second for applications using cryptography

For any privacy-preserving IT system, the following question is often raised: how much throughput can the application handle? A similar question is hardly ever raised for a regular software solution. The question originates from the fact that many people refer to Bitcoin when they think about blockchain, distributed ledger technology or other software systems making use of cryptography to preserve privacy. Bitcoin can indeed only handle a handful of transactions per second. However, as we have explained previously, that is due to a highly specific design goal: This is deliberately done in order to let anyone, even people with a computer with less storage and bandwidth, participate in the network; making the system as decentralised as possible.

Other privacy-preserving IT systems with other design goals in mind might have widely varying registration limits. For example, other cryptocurrencies such as Avalanche are boasting 4500 transactions per second, but the system simply comes with a variety of different trade-offs.[4]

To summarize: making real-time reporting privacy-preserving introduces scalability challenges, but they are challenges which we have successfully been able to overcome. As mentioned above, previously we communicated that our real-time reporting solution was able to handle 700 invoices per second. However, thanks to finalised research we managed to increase this number to 1255 transactions per second. Let’s take a closer look at how this upgrade was achieved.

Upgrading the amount of invoices being able to handle

You may be interested to hear which aspects come into play in order to increase the throughput of a privacy-preserving real-time reporting system. There are three technical aspects in particular which some readers might be interested to learn about:

  • parallel computing: by batch processing certain computations, we have been able to speed up our algorithms[5]
  • improved cryptographic primitives and libraries: by building on top of the new open source work from other mathematicians and programmers we were able to further speed up our system. This is possible because we leverage basic building blocks which are used widely to power many IT systems, from the internet to cryptocurrencies.

This resulted in 1255 transactions per second, which allows us to serve all EU Member States given the estimated amounts of invoices. Moreover, it is important to know that by leveraging common specialised hardware such as a graphics processing unit (GPU), which many modern computers have installed by default, could easily result in a 10-100x improvement in the throughput, rendering the scalability of absolutely no concern. Even without using specialised hardware, historically our computers have been getting more and more powerful, which is known as Moore’s Law.[6]

TX++ can help every country in the EU to reduce VAT fraud

In our previous article about the number of invoices sent within the EU, we provided a table which shows how many invoices are sent in various EU Member States. For this blogpost we have updated the table (Table 1). The table shows that we can now even handle the extremely unlikely estimation of the German invoice volume of 32 billion, thanks to the above explained update. Therefore, we can now serve all EU Member States (in green). Furthermore, we have also envisioned architectural adjustments which could even power a EU wide real-time reporting system for intra-Community transactions.

Table 1: invoice volume EU

Country Number of invoices (in billions) Invoices per second
Belgium* 0.48 15
Finland 0.32 10
France* 2.5 79
Germany 32 1015
Italy 3 95
NL* 0.54 17
Spain 4.8 152

Source: summitto

* Only B2B invoices.

Conclusion

Via this blog post we hope to have clarified that TX++ is not a solution for the future, it’s a solution that can help tax authorities to tackle VAT fraud now. Through the finalisation of our latest research and development projects, we have increased throughput to 1255 invoices per second, or 39 billion invoices per year. This allows us to handle all invoices within any given EU Member State. Come check out our pilot if you want to learn more: https://portal.summitto.com.

[1] https://www.agid.gov.it/it/agenzia/stampa-e-comunicazione/notizie/2020/04/24/fatturazione-elettronica-oltre-due-miliardi-fatture-emesse-anno and at 14:46:22 - https://webcast.ec.europa.eu/vat-in-the-digital-age

[2] https://inza.wordpress.com/2007/02/28/en-espana-se-emiten-4800-millones-de-facturas-al-ano/

[3] We get to the amount of 39 billion invoices per second by taking 1255 transactions per second, multiplying it with 60 seconds which gives us 1 minute. We multiply 1 minute with 60 minutes, which gives us the invoices per hour. By multiplying this figure with 24 (the hours) and subsequently multiplying it with 365 (days), we get 39,577,680,000 invoices per year.

[4] https://support.avax.network/en/articles/4136568-how-many-transactions-per-second-does-avalanche-support

[5] https://en.wikipedia.org/wiki/Parallel_computing

[6] https://en.wikipedia.org/wiki/Moore%27s_law