There is too much noise in blockchain-related news on the Internet. The cleaner the content, it is often too technical. Of course, source code is the purest and most reliable content. But even without plunging into the depths of technical truths, in the early stages of experiencing the industry, you will always run into new meanings and terms when mastering new material. Today we will take a closer look at immutability (or irreversibility), which is closely related to one of the main characteristics of Blockchain technology — reliability.
What is immutability?
It has a lot to do with confirmations, but it’s not that simple.
The immutability of the transaction comes after the transaction confirmation. Immutability is a state of blockchain, in which the transaction can under no circumstances be canceled, reverted, or changed by any member of the network. In other words, no one can do anything about the transaction, and everything that happened in this transaction will forever remain in the blockchain. The moment when you can be sure that your coffee has been paid and that your salary has been received and is completely at your disposal.
So, how long should you wait from when you received the “transaction confirmed” message until your transaction is irreversible? The level of immutability is the amount of time it takes to reach the finality state after the transaction has been completed. Depending on the blockchain or context, the speed is measured in seconds or blocks. Different blockchains have different finalization schemes, so it may take from a few fractions of a second to an hour to get the necessary guarantees — quite a long wait for a coffee.
Why is immutability essential?
After an hour of waiting, it becomes obvious that a short time of completion is extremely important for a business. You do not want to wait 10 minutes every time you go shopping in a new store. Just imagine how long it would take to send money to a friend? The financial sector will never be able to meet the clients’ speed expectations as traditional transactions are completed in less than a second (how final they are is a different question).
“Absolute immutability must be implemented in the real world because no one wants to risk having assets that they may lose because of the protocol’s design.”
Investors and business owners need a different level of guarantees. They can’t afford additional risks, so each business aims to complete its transactions as quickly as possible. Companies that make cryptocurrency payments are particularly sensitive to the level of immutability.
Although this is not the only important indicator of a blockchain company’s success, the faster the completion time, the better.
How does it work?
Depending on the design of the protocol, a blockchain achieves immutability through various mechanisms. There are many mixed options, but for general understanding, three main types are most often mentioned:
This type of immutability is complex because there is no such thing as a 100% immutability state in real life. After a transaction is executed in a certain blockchain, other transactions get confirmed and continue to arrive. Thus, theoretically, it is plausible for the miners to switch to an alternate chain, starting with the block previous to the one containing your transaction, making your transaction invalid. But the more transactions occur after yours, the more resources it will take to switch chains, and at some point, it becomes insanely irrational, so the probability of this happening reduces.
Over time, the transaction becomes “more and more irreversible” as more blocks are created on top of each other.
There is a certain timeframe in which everyone on each blockchain agrees for the transaction to be probabilistically irreversible (yet it is still just 99% immutability). For Bitcoin, this timeframe is approximately 60 minutes or six blocks.
This one is clearer.
Usually, in a blockchain with absolute (or deterministic) immutability, other than the miners, there also is an additional group of validators and leaders. The latter suggest a block, and the validators check and approve it. Since the block is not suggested by some random guy but by a selected leader after the block is validated, all transactions in this block are immediately considered irreversible. If it’s there, there is no way out.
This is achieved thanks to the chain’s design and is typical for PBFT based protocols such as Tendermint and Dexon.
It is important to note that we are talking about the type of immutability with respect to the blockchains’ design. Each blockchain is vulnerable to different types of attacks, which can lead to the loss of previous transactions or a part of the blockchain. By updating existing chains or developing new protocols, the developers try to improve protection against possible attacks and increase the confidence in their systems.
Economic immutability is based on the idea of staking and penalties, so it mainly applies to PoS protocols. Immutability is achieved when block recovery becomes financially costly. Validators vote for block inclusion or rejection. Consensus conditions vary from blockchain to blockchain, but usually, about 2/3 of validators are enough to approve a block. All validators who vote against the majority are penalized according to the rules of the chain (lose their share, lose the opportunity to get a reward for the next period, and so on). Usually, when we go back in history, the cutoff is multiplied, which makes it more expensive to restore old blocks. You will simply regret making the wrong choice.
This type of blockchain stimulates validators to vote the same way the majority does. Every time they vote correctly, they get rewarded.
Time, necessary for different blockchains to reach immutability of a transaction
Achieving fast and safe immutability is still a rather active area of research for various blockchains. The reversibility of blocks can lead to losses of millions of dollars or affect decentralized applications’ fundamentals. Thus, understanding immutability is crucial when creating reliable blockchain-platforms and selecting the platform for application development.