Data Immutability In Blockchain
Blockchain technology gained popularity right after Bitcoin was proposed in 2009 as a new approach to manage assets. Its key features are strong cryptographic data protection, clear and transparent asset transfer and total decentralization. After Bitcoin was implemented in real software, many other projects were introduced. Some of them are just copies of the original Bitcoin solution, others bring changes and innovations to the initial approach, yet others are absolutely different from Satoshi Nakamoto’s basic ideas.
One of the key elements of all blockchain projects is blockchain technology itself. Of course, there are others. We can remember different software, network interaction details, consensus algorithm, assets introduction to the system and other less important components. All of these can be dropped at will. Some innovative projects even reject blockchain, still they are included into the family of blockchain technologies.
Blockchain has many properties and features. It is flexible and can be adapted to any requirements under proper circumstances. One of its main properties is immutability. That is exactly what we are going to talk about right now.
Let’s recollect what blockchain is and mention its main properties. According to its core concept, blockchain is a special database. It stores data about transactions. All transactions are united in blocks connected with a hashing function. Since each block refers to the previous one, all blocks form a chain. The only block that has no such reference is the genesis block.
Data inside of a single block can’t be changed after it is accepted by all participants. Special mining conditions should be satisfied to add a block to blockchain, and once it happens it can’t be removed in default terms.
Immutability By Satoshi
It’s interesting that immutability wasn’t so strict in Satoshi Nakamoto’s white paper. It has a special section called “Reclaiming Disk Space”, dedicated to this issue. It states that since the Merkle tree is used to support fast transaction verification, it is possible to remove some parts of the tree once underlying transactions are spent. This idea has not received further development and data removal is currently not implemented in Bitcoin.
Partial Immutability Projects
Some projects have different rules for storing data on blockchain. The most famous example is Ethereum. It is inspired by Bitcoin but carries several important changes. For the Ethereum blockchain, the main change is the introduction of partial immutability. We can write a smart contract and place it in the Ethereum blockchain, and then remove the code of the contract. However, all transactions made with this contract still remain immutable.
Inherent Data Removal
A natural way to remove data from blockchain is forking. Even the Bitcoin blockchain sometimes experiences natural forks with partial data loss. Of course, if a transaction is lost you can add it to the block again.
Importantly, it is possible to remove data from blockchain during an attack. It is performed as a part of forking process with further data substitution. This means that placing transactions into one of two blockchain branches definitely leads to its loss. There are many theoretical cases and real examples of forks of this kind.
Immutability is one of the most important blockchain properties. There are two more interesting and significant attributes: privacy and data protection. Both of them may also be different depending on projects. We will talk about them in our next articles.