By: Nelson M. Nones CPIM, Founder, Chairman and President, Geoprise Technologies Corporation
I was recently asked to confirm if “the maximum theoretical processing potential of blockchain is 7 transactions per second.”
Claim: Blockchain’s capacity is only seven transactions per second.
Rating:
Origin
Numerous Internet postings and articles state that bitcoin’s capacity is currently seven transactions per second.
Bitcoin is far and away the largest cryptocurrency by market capitalization. It utilizes a blockchain, invented by the creator of bitcoin, which arranges transactions chronologically into blocks not exceeding one megabyte (1 MB, or 1,000,000 bytes) each. Blocks are confirmed by “miners” using a proof-of-work (POW) system which makes it computationally impractical for an attacker to reverse transactions when honest participants control the majority of central processing unit (CPU) power on the bitcoin network.
Currently, the bitcoin protocol targets a ten-minute interval between block confirmations which reflects a tradeoff between confirmation waiting time on the one hand, and waste of POW effort on the other. According to the Bitcoin Wiki:
After a block is mined, it takes time for other miners to find out about it, and until then they are actually competing against the new block instead of adding to it. If someone mines another new block based on the old block chain, the network can only accept one of the two, and all the work that went into the other block gets wasted. For example, if it takes miners 1 minute on average to learn about new blocks, and new blocks come every 10 minutes, then the overall network is wasting about 10% of its work. Lengthening the time between blocks reduces this waste.
The minimum bitcoin transaction size is 166 bytes; however, the Bitcoin Wiki says:
Users can also combine their transactions to make them slightly smaller … multiple users can create a joint transaction with no risk of their funds being stolen. This reduces average transaction size by 10 bytes … Using this technique aggressively results in 156 byte average transactions … A reasonable, conservative, assumption is … that every transaction requires two outputs, including change, and two inputs, consuming change … [giving] us 322 byte transactions .... Actual real-world rates will likely be somewhere between those numbers.
Consequently, if each transaction requires 156 bytes, then a single block can store up to 6,410 transactions (1,000,000 bytes ÷ 156 bytes per transaction), meaning that 6,410 transactions can be confirmed every 10 minutes (600 seconds). That’s 10.7 transactions per second on average. On the other hand, if each transaction requires 322 bytes then a single block can store up to 3,105 transactions and throughput falls to 5.2 transactions per second. Splitting the difference (and taking the integer portion only) works out to 7 transactions per second which “is commonly quoted as a ‘ball-park’ approximation in discussions of the blocksize limit,” according to the Bitcoin Wiki.
So, bitcoin’s maximum theoretical throughput is actually 10.7 transactions per second, not seven.
Bitcoin and blockchain are not the same thing
Moreover, bitcoin is a cryptocurrency whereas blockchain is a system for keeping electronic transaction ledgers. Bitcoin’s capacity is limited by constraints imposed to keep the cryptocurrency efficient yet secure by design; specifically, POW consensus, the ten-minute target interval between block confirmations and the 1 MB maximum block size. These constraints are needed because bitcoin’s ledger is a public, permissionless blockchain which anyone can join, including nefarious as well as honest actors.
Blockchain technology is useful not only for cryptocurrencies, but also in any situation that requires arm’s length parties to exchange information in a way that is permanent, tamper-proof and verifiable. When those parties belong to a private, permissioned blockchain, POW is a useless waste of CPU resources and is therefore not needed at all. As a result, because there is no POW effort to waste, there is no need to enforce any minimum time interval between blocks; network speed becomes the limiting factor.
The maximum block size of the blockchain bundled with the GM-X ERP software is 1 GB (1,000,000,000 bytes). As a result, based on the smallest possible bitcoin transaction size, its maximum theoretical processing potential is 6.4 million transactions per block, which would require no fewer than 80 seconds to transmit over Fast Ethernet (12.5 megabytes per second, or MB/s), equivalent to 80,125 transactions per second – well over 7,000 times bitcoin’s maximum theoretical throughput. Gigabit Ethernet would be ten times faster still.
In reality, our tests reveal throughputs up to 1,000 transactions per second under ideal conditions over a network of mid-range servers. Average conditions are more like 600 transactions per second. That’s anywhere from roughly 50 to 150 times bitcoin’s maximum capacity, and well beyond the capacity required for even the busiest of enterprise applications.