Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Byzantine fault tolerance (BFT) and Crash fault tolerance (CFT)

Crash fault tolerance (CFT) is one level of resiliency, where the system can still correctly reach consensus if components fail. While Byzantine fault tolerance (BFT), which says the orderer can do its job even in the presence of malicious actors. Below are my questions

  1. CFT is more useful for single enterprise. Presently Hyperleger Fabric uses Kafka which is CFT. Even in the case of multiple organization we are using Kafka in Hyperledger Fabric network. Does it mean still we are using CFT?

  2. In CFT, How system can still correctly reach consensus if components fail? For example network is down, or malcious node present in system etc

  3. Can CFT work even in presence of malicious actor?

  4. How Hyperledger Fabric implements BFT? When will they release it?

  5. What is the main difference between CFT & BFT?

like image 701
BlockchainGeek Avatar asked May 28 '19 06:05

BlockchainGeek


People also ask

What is Byzantine fault and Byzantine fault tolerance system?

What is Byzantine Fault Tolerance? Byzantine Fault Tolerance(BFT) is the feature of a distributed network to reach consensus(agreement on the same value) even when some of the nodes in the network fail to respond or respond with incorrect information.

What is Crash Fault Tolerance?

Crash fault tolerance (CFT) builds a degree of resiliency in the protocol, so that the algorithm can correctly take the process forward and reach consensus, even if certain components fail. CFT is a good solution when a component of the system fails.

What is BFT protocol?

Byzantine fault-tolerant (BFT) protocols allow a group of replicas to come to a consensus even when some of the replicas are Byzantine faulty. There exist multiple BFT protocols to securely tolerate an optimal number of faults t under different network settings.

What is Lamport Shostak Pease BFT algorithm?

Lamport-Shostak-Pease BFT Algorithm Practical Byzantine Fault Tolerance (pBFT) is a consensus algorithm introduced in the late 90s by Barbara Liskov and Miguel Castro. pBFT was designed to work efficiently in asynchronous (no upper bound on when the response to the request will be received) systems.


1 Answers

  1. CFT is more useful for single enterprise. Presently Hyperleger Fabric uses Kafka which is CFT. Even in the case of multiple organization we are using Kafka in Hyperledger Fabric network. Does it mean still we are using CFT?

Yes it's still CFT, Crash Fault Tolerant model guaranties to withstand system failures, such as crashes, network partitioning. Having N nodes in your consensus system CFT capable to withstand up to N/2 such crashes. Fact that you might distribute it across organizations or different clouds won't change this assumption.

  1. In CFT, How system can still correctly reach consensus if components fail? For example network is down, or malcious node present in system etc

In CFT model there is quorum of N/2 + 1 nodes which has to agree on certain value, therefore as long as you have N/2 + 1 nodes available, which means you have a quorum you will be able to reach agreement, since majority agrees on it. And NO it cannot guarantee anything in presence of malicious actors.

  1. Can CFT work even in presence of malicious actor?

Nope.

  1. How Hyperledger Fabric implements BFT? When will they release it?

There is a plan to implement BFT protocol and integrate in into Fabric, however exact days currently under carefully design and planning. I guess it will be reveled at one of the bi-weekly maintainers meetings.

  1. What is the main difference between CFT & BFT?

The key difference is in the assumptions and threat/failure model, CFT can withstand up to N/2 system failures, while no guarantees on adversary nodes. BFT provides with guarantees to withstand and correctly reach consensus in presence of N/3 failures of any kind including Byzantine. You can think of it as two phase commit versus three phase commit.

like image 63
Artem Barger Avatar answered Sep 27 '22 22:09

Artem Barger