Home : Blockchain : Mockchain

Mockchain

Originally published: Aug 12 '19 / Last updated: Aug 25 '19

A mockchain is software being advertised as a blockchain, but missing some of its crucial characteristics, components, or features.

To define a mockchain, we first need to define a blockchain.

Blockchain

A blockchain is a distributed, global, write-only database akin to a globally available Google Sheets spreadsheet. This spreadsheet can be read by anyone, but only those with passwords to their cells can modify the contents of their cells by reducing the number written therein. By however much they reduced the number, they can increase someone else's.

All other participants watch the spreadsheet at all times and tell others who might not be watching, or those who might be slow to notice changes, about any changes done to anyone's cell. The first to notice a change can claim a reward from the spreadsheet itself, in the form of a number they can add to their own cell. These watchers are called miners.

There are different types of mining. In one system, called Proof of Work, the miners are doing some random pointless calculations while also watching the cells. If a condition is accidentally met which matches certain prerequisites, then the noticing of changes is legitimized. This is so that there wouldn't be a lot of fake notices spamming the system, as it would be very difficult to moderate those messages and find out the truth about the spreadsheet's true state.

The other type is Proof of Stake where the watchers promise not to lie about a change under threat of losing some deposited money. Others can report lies which can then be mathematically verified. Both approaches are rock solid in terms of security as long as there are enough participants in the network.

The aforementioned watch/reward cycle with others agreeing on some change proposer's suggestion is called the consensus, and it can usually be joined by anyone as long as they have the hardware necessary to execute these modifications to the spreadsheet successfully, or the capital to guarantee their honest participation. If all watchers agree that the one who first reported a change is telling the truth, we say that they have reached consensus.

Thus, a blockchain is a global write-only database secured by its participants who get rewarded with the chain's intrinsic currency for doing a good job. If we assume that anything can be contained in the spreadsheet's cells, a blockchain is a means of globally transferring messages in a censorship-resistant way, where a message can be communication (chat), content (censorship resistant web sites), or financial (cryptocurrency transactions).

Mockchain

A mockchain is an emulation of a blockchain which is missing one of the key aspects of what makes a blockchain a blockchain.

A blockchain which uses a small set of publicly known users to watch the "spreadsheet", who can then be bribed or have no incentive not to collude, is a mockchain because it does not guarantee censorship resistance, resilience, uptime, or irreversibility of transactions (also known as finality). A notable example is EOS, see any of these results. A system like this is called Delegated Proof of Stake.

Another mockchain type is one which boasts free or near-free transactions, then uses the metric of transaction numbers to claim superiority. A transaction cost is a fundamental element of a blockchain that provides profit for the miners and prevents spam. Blockchains which encourage extremely low to no fees also encourage spam. This is done to appear active, and is usually facilitated by bots. A notable example is Tron. Imagine if sending a package via post cost $100, but sending it via truck was free. You would have roads full of empty freighters transporting two or three envelopes. That's possible in a world that's nothing but roads and self-driving trucks running on infinite fuel, but not in the real world. Same for blockchains - a transaction must have an associated cost, otherwise it has no value to begin with because the blockchain itself is composed of value-less transactions.

Finally, a very popular type of mockchain is IBM's Hyperledger suite of software products (and similar products like J.P. Morgan's Quorum) for building private blockchains. This is software which connects like a blockchain, but has no intrinsic cost to executing transactions, no built-in incentive mechanism (native cryptocurrency), and no way to accept outside parties into the "chain". The system is quite literally a pre-approved list of software entities which are allowed to modify a common database - much like if you were to make a private Google Spreadsheet and then only invite some people through a special sharing link. As such, this software is a slower, more expensive version of a standard permissioned event-sourcing database. While such software may find some use in cartels where entities must work together but don't trust each other (banks, airline companies), it has extremely limited use outside of this narrow context. Facebook's Libra also falls under this category, as it depends on up to 100 "validators" to validate transactions in a highly permissioned pay-to-participate system.

Differentiating mockchains and blockchains

It is often difficult to recognize mockchains among blockchains, especially if one isn't technically inclined or doesn't work in the field. The marketing machinery of mockchains is extremely powerful because they are designed for profit over everything else. If any of these can be answered by "No", it's a mockchain.

  • Can the blockchain's consensus be openly joined by anyone as long as they have the prerequisite hardware or capital, without needing a central operator's approval?
  • Does the blockchain have a native currency which is given as a reward to consensus participants?
  • Does the sending of messages (transactions) in this blockchain have a cost?
  • Are consensus participants sufficiently anonymous such that they cannot be easily identified or physically located in order to be prevented from participating in the blockchain's consensus?