DEV Community


Finality in Bitcoin

coinmonks profile image CoinMonks Originally published at Medium on ・8 min read

Always almost but never just quite


  • The Finality of a Bitcoin transaction is probabilistic, it is not absolute.
  • Bitcoin provides the best finality in history_**

Whenever we make simple payments for things such as a breakfast coffee, after we leave receive our coffee & leave we do not worry about what happens after the fact; but in such small transactions, it wouldn't even make sense to. However, let's imagine that we are on the other side of that trade & let's reframe it from coffee to real estate. Say we are selling a house for $468,000. A buyer comes & wants to pay with his card. Once the transaction happens; (he sends the money & we sign the deed over) we will very diligently stare at our bank account until the money arrives. Once its in the bank we shake hands & everybody goes home happy. Tomorrow morning we wake up, get dressed & hop over to the breakfast spot. We place our order, swipe our card & before we put the card back into our wallets the card is denied for insufficient funds. Chances are we would begin to panic a little. Opening our banking app we see that our balance is 0. We check the transaction history log & there is nothing recorded from yesterday at all. We call the bank, talk to a manager to find out the bank had a system upgrade & all of yesterday's transactions were lost. You call the person you sold the house to & they don't answer.

Within the context of finance, blockchain, & crypto there is a necessary monetary property known as finality. Finality is the guarantee that a transaction is done & cannot be undone. For a more in-depth explanation on finality & its 3 variants, my previous article “Blockchains Flavors of Finality” is the perfect starting point.

So far in human history, the most efficient tools for the transfer of monetary value in terms of finality have been physical objects. Case and point being cash. Once cash is transferred from one party to another the transaction is immediately finalized. There is no magical reverse transaction button or support desk that can challenge the transaction & reclaim the cash; the finality is absolute.

When it comes to tools for the transfer of monetary value in non-tangible things such as software finality begins to get more complicated; as the brief story at the begging showed.

Bitcoin is heralded as the perfect software representation of digital gold. It is a bearer asset that inhibits the 3 key properties of money: it is a Unit of account, medium of exchange & store of value. (More on Bitcoin as Money here). However, in addition to these properties Bitcoin is also the first decentralized form of money; & decentralization requires tradeoffs.

Bitcoin is at its core a DLT (distributed ledger technology) & DLT’s require a mechanism to come to a consensus on the state of the network. Bitcoin operates under the Nakamoto Consensus, otherwise known as Proof-Of-Work (PoW). Proof of work provides two things; 1) extreme decentralization — it is a protocol that allows a network to be open & handle up to 49% partition tolerance meaning that the network will continue to operate even if 49/100 nodes suddenly go offline 2) “Longest/heaviest chain” logic — whereby the network grows in the direction of the chain with the most valid transactions & the largest block height.

In addition to the PoW, Part of bitcoin’s consensus is the rate at which the network progresses; which is a 10minutes /600 seconds. This means that every 10 minutes a new block is mined & appended to the blockchain. This also means that it takes 10 minutes to process a transaction.

When in the context of distributed computing, the more decentralized a system is, the more time it requires to process something due to the communicative overhead. If Mary learns something new & wants to share it it will take her 2 minutes to share it with Bob. After Mary tells Bob, she goes to share it with Sally which takes 2 more minutes & she now wants Bob to share it with his firends. The more people that have to find something out the longer it takes for the information to disseminate throughout the participants.

However, the same mechanism which makes Bitcoin so reliant also comes with its own nuances. That nuance is the absence of absolute finality.

Once a transaction happens on the Bitcoin blockchain it is broadcast to the network, captured & verified by miners, put into a mempool & awaits being included in the next available block. Once the next block is mined & published that transaction becomes valid/“final”.

Here things get interesting;

The transaction will only remain valid so long as the structure of the blockchain remains the same & includes that specific transaction block. The Bitcoin network can be faced with a few events that can result in the removal/reversal of a block.

As mentioned earlier the PoW mechanism can withstand 49% partition tolerance & will default to selecting the network with the longest chain. However, one of its nuances allows for the possibility of two blocks being mined simultaneously created what is known as orphaned blocks. It is a temporary split in the tip of the chain that is resolved with the mining of the next block (the likelihood of this happening is infinitesimal but possible). Lets say one of those blocks contains the transaction & the other does not. Assuming that the next block mined is on top of the chain that does not include that transaction then the transaction will be as if it never happened. ***(the transactions from the original block will be put back into the mempool & eventually re-mined)***

But there is also a darker, more cynical side of the blockchain.

In the event that a malicious actor comes along & is able to successfully deploy a “re-write” attack then all of the activity in the “re-written” blocks can be totally erased.

Since the system recognizes the chain with the most work done on it (longest chain) as the valid chain; if a malicious actor organizes an attack to switch out the blocks containing your transaction then they will re-mine the chain up to the point of the transaction & attempt to mine faster than the current global network & substitute their version of the chain Since your transaction was published in bitcoin block 11 it simply does not exist in bitcoin block 11 x; which in turn results in the absence of that transaction on the bitcoin network.

It is important to note that this kind of attack is very complicated & very costly. It is also important to note that with each new block added to the blockchain the likelihood of this kind of attack is dwarfed significantly with each new block.

Every new block that is mined secures not just the previous block but every single block before it as well. The finality of a transaction always approaches 100% but never quite reaches it.

As a rule of thumb, most of the industry follows a 6 block maturation. Whereby a deposit to an exchange or a sizeable merchant transaction only settles after 6 blocks are mined (approximately 60min/ 1hour).

None of this is meant as bashing on Bitcoin; on the contrary, In my personal opinion, Bitcoin’s finality is superior to anything in history.

Nothing in life can be predicted 100% or truly guaranteed & the unique structure of bitcoins finality mimics structures in natural life. A longer time between blocks means a greater amount of security per block & the more security per block, the more value can be confidently transmitted over it.

There are a lot of new interesting experiments being attempted by smaller crypto projects tooling around with monetary structures; such as delayed finality; where blocks are “finalized” in epochs (every 5 blocks creates an epoch & once an epoch is published nothing can alter it.) *this is experimental and is still subject to well-orchestrated re-write attacks* Exciting as it may sound I would always bet on what already works.

Join Coinmonks Telegram group and learn about crypto trading and investing

Also, Read

Get Best Software Deals Directly In Your Inbox

Discussion (0)

Editor guide