Crypto has a bad reputation.
There are many other reasons why, but I think this bad rep often comes from crypto being misunderstood, both by its critics (haters?) and fans (cultists?).
These misunderstandings often arise from half-truths used as marketing material to promote the technology that ends up being taken at face value.
One such misunderstanding is the idea that blockchains are “immutable.” I was recently at a conference where most attendees I spoke with were crypto skeptics. A fairly regular pushback I heard was that immutability was bad and because blockchains are immutable, this is not a good or useful technology.
But are blockchains really immutable?
No.
When it comes to immutability, in fact, blockchains are no different from the “real” world in that the only thing that can’t be changed is the past.
Why even have blockchains?
You might be wondering what the point of a blockchain even is, if indeed any change can be reversed.
If a transaction recorded yesterday transferred some coins from X to Y, it is not possible to “rewrite” the transaction (almost without exception) to change the amount, recipient or sender of that specific transaction. However, it is possible to create another transaction from Y to X for the same amount to “restore” the balances.
Importantly, using the same mechanism as above, any “state” can be updated, not just balances, but also the code of smart contracts themselves in blockchains that support them, like Ethereum.
Rather than focusing on blockchain’s faux immutable state then, move your gaze over to who can change the state to see what actually matters. In the example above, only Y can ever send a new transaction to X.
In Bitcoin, only the owner of a private key can change the balance of the account that matches this private key.
And in the Ethereum world, each smart contract has its own logic for which a user is allowed to make what change. A currency contract (like ERC-20) would probably only allow the owner of any coin to transfer them, but it may also enable some special admin user to perform transfers (like the USDC contract does, for example).
Similarly, if a contract is upgradable, it is likely only upgradable by a single address. Interestingly, this specific address itself may be another contract like a multisig or a DAO, opening up the possibility of oversight controls.
This means that the really exciting consequence of blockchain isn’t immutability at all, but accountability, i.e. anything that’s executed or changed is only possible because it was previously specified. Of course, that doesn’t mean code will never have bugs that result in unintended behaviors, but there’s a level of accountability with the code being publicly visible by anyone.
This accountability is what makes blockchains really useful for things that are widely shared and require “trust” that no one can arbitrarily change. This is true of money, but also of many foundational pieces of infrastructure that enable collaboration between humans.
Accountability makes the concept of governance critical. Accountability lets groups of users collectively set the rules (if any!) that determine what can be changed in a contract, how, by whom, when…etc. And even on blockchains that have no concept of smart contracts that predefine custom rules — Bitcoin being the most prominent example — governance can happen.
The myth of immutability
Blockchains are vast networks of machines (nodes) that collectively agree on the state of a ledger. That agreement is, in fact, the protocol, and each individual node can decide on what “version” of the protocol it adheres to.
The state of the blockchain is determined by the version of the majority of nodes. Even when there are no explicit rules around changes, if the majority of nodes decide to change, the blockchain will change. This happens with Bitcoin (Segwit, Taproot…), Ethereum and any other network.
That’s the reason why even the most repeated claims about any blockchain’s immutability, like the permanence of the supply of coins or the balances of certain accounts, can in reality be changed…as long as enough of the actual members of that network want the change.
The immutability of blockchains is therefore subject to humans collectively working together.
When we use applications on these blockchains, we can trust that history will remain unchanged — but not because of some intrinsic properties baked into the technology. It’s because the human actors governing the blockchains decide for it to be that way.
And it’s this human coordination that allows applications to always perform the same certain actions in the same certain ways that could not be more valuable.