Blockchain technology is a significant technological advancement. Decentralized, peer-to-peer systems are only possible due to consensus algorithms. But what do these consensus mechanisms do, how do they work, and what makes them different? Here’s Part 2 of our series covering all you need to know.
Previously, we published Part 1 of this series (Blockchain Consensus Algorithms Don’t Have to Be Confusing: PoW, PoS, and DPoS (Part 1)) to explore some of the most popular consensus algorithms. As we stated in Part 1, due to the energy consumption required to power the network, many are concerned. Even though bitcoin solely exists in ones and zeroes, the network is a massive energy drain. According to the bitcoin energy consumption tracker at Digiconomist, bitcoin currently consumes 66.7 terawatt-hours per year.
Now, many in the cryptocurrency space are discussing possible solutions and implementations for reducing energy usage and improving efficiency for both bitcoin and other cryptocurrencies. Below, we explain all you need to know about PoA, PoWeight, BFT, and DAG.
What is a Consensus Algorithm?
As a primer, and in case you missed our Part 1 series, a consensus algorithm is a process in computer science used to achieve agreement on a single data value among distributed processes or systems. Consensus algorithms are designed to achieve reliability in a network involving multiple unreliable nodes.
With a distributed network of computers, it’s crucial that each participant is on the same page. For a cryptocurrency system, that means ensuring a sufficiently large number of nodes in the network are in agreement about what the transaction history is, and how to validate a transaction. This is what establishes the singular version of the truth that is a blockchain. Additionally, these consensus algorithms make abusing decentralized networks by a singular party incredibly difficult.
As seen in: POA Network, GoChain, GoJoy, and private blockchains.
Proof of Authority, or PoA, is a consensus designed as an optimized Proof of Stake model that utilizes identity on the blockchain as a staking mechanism rather than tokens. Supporters of Proof-of-Authority (PoA) assert that this consensus is a compromise between models aiming at complete decentralization and more efficient, centralized models. “PoA” was coined by co-founder and former Ethereum CTO, Gavin Wood, as the consensus was originally created to mitigate spam attacks on Ethereum’s Ropsten test network.
As Blockonomi states, “The main characteristics of a PoA network are a low requirement of computational power, no requirement of communication between nodes to reach consensus, and continuity of the network is independent of the number of the available genuine nodes since they are pre-approved and verifiably trustable through cross verification in the public domain.”
Using PoA, transactions are approved and blocks are created by specialized approved accounts. While PoA offers high throughput, its centralized nature means you’re likely to only see it in private networks.
However, as PoA Network explains:
“The big vulnerability of such a concept, however, is the fact that the same size stake may be valued differently by different actors. For example, take Alice, an early adopter of the blockchain technology with a massive portfolio of digital assets, and Bob, a newbie who is just exploring the emerging token economy. Let’s say they both hold the same stake in a hypothetical network, Elixirium, 1,000 ELX each. In isolation, we could assume that Alice and Bob are equally interested in Elixirium’s success. We cannot be as confident, however, when we take their other holdings into consideration. If 1,000 ELX is only 1% of Alice’s total wealth, while for Bob it represents nearly 50%, their incentives are tough to compare. Alice might care about Elixirium much less than Bob does, even though they have the same stake. Consequently, her desire to act in the interest of the network might also not be as strong as Bob’s.
Is there a way to preserve the staking concept, with scarcity and measurability of stake, while ensuring that all who place that stake value it similarly, regardless of other circumstances? Proof of Authority, an alternative consensus mechanism in which the nodes validating blocks are the ones explicitly allowed to do so, might be an interesting approach to consider. Proof of Authority (PoA) is a modified form of Proof of Stake (PoS) where instead of stake with the monetary value, a validator’s identity performs the role of stake. In this context, identity means the correspondence between a validator’s personal identification on the platform with officially issued documentation for the same person, i.e. certainty that a validator is exactly who that person represents to be.”
As seen in: Filecoin and Chia.
Proof-of-Weight (PoWeight) is similar in concept to the PoS system but uses different criteria for determining someone’s likelihood of discovering the next block. As explained in CoinCodex, “Proof-of-weight consensus mechanisms are based on the Algorand consensus model, developed by researchers at the MIT Computer Science & Artificial Intelligence Laboratory. The Algorand protocol facilitates very quick transactions by relying on a Byzantine agreement protocol, which also makes it capable of scaling to many users.
In a network utilizing proof-of-weight, weighted users play an integral role in the process of achieving consensus. Every user is assigned a certain “weight”, which is relative to a selected value that represents a user’s contribution to the network. In order to prevent double-spending attacks and other foul play on the blockchain, the majority (more than two thirds) of the weighted fraction has to belong to honest users.”
In PoS, your chances are dependent on the percentage of coins at stake related to the rest of the network, but PoWeight can use other weighted values to determine the probability.
Byzantine Fault Tolerance (BFT)
As seen in: Stellar, HyperLedger, and Ripple.
Blockchain technology uniquely addresses the classic computing issues, the “Byzantine Generals’ Problem”. As best described at Lisk, this Problem states that, “no two computers on a decentralized network can entirely and irrefutably guarantee that they are displaying the same data. Assuming the network is unreliable, they can never be sure that the data that they communicated has arrived. At its core, the Byzantine Generals’ Problem is achieving a consensus across a distributed network of devices, some of which could be potentially faulty, while also being wary of any attackers attempting to undermine the network. Byzantine Fault Tolerance means that two nodes can communicate safely across a network, knowing that they are displaying the same data.”
A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation.
There are two popular forms of Byzantine Fault Tolerance (BFT):
Practical Byzantine Fault Tolerance (pBFT): Used by HyperLedger, pBFT eliminates the need for transaction confirmations and relies on the assumption that less than ⅓ of the nodes are acting maliciously because of the permissioned, invite-only nature of the system. There’s already a level of trust between parties in the network.
Federated Byzantine Agreement (FBA): FBA is utilized by currencies like Ripple and every Byzantine General is responsible for their own chain and goes through information to establish the truth. In the case of Ripple, these Generals are pre-selected, but for Stellar, anyone can be a validator so you choose whom to trust. Nodes don’t need to be verified ahead of time and system-wide quorums are reached by decisions from individual nodes.
Directed Acyclic Graphs (DAG): Non-Blockchain Consensus
Reaching consensus is important for all distributed systems, not just those that are blockchain-based. Outside of blockchain networks, there are various other implementations of DAG used to keep everyone on the same page mainly asynchronously.
Tangle: The DAG implemented by Iota, Tangle, is a distributed system that doesn’t use a chain, but rather a large web. To complete a transaction successfully, the party in question must first confirm two previous transactions. The advantage here is incredible scalability and security once the network continues to grow.
Block-Lattice: The Nano project (formerly RaiBlocks) utilizes a spin on the classic blockchain model where every address has their own chain that only it can write to and a copy of each chain is held by everyone on the network. Because the entire network doesn’t need to process each transaction, the block-lattice approach is intended to significantly increase transaction time speeds.
SPECTRE: “Serialization of Proof-of-Work Events: Confirming Transactions via Recursive Elections” is a twist on traditional PoW mixed with DAG. With SPECTRE, blocks are mined that point to multiple parent blocks, not just one. The blocks with the most mined children then gain validity, meaning that the network can potentially handle multiple blocks per second. This proposed Bitcoin scaling solution looks not to the longest chain but to the blocks with the most children.
The blockchain and cryptocurrency space continues to rapidly evolve. Experimentation and implementation of various, divergent consensus models will continue as the ecosystem changes. Over time, we are likely to see more innovation and solutions that are tailored to solve specific problems rather than a one-size-fits-all algorithm.
Want to Know More About All the Awesome Stuff We Do?
DecentraNet is a purpose-driven investment and advisory firm specializing in blockchain and other transformational technologies with global impact. We also create event experiences and innovative content to bring our clients projects to market and to evangelize the potential of transformational technologies generally.
- Click HERE for instant access to our 2019 Market Report. Explore what 30 thought-leaders from dozens of industry verticals had to say.
- We are advisors and consultants that work with blockchain companies and other transformational technology projects. If you’d like to connect with us on how we can help your company, please click HERE or send us an email at firstname.lastname@example.org.
- You can also reach out to inquire about any of our current clients or portfolio companies at email@example.com.