- “There aren’t any immutability guarantees in Bitcoin, just exponentially decreasing probability.”
- “Not many services will release any irretrievable goods or services with just 1 confirmation.”
“Bitcoin is stale.” Early champions such as Jon McAffee have been describing the original cryptocurrency as the “true Shitcoin,” while to make matters worse, it also recently witnessed the creation of another ‘stale’ block.
But why is a stale block a problem? Well, for those who don’t know, a block is ‘stale’ when it’s accepted onto the Bitcoin blockchain, but then cast off soon after, because the nodes that had added it to their versions of the chain ended up forking away to a longer, majority chain that doesn’t include it.
For some, the fact that a ‘stale’ block can be cast off proves that Bitcoin isn’t actually immutable. And given that the recent stale block detected by BitMex resulted in a double spend worth USD 3, critics also claim it proves that Bitcoin isn’t a viable digital monetary system.
However, Bitcoin developers argue that Bitcoin is immutable, insofar as ‘immutability’ was ever really achievable in the first place. They also point out that double spends are practically impossible on Bitcoin, since most exchanges and payment processors tend to wait for multiple confirmations on the blockchain before confirming a transaction request.
On January 27, BitMex Research tweeted that it had detected a stale block on the Bitcoin blockchain.
As developer Eric Wall explains, this means that two nodes on the chain (perhaps located at opposite corners of the globe) solved the computation for the next valid block at the same time.
“Every Bitcoin node has its own local copy of the blockchain. So does every miner,” he tells Cryptonews.com. “When two blocks are found by two different miners at the same time, they’re sent across the planet. For a brief moment, ten minutes or so, there can be disagreement in the network about which block was actually found first.”
Wall adds that some nodes in the network will favor one of the competing blocks, while other nodes will favor the other.
“This situation usually resolves itself with the next block that’s found, which means that the nodes that accepted a block that didn’t end up getting continued on by the next winning miner will have to throw their last block out. This block is thus ‘stale’.”
As for why some nodes might decide to ‘orphan’ a block, Bitcoin developer Ben Woosley explains that it’s because nodes tend to favor the ‘majority’ chain that’s the product of the most computational work.
“It’s essentially discarded in favor of the chain that continues to have more blocks mined onto it (the ‘most work’ chain),” he tells Cryptonews.com. “In Bitcoin, the valid chain is always the ‘most work’ chain, and as each block is mined, it effectively ‘buries’ the prior blocks under its work.”
A ‘naive’ view of immutability
So far, so ordinary. However, some observers used the creation – and discarding – of a stale block to claim that Bitcoin isn’t really immutable. John Adler – a self-professed “Blockchain skeptic” and a co-founder of the Ethereum-based Fuel Labs – was one of these, essentially arguing on Twitter that immutability has to be absolute, otherwise it’s not immutability.
However, Bitcoin developers argue that this is a naive view of immutability. Such immutability has never existed and never will exist, and not only for Bitcoin but for other cryptocurrencies.
“Bitcoin’s claim of immutability is that an increasing number of confirmations makes it exponentially harder to reverse a transaction,” says Bitcoin Core developer Bryan Bishop. “At some point, this becomes so exponentially difficult as to be impossible. That point isn’t when the block is buried by one block, but rather by many.”
Other developers second this view of immutability. Woosley notes that ‘immutability’ should be understood in terms of probability, and in particular in terms of increasingly low probabilities.
“Mathematically speaking, there aren’t any immutability guarantees in Bitcoin, just exponentially decreasing probability of blocks being dropped out of the blockchain as new blocks are found,” he says.
Under normal network conditions (i.e. if a chain isn’t being attacked), a block is extremely improbable to drop out of the chain after just a few blocks, Woosley adds. “After a dozen blocks, the probability becomes so low that it’s more likely that your head spontaneously explodes.”
How many confirmations?
As developer Nicolas Dorier explains, “Technically speaking you can’t speak of finality. Practically speaking you do.”
So, “practically speaking,” how many confirmations on the chain are sufficient to provide ‘immutability’ for all intents and purposes? Well, given that immutability is really about probability, there’s no hard answer to this question, although there seems to be general agreement that the number is anything between two and six.
“Exchanges traditionally wait 6 confirmations,” Dorier says. “If I were an exchange I would accept 2 confirmations (for Bitcoin).”
Wall conveys a similar picture, noting that the risks of one-block confirmations are already common knowledge.
“Some exchanges require 2, 3 or 6 confirmations because 1-block confirmations are known to not be very reliable,” he says.
“Because this blockchain behavior is not unexpected, not many services will release any irretrievable goods or services with just 1 confirmation.”
As reported, for an average transaction, only one or two confirmations (in theory, it would take c. 20 minutes) are needed to be requested by the recipient so the double spend strategy wouldn’t be profitable, according to calculations by two mathematicians.
Given that most exchanges wait for several confirmations before processing a transaction, it’s unlikely that double spending is even an insignificant problem on the Bitcoin blockchain, let alone a serious one.