From soft and hard forks to protocol upgrades, to the implementation of Segwit and to the future outlook of the Lightning Network (LN), the Bitcoin network has come a long way since its inception in January 2009. As of Sept. 18, 2018, the average block size on the Bitcoin network is .8MB and the average number of transactions per block is 1609 — so a few eyebrows were raised when a block over 2MB was added to the blockchain on Sept. 5, 2018.
Bitcoin block 540107 came in at 2.26MB; in terms of megabytes, a block this big has never been added to the blockchain before. Although the bear market has been going on for nine months, block 540107 could be a sign that the Bitcoin network is progressing technologically. To understand why, let’s first have a look at the current state of the Bitcoin network.
Currently on the Bitcoin network, the average block size is 0.804MB and there are an average of 1609 transactions per block — that is why a block like 540107, which is 2.26MB big but only has 230 transactions included in it, is such an anomaly.
The biggest block to date
Block 540107 is the largest block on the Bitcoin network to date due in large part to Segwit, a soft fork in the Bitcoin network. This update in the code allowed transaction signature data to be stored in an extended block, a storage unit not necessarily attached to a ‘regular’ block.
An extended block holds the transaction signature data — which is normally packed into a regular block in a non-Segwit transaction — in a location separate from the block with the transaction data. When Segwit was activated on Aug. 24, 2017, it replaced the non-Segwit 1MB block size limit with a 4MB maximum block weight. This allowed more transaction data to be packed into a single block because transaction signature data is removed and stored in a separate location — i.e., extended blocks. Because of this, Segwit made it possible for blocks to be over 2MB in size. If a block was filled with only witness (signature) data, then a block could technically be 4MB in size. Therefore, Segwit paved the way for block 540107 to be the largest block to date in terms of size (2.26MB).
But although block 540107 was the largest to date in terms of megabytes, it only had 230 transactions included in it, which is about 86 percent (1379, to be exact) fewer transactions than the average block on the Bitcoin network.
Why was the Biggest block so empty?
This isn’t the first time a big block had far fewer transactions than an average block on the Bitcoin network. Jan. 20, 2018, was the first time the Bitcoin network saw a block that was over 2MB, when block 505225 came in at 2.17MB, and similar to block 540107, the block had a relatively low number of transactions compared to an average block on the Bitcoin network. Block 505225 only contained 225 transactions — about 15 percent of the usual amount of transactions in a block.
Although the low number of transactions in such big blocks could seem unusual, an independent crypto-researcher that goes by AltcoinXP-Anthony believes that we should be less concerned about the number of transactions in a block and more concerned about if the weight of the block is close to or at capacity. Commenting on why the block only had 230 transactions, he told Cointelegraph:
“You would have to ask the miner that mined it — they make that decision. But my guess would be that that is how many [transactions] filled the block [weight] limit. Number of transactions doesn’t mean much. You can have one transaction which sends thousands of pieces of BTC dust (little amounts of BTC spread between many addresses) sent to a single address. The dust takes up more block real estate […] more data being needed per transaction […] So what I mean to say is that not all transactions [are equal], some have a larger weight/size due to the amount of inputs [or outputs] there are.”
With the Segwit soft-fork, a new addition to the technical parameter came called ‘weight.’ Before Segwit, 1MB of data on the Bitcoin network was technically equal to 4 million weight units — or in other words, the entire weight capacity of a block. But with Segwit, each byte only weighs one weight unit, which allows more data to be packed in a block and which is why we can have blocks that are larger than one and two megabytes.
Thus, one transaction can send thousands of ‘BTC dust’ — i.e., transactions on the Bitcoin network that can be consolidated, aka batched. Batching is when several transactions on the Bitcoin network are compressed into one transaction (input) with several outputs, instead of having separate transactions with unique inputs and outputs. Batching transactions reduce the amount of data that is required to deliver different transactions to different addresses; however, the more transactions that are batched together, the larger the byte size of the transaction.
Batching: One input, several outputs
Bitcoin researcher David A. Harding provides a great example of batching in his article,
“Let’s imagine one Bitcoin equals one dollar. Alice receives the bill for 10 BTC and starts a transaction by adding a 20 BTC input from her wallet. Then she adds two outputs: a 10 BTC output that goes to Bob and another 10 BTC output that returns the change to her own wallet.”
In this case, the total size of this transaction would be 226 bytes because the code required to execute one transaction on the Bitcoin network takes up 226 bytes of data. But the story example continues:
“But wait, Alice almost forgot to tip for the excellent service she received. With physical cash, Alice would make a second transaction by taking the $10 she received in change, trading it for some small denomination money, and leaving a 15 percent tip of $1.50 on the table, keeping the other $8.50 in change for herself.”
But on the Bitcoin network, Alice would need to create a new transaction for the tip, and the size of this transaction would be 226 bytes too. For Alice to pay for her meal and leave a tip, her objective requires the Bitcoin network to add a total of 452 bytes to a block if it is done in two separate transactions.
However, there is a way to consolidate these separate transactions into one.
With physical cash, Alice could pay her original bill by handing the cashier $20 and telling him to deduct the tip before giving her back $8.50 in change — keeping the rest ($1.50, or 15 percent) as the tip. On the Bitcoin network, we can also consolidate the number of transactions that take place by adding an additional output to the original transaction. According to Harding, each additional output consumes 34 bytes. So when Alice batches a transaction to pay for her food (output #1) and tip (output #2), the Bitcoin network will require 260 bytes total for her to complete her objective — opposed to the 452 it requires if Alice proceeds in two separate transactions. Similar to Segwit, the idea behind batching is to free up block space so that more data — and hopefully transactions — can fit into a block.
More participants = More bytes
Although batching drastically reduces the amount of data required to make several transactions at once, each new output added to the batched transaction is going to require the Bitcoin network to consume more data to complete the transaction. Although this amount of data isn’t nearly as high as it would be if a user were making transactions with several different inputs and outputs, it can still add up.
Although there were only 230 transactions in the block, it is possible that a number of those transactions were batched, so that one input had a large number of outputs; this would require the Bitcoin network to consume a larger amount of bytes to make the transaction possible — depending on how many outputs were attached to each input. But regardless of the number of transactions that were included in block 540107, a block over 2MB is a good news.
Hope for the future
Although the cryptocurrency markets have been going through a rough patch for nearly nine months now, block 540107 could be proof that progress is being made in regard to solving Bitcoin’s scalability problem. For those who preach that Bitcoin is going to be the money of the future, such a development could usher in that future — one in which transactions would not take between seven or eight transactions per second to process. Major payment processors can handle tens of thousands of transactions per second, such as Visa, which can process 24,000 transactions per second. If we want to see Bitcoin be adopted and used as a payment method in society, the amount of transactions the network can handle is an issue that needs to be tackled.
Some are hopeful that the Lightning Network will play a significant role in solving the scalability problem, and although the Lightning Network does not need Segwit to exist, the implementation of Segwit prevents malleated transactions from occuring in Lightning channels. Although we may be a bit of a ways away from Lightning Network implementation, block 540107 seems to indicate that the Bitcoin network is moving in the direction it needs to move in for Lightning Network as well as other possible scaling solutions to come to fruition.