FLETA — What are Consensus Algorithms?

FLETA aims to become the Google Android and Apple iOS of the blockchain market. It will deal with the existing problems of blockchains such as scalability, speed or decentralization and give developers a platform to create scalable and high-performing Dapps. FLETA is based on blockchain technology and the thing about the blockchain is that it is a wide-area network with no central authority figure.

In a traditional centralized organization, all the decisions are taken by the leader or board of decision makers. This isn’t possible in a blockchain because a blockchain has no one defined “leader.” So, how does the blockchain network make decisions? How do things get done in a decentralized environment?

The answer: Consensus Mechanisms

What are Consensus Mechanisms?

Before we look into consensus mechanisms, let’s understand what consensus means. Consensus is a dynamic way of reaching agreement in a group. While voting settles for a majority rule without any thought for the feelings and well-being of the minority, a consensus, on the other hand, makes sure that an agreement is reached which could benefit the entire group as a whole.

So, from an idealistic point of view, consensus can be used by a group of people scattered around the world to create a more equal and fair society. The method with which consensus is achieved is called “Consensus Mechanism.”

Objectives of Consensus Mechanisms

Let’s look into the main objectives of consensus mechanisms. What should a good quality consensus mechanism do? Well, let’s go through them one-by-one:

  • Agreement Seeking: Should give a result which helps in building agreement among the group.
  • Collaborative: The mechanism should allow the participants to work together and put the best interest of the group first.
  • Cooperative: All the participants shouldn’t put their own interests first and work as a team more than individuals.
  • Egalitarian: A group trying to achieve consensus should be as egalitarian as possible. One vote will not be more or less valuable than another person’s vote and will carry equal weight.
  • Inclusive: The process should include all the participants in the decision-making process. It shouldn’t be like normal voting where people don’t really feel like voting because they believe that their vote won’t have any weightage in the long run.
  • Participatory: The consensus mechanism should be such that everyone should actively participate in the overall process.

Alright, so that what consensus does, however, there is one more obstacle that needs to be overcome before creating a consensus mechanism for a blockchain system.

What is the Byzantine Generals Problem?

Ok so imagine that there is a group of Byzantine generals and they want to attack a city. They are facing two very distinct problems:

  • The generals and their armies are very far apart so centralized authority is impossible, which makes coordinated attack very tough.
  • The city has a vast army and the only way that they can win is if they all attack at once.

So, to coordinate their attack, a messenger will take a message from one general and then run towards the next one. In the process, all the generals will get the information needed and can launch their attack. However, what happens if one of the generals happen to turn malicious? They can simply tamper the message before it goes out to the other generals.

This has clear references to blockchain as well. The chain is a huge network; how can you possibly trust them? If you were sending someone 2 BTC from your wallet, how would you know for sure that someone in the network isn’t going to tamper with it and change 2 to 4 BTC?

This is what a “Byzantine System” means. Answering the Byzantine Generals Problem means creating a system which is decentralized and will work even if some of the elements in the network turn malicious.

Satoshi Nakamoto, the founder of Bitcoin, was able to answer this question by creating the proof-of-work consensus mechanism.

What is Proof-of-Work?

Proof-of-work(POW) is a method which uses the computational resources of the miners to solve cryptographically hard puzzles. To summarize the process, here is it how it works:

  • The miners solve cryptographic puzzles to “mine” a block in order to add to the blockchain.
  • This process requires an immense amount of energy and computational usage. The puzzles have been designed in a way which makes it hard and taxing on the system.
  • When a miner solves the puzzle, they present their block to the network for verification.
  • Verifying whether the block belongs to the chain or not is a straightforward process.

Now, while POW did its job, it was extremely inefficient. It is a slow and cumbersome process since it needs a supermajority (>2/3rd) approval from the entire network.

This is why, many modern smart contract platforms, like FLETA, EOS, and Cardano, are using a “leader-based” consensus model or delegated consensus. In delegated consensus, some members are chosen from the entire network via an election process. These members are in charge of the consensus mechanism. Since a relatively smaller set is in charge of the consensus as opposed to an entire network, leader-based mechanisms are considerably faster.

FLETA’s Consensus Mechanism

FLETA’s consensus mechanism is called “Proof of Formulation” (POF) which has been explained clearly in this article.

For now, instead of just running through POF again, let’s see how it measures up to EOS’ Delegated Proof of Stake (DPoS). DPoS is often regarded as the gold standard of leader-based consensus, so it makes sense to see how POF measures up against, seemingly, the best in the business.

DPos vs PoF

Block Time

DPos : 0.5 Seconds

PoF : 0.5 Seconds

Miner

DPoS : 21 Block Producers

PoF : All Formulator participates in the mining

Security

DPoS : Block Producers are in charge of the security

PoF : 5 Observer nodes are in charge of the security. They also prevent forks.

Transaction Speed

DPoS : Till now has achieved a high of 3,996 transactions per second.

PoF : Has achieved 15,000 transactions per second (tested and verified, aiming to reach 20,000 tps).