Blockchain Developer's Guide
上QQ阅读APP看书,第一时间看更新

Byzantine faults

To understand PBFT and all the other consensus algorithms that come afterward, it's important to first define what a Byzantine fault is. A Byzantine fault is any event or result that would disrupt the consistency of a distributed system, such as the following:

  • Failure to return any result
  • Return of an incorrect or inconsistent result
  • Return of a deliberately misleading result
  • Any behavior that isn't defined beforehand

If any of these events happen, a Byzantine fault is said to have occurred. A Byzantine fault tolerant system is, therefore, able to handle some level of inconsistent input but still provide a correct result at the end. The key here is that such systems are fault tolerant, not fault immune. All fault tolerant systems can only tolerate so much before their tolerance is exhausted and the system fails in some way.