Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Key Points


References

Reference_description_with_linked_URLs_______________________Notes______________________________________________________________
m blockchain types & concepts
s Blockchain Opportunity Assessment - BOA
s Blockchains Compared: Fabric, Corda, Ethereum


https://www.geeksforgeeks.org/consensus-algorithms-in-blockchain/

Consensus Algorithms in Blockchain **










Key Concepts



Consensus Algorithms in Blockchain

https://www.geeksforgeeks.org/consensus-algorithms-in-blockchain/

Blockchain is a distributed decentralized network that provides immutability, privacy, security, and transparency

 A consensus algorithm is a procedure through which all the SELECTED peers of the Blockchain network reach a common agreement about the present state of the distributed ledger.

the consensus protocol makes sure that every new block that is added to the Blockchain is the one and only version of the truth that is agreed upon by all the nodes in the Blockchain

Practical Byzantine Fault Tolerance (PBFT)

https://www.geeksforgeeks.org/practical-byzantine-fault-tolerancepbft/

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. The objective of a BFT mechanism is to safeguard against the system failures by employing collective decision making(both – correct and faulty nodes) which aims to reduce to influence of the faulty nodes. BFT is derived from Byzantine Generals’ Problem.

Byzantine fault tolerance can be achieved if the correctly working nodes in the network reach an agreement on their values. There can be a default vote value given to missing messages i.e., we can assume that the message from a particular node is ‘faulty’ if the message is not received within a certain time limit. Furthermore, we can also assign a default response if the majority of nodes respond with a correct value.

a consensus(agreement on same state) can be reached if atmost m processors are faulty which means that strictly more than two-thirds of the total number of processors should be honest.

Some of the arbitrary node failures are given below :

  • Failure to return a result
  • Respond with an incorrect result
  • Respond with a deliberately misleading result
  • Respond with a different result to different parts of the system

The goal is that all honest nodes help in reaching a consensus regarding the state of the system using the majority rule.
A practical Byzantine Fault Tolerant system can function on the condition that the maximum number of malicious nodes must not be greater than or equal to one-third of all the nodes in the system. As the number of nodes increase, the system becomes more secure.

pBFT consensus rounds are broken into 4 phases(refer with the image below):

  • The client sends a request to the primary(leader) node.
  • The primary(leader) node broadcasts the request to the all the secondary(backup) nodes.
  • The nodes(primary and secondaries) perform the service requested and then send back a reply to the client.
  • The request is served successfully when the client receives ‘m+1’ replies from different nodes in the network with the same result, where m is the maximum number of faulty nodes allowed.

pbft algorithm communication visual


If needed, a majority of the honest nodes can vote on the legitimacy of the current leading node and replace it with the next leading node in line.

pBFT limitations

  1. good for small node count
    pBFT consensus model works efficiently only when the number of nodes in the distributed network is small due to the high communication overhead that increases exponentially with every extra node in the network.
  2. susceptible to Sybil attacks, where one entity(party) controls many identities.
  3. scaling
    As the number of nodes in the network increase(increases as O(n^k), where n is the messages and k is the number of nodes), so does the time taken to respond to the request.






Potential Value Opportunities



Potential Challenges



Candidate Solutions



Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps



  • No labels