Consensus is a method for coming to agreement over a shared chain state. In order for the state of the blockchain to continue to build and move forward, all nodes in the network must agree and come to consensus. Consensus is the way that the nodes in a decentralized network are able to stay synced with each other. Without consensus for the decentralized network of nodes in a blockchain, there is no way to ensure that the state one node believes is true will be shared by the other nodes. Consensus aims to provide the objective view of the state amid participants who each have their own subjective views of the network. It is the process by which these nodes communicate and come to agreement, and are able to build new blocks.

Nominated Proof of Stake Consensus

In traditional PoS systems, block production participation is dependent on token holdings as opposed to computational power. While PoS developers usually have a proponent for equitable participation in a decentralized manner, most projects end up proposing some level of centralized operation, where the number of validators with full participation rights is limited. These validators are often seen to be the most wealthy, and, as a result, influence the PoS network as they are the highest staked. Usually, the number of candidates to maintain the network with the necessary knowledge (and equipment) is limited; this can directly increase operational costs as well. Systems with a large number of validators tend to form pools to decrease the variance of their revenue and profit from economies of scale. These pools are often off-chain. One way to alleviate this is to implement pool formation on-chain and allow token holders to vote [with their stake] for validators to represent them.

Geode uses NPoS (Nominated Proof-of-Stake) as its mechanism for selecting the validator set. It is designed with the roles of validators and nominators to maximize chain security. Anyone interested in maintaining the network can run a validator node. Validators assume the role of producing new blocks and guaranteeing finality. Nominators, on the other hand, can choose to back select validators with their stake. In other words, nominators can approve validator candidates that they trust and back them with their tokens.

Probabilistic vs. Provable Finality

A pure Nakamoto consensus blockchain that runs PoW (Proof of Work) is only able to achieve the notion of probabilistic finality and reach eventual consensus. Probabilistic finality means that under some assumptions about the network and participants, if we see a few blocks building on a given block, we can estimate the probability that it is final. Eventual consensus means that at some point in the future, all nodes will agree on the truthfulness of one set of data. This eventual consensus may take a long time and we will not be able to be determine how long it will take ahead of time. However, finality gadgets such as GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement) or Ethereum’s Casper FFG (the Friendly Finality Gadget) are designed to give stronger and quicker guarantees on the finality of blocks – that means that they can never be reverted after some process of Byzantine agreements has taken place. The notion of irreversible consensus is known as provable finality.

Hybrid Consensus

There are two protocols we use when we talk about the consensus protocol of Geode: GRANDPA and BABE (Blind Assignment for Blockchain Extension). We talk about both of these because Geode uses what is known as hybrid consensus. Hybrid consensus splits up the finality gadget from the block production mechanism.

This is a way of getting the benefits of probabilistic finality (the ability to always produce new blocks) and provable finality (having a universal agreement on the canonical chain with no chance for reversion) in Geode. It also avoids the corresponding drawbacks of each mechanism (the chance of unknowingly following the wrong fork in probabilistic finality, and a chance for “stalling” – not being able to produce new blocks – in provable finality). By combining these two mechanisms, Geode allows for blocks to be rapidly produced, and the slower finality mechanism to run in a separate process to finalize blocks without risking slower transaction processing or stalling.