It is now common knowledge that Bitcoin was not only the first cryptocurrency in history, but the blockchain network on which it runs is the most secure in the world, thanks to its ever-growing hash rate.
Part of the reasons it won the crypto community’s confidence as well as that of many non-techy savvy individuals is that it has core features of money: trusted, scarce, durable, divisible, and widely accepted. There is, however, another feature that is just as important because it is digital and not physical currency: the same money cannot be spent twice.
But what would be your perception of Bitcoin if you learned that Bitcoin is not immune to the double-spending problem? On January 27th, 2020, some money on the Bitcoin blockchain network was double-spent after one of the blocks in the Bitcoin blockchain turned stale according to a tweet by @BitMEXResearch.
Does an incident like this shake your confidence in Bitcoin and crypto in general?
The Crypto Stale Block and Double-Spending Problem
On the day that the first case of Bitcoin double-spending was recorded, October 2019, Bitcoin Gold (BTG), another cryptocurrency, suffered a 51 percent attack. By the time it ended, about 7,167 BTG or about $72,000 had been double-spent. In the case of Bitcoin, a single instance of stale block resulted in the double-spending of about $3. This may not be as bad as the case of BTG, but to understand how it happened, we have to take a step back and look at how computers work.
Data transfer between computers is speedy, but it is not instantaneous. The time it takes for one computer to transmit data to another depends on many factors besides connectivity. The geographical distance between the two machines, for instance, plays a critical role.
Data sent from computer A would take slightly longer to reach computer C, which is physically farther from computer A compared to computer B, even if by microseconds. In some cases, such communication delays may cause conflicts on the Bitcoin network, resulting in the production of stale blocks.
What Is A Stale Block?
According to bitcoin.org glossary, a stale block in blockchain refers to a block of transactions that is successfully mined but not added to the current best chain of blocks. The primary cause of stale blocks is that another block was added to the chain faster than the first one could be added, often due to network delays. The recent Bitcoin stale block that led to a $3 double-spend was the result of the stale block not being added as the next block despite having verified the included transactions.
In technical terms, a block of transactions on a blockchain network becomes stale when two nodes on the chain, often located a distance apart geographically, solved the computation for the next valid block on the chain at almost the same time. When two miners each find the next block at the same time and send the information to the blockchain network, there will be a disagreement on the network for about 10 minutes or so regarding which block was actually mined first.
Considering that every Bitcoin node and every miner keeps a copy of the blockchain, it is not uncommon for some nodes in the network to favor one of the two blocks and other nodes to favor the other block. Such a situation, however, is often resolved automatically when the next block is mined and added to the chain.
This means that nodes that accepted the block that eventually was not continued would have to throw out their last block because it is ‘stale.’ Ultimately, the system resolves such conflicts by favoring the ‘most work’ chain, or the longest chain. It is only fair that the chain with the blocks on which more work has been done wins the standoff.
Was Bitcoin Actually A Double-Spent Due To A Stale Block?
BitMEXResearch divulged the details of the Bitcoin stale block and revealed lots of details that left many people with more questions than answers. The block, mined by Poolin, had a size of 0.98MB and was mined less than half a second after the winning block created by BTC.com was mined.
The stale block was promptly orphaned, meaning that it was not added into the blockchain network. What is revealing is that the block had a total of 39 transactions on it when it was validated, but only 38 were included in the next block. The one transaction had an input of 0.00034801 (about $3), an amount that may have been double-spent.
There has been raging debate whether the $3 from the stale block was double-spent. This would be entered into the official records as a double-spending regardless of whether the transaction was a success or not. What is important here is the number of confirmations that the recipient will get. A double-spending would mean the recipient would receive two confirmations; otherwise, they will see two conflict transactions in the mempool.
Confirmations on the Bitcoin blockchain often vary, but a transaction is considered true and not a case of double-spending or stale block after more than one confirmations. Some experts argue that on the Bitcoin network, a single confirmation is not enough; three confirmations are a good number, although it may be more especially if the amount in question is high.
Bitcoin’s Stale Block Matter Raises Questions on Its Immutability
John Adler, the co-founder of Fuel Labs based on Ethereum, is a self-proclaimed “Blockchain skeptic” who insists that such a case as a stale block witnessed in January is proof that the Bitcoin network is not immutable, and thus unreliable as a digital money platform. He argues that the orphaning of a legitimate blockchain block violates Bitcoin’s “immutability” property, and in the process, proves that the ‘Nakamoto Consensus’ guarantees no consistency. Without consistency, he argues, you cannot guarantee immutability in the long term.
Bitcoin developers seemed to put the matter to rest, arguing that John’s view of immutability is naive and that such kind of immutability is not what makes cryptocurrencies work. Bitcoin’s immutability, argued Bitcoin Core developer Bryan Bishop, is a high number of transaction confirmations that make it exponentially hard to reverse or alter a transaction.
One way that double-spending is significantly reduced in case of such an occurrence is by relying on the number of transaction confirmations. It would be dangerous to rely on only a single confirmation because it would have resulted in double-spending in the case on point. The norm is three or more confirmations, which significantly reduces the chances of a successful double-spending.
It became clearer that immutability in cryptocurrency ought to be viewed in terms of probability, and in particular, increasingly low probabilities as the chain grows longer and mining becomes more difficult. The probability of stale block in the Bitcoin network drops with time, but it is not uncommon for two competing mining pools to complete mining a block header at almost the same time, something that happens every few months.
The last time this occurred on the Bitcoin blockchain was in October 2019 when BTC.com and its competitor Bitmain Antpool produced two blocks of transactions at virtually the same time, rendering one stale.
How Serious Is the ‘Stale Block’ Problem?
Computer security expert Jon McAfee, another Bitcoin skeptic, is on record describing the cryptocurrency as “true shitcoin” and “stale” because he believes such cases as stale blocks are bound to happen. He believes that cryptocurrencies, in general, will not really catch up with traditional currency because of unrealized problems such as orphaned and stale blocks.
The truth is that stale blocks can be created on purpose in the event malicious people attack an asset such as the Bitcoin Gold 51% attack. This publicized Bitcoin case was, however, not malicious. The system was also quick in resolving the conflict automatically. Had this been a case of intentional or malicious interference with how the Bitcoin system works, it would have been serious enough to warrant doubt over the future of the cryptocurrency. However, it was not.
Bitcoin is the largest cryptocurrency in the world by market cap. It is also the most secure by hash rate. People who have embraced and even invested in it would be wary of any news that may imply such a problem as double-spending, regardless of how small the amount involved is. The rare occurrence that resulted in a stale block is completely plausible, theoretically, but it should not cause alarm.
The Bitcoin blockchain system is designed to expect such a problem. And when it happens, as it did in January, it is a sign that the blockchain is actually in good health. The Bitcoin blockchain platform was able to identify the stale block and drop it – and that is proof that the system works. What is even more impressive is that 38 out of 39 transactions in the block made it to the legitimate block that was ultimately added to the chain.