13

I am reading about Quorum which is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms. I have read about QuorumChain consensus and Raft consensus from this document.

According to this answer and this link, Istanbul consensus mechanism implemented in a quorum. What are the advantages and disadvantages of each consensus mechanisms used in a quorum?

10

I'm not an expert on this Quorum world. But as i've read, the main difference between the three mechanisms you mentioned is the % of BFT (Byzantinism Fault Tolerance).

BFT is defined as:

Byzantine fault tolerance (BFT) is the dependability of a fault-tolerant computer system, particularly distributed computing systems, where components may fail and there is imperfect information on whether a component is failed. In a "Byzantine failure", a component such as a server can inconsistently appear both failed and functioning to failure-detection systems, presenting different symptoms to different observers. It is difficult for the other components to declare it failed and shut it out of the network, because they need to first reach a consensus regarding which component is failed in the first place. The term is derived from the Byzantine Generals' Problem,1 where actors must agree on a concerted strategy to avoid catastrophic system failure, but some of the actors are unreliable. Byzantine fault tolerance has been also referred to with the phrases interactive consistency or source congruency, error avalanche, Byzantine agreement problem, Byzantine generals problem, and Byzantine failure.[2]

  • Raft: No, Raft's initial description (by Diego Ongaro and John Ousterhout) is not byzantine fault-tolerant.

Imagine a node that votes twice in a given term, or votes for another node that has a log which is not up-to-date like its own and that node becomes leader. Such behaviour could cause split-brains (case where to two nodes believing themselves to be leader) or inconsistencies in the log.

Scenarios like permissionated blockchains where nodes are holded by different companies, it's important to have some BFT properties in order to be sure that everyone is beheaving correctly. And that's why Istanbul was born.

  • Istanbul
  • Implements control over some types of byzantine behaviours on nodes.

Being F: # of Byzantine nodes on the network.

Istanbul is based on a commitment consensus where each node waits until 2F + 1 commits from different validators with the same result before inserting the block into the blockchain.

You have a very good slides explaining how Istanbul works here: https://es.slideshare.net/YuTeLin1/istanbul-bft

Can't say anything about QuorumChain because i've not read almost anything of it. Hope it helps!

  • Great answer, but I don't fully understand the last part. If F is the # of nodes, how can you wait until 2F +1 commits? – Federico Caccia Sep 3 '18 at 22:03
  • 1
    @FedericoCaccia in PBFT, f is the number of faulty nodes that can be tolerated. For f faulty nodes to be tolerated, there must be 3f+1 nodes in total. – Paymahn Moghadasian Nov 16 '18 at 14:13
  • @FedericoCaccia given 3F+1 validator nodes are required to tolerate faulty nodes, each validator must hear from 2F+1 nodes to commit a transaction. So for the minimum # f nodes 4, you must receive messages from 3 nodes to validate a transaction or 75%. If you move to higher # nodes, this is ~ 2/3 of nodes. SO if 2/3 of nodes are well-behaved, the PBFT algorithm will ensure a consistent blockchain. – DPen Nov 28 '18 at 20:38
1

I am reading about Quorum which is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms. I have read about QuorumChain consensus and Raft consensus from this document.

According to this answer and this link, Istanbul consensus mechanism implemented in a quorum. What are the advantages and disadvantages of each consensus mechanisms used in a quorum?

Raft is the most basic implementation of a consensus algorithm, it's tested and proven. It operates by servers pinging about every third of a second for a response from a leader (a server) which ensures that all logs (ledgers) are the same.

Quorum as a permissioned blockchain means it is a POA (proof of autonomy) and not POS or POW. It operates with what I understand, a central server at all times running the instructions but to have Byzantine Fault Tolerance, there is a group of these "allowed" servers to be leaders.

Under the Raft consensus (which Quorum is built on and just a step above), a leader can be elected very quickly without even the rest of the blockchain knowing. This is problematic.

The third block on top of all this, is designed by a company called Amis in Taiwan. Their solution is to get other nodes to confirm that there is no leader and no response with the 2f + 1 protocol, meaning that you and two other nodes have to have confirmation that there is no leading server prior to an election going down.

It's all based on Raft as it's core. With Quorum acting as the blockchain layer and Istanbul BFT acting as another layer of security on top of Quorum.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.