Let’s get consensus – Part II
In the last article, we touched on a proof of work consensus algorithm, as used for bitcoin.
Proof of work is effective, but -- it has some drawback. Let’s start with a few:
- Lots of computation of hashes that does nothing and are all thrown out once a solution is found
- Waste of electricity
- Waste of compute capacity
- Slow – can take up to 10 minutes for a block to write and typically wallets want to see three or four blocks written, taking 40 minutes or so
- Expensive – each node (called a miner) can only accept so many transactions so they start charging fees, which are often several dollars or more
- Scales poorly – Each block can only take so many transactions
These are some pretty big negatives. Many people have rightly criticized blockchain for its waste of electricity, as well as other drawbacks. It is viewed as non-eco-friendly, and also slow and inflexible.
In an effort to keep the benefits of blockchain technologies, but improve on these criticisms, a handful of other consensus algorithms have emerged:
Trusted voting: This is sometimes called consensus, but consists of designated trusted parties who vote on whether a transaction should be accepted or not. Each party is supposed to look at whether the transaction is properly signed, and accept the transaction if it is, or reject if it it is not. Depending on the network protocol, a majority or super-majority is needed to accept a transaction.
Typically, each party runs one, or multiple nodes, and only the designed parties are allowed to run such nodes. Each party is designated by the protocol. For example, Facebook’s proposed Libra network uses this system, where the parties are companies/organizations which have joined the protocol. Each party/organization runs a node, and it would take compromising a majority of the nodes to compromise the network. Ripple also uses a system like this.
The benefits of such a system are that it can be fast, scalable and would require taking down a large number of nodes to compromise the system. The major downsides are that while it does not require trusting a single third party, it does require trusting a group of third parties. Also, the third parties can lose interest or have regulatory reasons to exit the network and users cannot step in as they can with other protocols.
In addition, given the relatively small number of nodes, there is good reason to believe that this type of network is more susceptible to government or other interference, as all nodes would likely comply with a fiat to act in a certain way.
Proof of stake: This is another common method where coinholders can vote on whether or not a transaction should be accepted. Similar to the trusted voting, the rights to vote are given pro-rata based upon the stakes of each coin held. This has many of the benefits of trusted voting, while not requiring large, individual parties to maintain their interest in the network. In addition, this system could allow for nodes to earn incentives for participating and voting in the network.
One drawback of this system is that it requires diverse coin ownership. As most networks start with high coin ownership concentration, this can be hard to satisfy. To help diversify ownership, some networks, like Ethereum, plan to start as a proof of work network and then change to proof of stake once ownership is sufficiently diverse. Much of the excitement around ethereum is for its anticipated change to proof of stake, when it should, in theory at least, become faster, more scalable and less expensive.
Proof of storage (capacity): One other method that gets lots of interest is proof of storage or proof of capacity. This is a technique where nodes pre-compute some values and then store the results. Similar to proof of work, have the result the fastest allows a node to win the contest for the current block. Each pre-computed and stored result is similar to the winning numbers of a lottery ticket and winning the lottery is necessary, such as solving the proof of work challenge first.
This is similar to proof of work, but has the benefit of not requiring the continuous hashing of values, and resulting electricity and computing use. Instead, large amounts of storage are dedicated to this problem, which uses substantially less electricity.
Chia, Filecoin and other networks use this as their consensus algorithms.
Summary: Consensus is one of the core parts of the blockchains. There are many ways to accomplish network consensus, each with some drawbacks. Yet, the amazing thing is that they all work, and are currently under heavy use in networks like bitcoin and ethereum. There may even emerge newer type consensus algorithms over time.