A group of researchers have recently published a paper that explored the idea of creating mutable proof-of-work (PoW) blockchains. They presented µchain, a novel mutable blockchain, that promotes modification of blockchain’s history. By definition, a blockchain represents an immutable, decentralized data structure that record a chain of events, such as financial transactions in case of a cryptocurrency system. Even though the concept of mutable history of events is seemingly controversial, the authors of the paper proved that µchain doesn’t undermine security guarantees provided by immutable blockchains. Technically speaking, all mutations in the µchain system are determined by fiat, controlled via consensus and are validated in the same manner as immutable blockchain transactions.
On the other hand, µchain offers solutions to several problems of immutable blockchains including vulnerable smart contract patching and eliminating abusive content from the records of the blockchain. Moreover, it opens the door to new blockchain based applications that cannot be built using immutable blockchains. For example, governments and companies could now keep registers of citizens and customers, while preserving their legislative rights to delete their records whenever they choose to do so. Banks can also choose to consolidate cryptocurrency with traditional payments, which is almost impossible to achieve successfully without being able to reverse transactions.
Why do we need mutable blockchains?
Although immutability of blockchains is a pivotal feature for security guarantees, this very same property can represent a hurdle to the future of this innovative technology. For example, external events can occasionally annul existing smart contracts and transactions already recorded on the blockchain. Moreover, data stored on the blockchain can be illegal to distribute. For example, bitcoin’s blockchain is already storing child pornography images, leaked cryptographic keys and wikileaks files. On the other hand, smart contracts can have flaws and vulnerabilities similarly to any other program type, yet immutability prevents patching of such vulnerabilities. Practically speaking, this led to detrimental effects on Ethereum’s blockchain and DAO, a smart contract vulnerability that was exploited back in June 2016 leading to loss of millions of Ether worth around $79 million to a group of hackers who launched the attack. The incident led to a chain of events that led eventually to manual hard forking of Ethereum’s blockchain into two blockchains; Ethereum and Ethereum Classic. Even when used as a database, a blockchain needs to be mutable. Governments’ databases are continuously changing; adding the newly born, excluding dead citizens, updating criminal records…etc.
µchain – A Mutable Blockchain:
The main features of µchain include maintaining alternative versions of data records, using consensus to approve a valid history and its innate capability to conceal alternative versions of history. This is achieved via introducing “mutable transactions”, which represents sets of transactions that contain various possible versions of transactions. In a given set of transactions, only a single transaction is marked as “active”, while all the remaining ones represent inactive alternatives. A set of transactions can be extended to add new versions of transactions. Moreover, every set of mutable transactions includes the “nope” transaction, which represents the “no operation” action that won’t alter the state of the blockchain. Once chosen to be active, a “nope” transaction will effectively exclude a mutable transaction from the history.
The history of the blockchain can be modified and/or extended via issuing special types of transactions, known as “meta-transactions”, which can present additional versions of data records and ignite mutations. All mutations taking place on the µchain will be subjected to access control policies, which are linked to senders of transactions and matched to mutable transactions. These policies will determine who, and during which circumstances, is allowed to add new versions of data records or ignite mutations, and their conditions are verified during processing of meta-transactions by validators.
A new data structure is introduced to monitor active transactions within a set of transactions, which includes info about mutable transactions and records the last active value for each of them. To record this data efficiently, the creators of µchain used a “trie” data structure, where each pair of a key and its value is represented by a node that can be addressed successfully via its corresponding hash.