DigitalForest Blog

Blockchain consensus algorithms overview. Part 2

Overview of Ouroboros PoS, Proof of Elapsed Time, Practical Byzantine Fault Tolerance algorithms
December 26 2019
In a new overview of consensus algorithms, I'd like to bring to your attention a few more algorithms that I find to be quite interesting.
Read the first part of the overview of blockchain consensus algorithms
Overview of 9 most popular consensus algorithms for blockchain networks : PoS, PoW, DPoW and others.

Ouroboros Proof-of-stake (PoS)

As the name implies, the Ouroboros PoS algorithm is based on the PoS algorithm. In particular, it is similar to various subsets of the Delegated PoS (DPoS) algorithm with their own various features. As well as for the classical PoS algorithm, all peer owners with a positive token balance can participate in blocks generation.

Let's take a closer look at how the nodes that form and sign blocks are selected. The main time entities in Ouroboros are Epochs and Slots, where each Epoch is divided into Slots (for example, 20 seconds). Each Slot has its own Slot Leader, a chosen peer owner, that has to generate and sign a block formed within a framework of a specific Slot. In case if for some reason, the Slot Leader wasn't able to sign a block in its Slor, he loses his right to generate a block in the current Slot.

The election of the Slot Leaders is performed as follows:
  • Slot Leader of the following Epoch is elected during the current Epoch and a number of Slots for the next Epoch is chosen accordingly
  • Each stakeholder has a chance to become a Slot Leader, but the more tokens a stakeholder has, the higher his chances of becoming a Slot Leader
  • A special group of stakeholders, Electors, who has enough stake, for example, 2% of all tokens, participate in the election
  • Each of the electors makes a random selection of potential Slot Leaders, after which, using the Follow-the-Satoshi algorithm,, real Slot Leaders for the next Epoch are elected from the generated list.


Proof of Elapsed Time (PoET)

The Proof-of-Elapsed-Time Consensus Algorithm, developed by Intel, is currently used as the consensus algorithm in the Hyperledger Sawtooth project.

Essentially, the PoET algorithm is similar to the PoW algorithm, but it doesn't require using a significant amount of power, which is needed for PoW operation. Equipment used to generate a block creates a new block and then switches to other tasks not related to block generation until it's time to generate the next block. A built-in mechanism ensures that each peer in the network has a guarantee that the time period is chosen randomly — initially, it should be no less than purposely chosen by the participants in order to win — and also ensures that a winning node has waited for a required amount of time. Special instructions of Intel processors Intel Software Guard Extensions (SGX) are responsible for the operation of this mechanism.

The algorithm works as follows:
  • The waiting time is randomly generated at each node in the blockchain network
  • The node that received the minimum waiting time generates and signs the next block
  • Until it's time for the node to generate the block, it doesn't perform any tasks linked to the block generation. So the first node to "wake up" becomes the node to sign the next block.

Learn how to apply private blockchain solutions to your business

Practical Byzantine Fault Tolerance (pBFT)

pBTFT algorithm was proposed in 1999 as a mechanism to provide decentralized network performance integrity. For its operation, pBFT intensively uses a network to exchange messages between network nodes to ensure a coherent network operation. The algorithm is a great fit for trusted networks, such as intra-corporate or inter-organization blockchains. For this reason, this algorithm is used in the Hyperledger project, which is originally designed to work in such trusted environments.

The algorithm works as follows:
  • A node that received a transaction sends it to all nodes in the current network. The content of the transaction doesn't get verified, because most of the nodes in the network are considered to be carriers of valid information.
  • Each node that receives data from all other network nodes, compares them and in case of receiving more than 2/3 of the "votes" for the transaction, accepts it.

  • The algorithm allows for avoiding significant costs of "meaningless" calculations, as PoW algorithm does.
  • It has a fairly high performance with a relatively small number of nodes in the blockchain network.

  • It has pretty high overhead costs for interactions among network nodes.
  • Because of that, it has a significant limitation in the size of the network, since a sufficiently large network will be "blocked" by high network costs between nodes.
  • There is a significant vulnerability of small networks (with less than 20 nodes), as well as for networks with one managing person, for example, within the same organization.


Now on the market, there are more than 12 consensus algorithms, but they either derived from the algorithms I have described in both articles, or for one reason or another they don't seem interesting enough for me, at least for now.

If you want me to review some other consensus algorithms, do not be shy, leave your request using the form below and I will try to write about them in the nearest future.
Any questions? Text us

DigitalForest Blog

© 2017-2019 DigitalForest Ltd.
Republic of Belarus,
Minsk, 220036
Karla Libknekhta, str., 66, office 403
Tax ID: 192795922

We use cookies to provide the best site experience. By continuing to browse the site, you are agreeing to our use of cookies.
Ok, I agree