Byzantine Fault Tolerant System
·
In a blockchain, the
distributed systems in question are individual devices.
o With
each individual member of the network being known as a
§ “node”,
“peer”, “miner”, “validator”, or “actor”, amongst many other terms.
What
are the key features of a distributed system?
1.
Concurrency
Each computer
within the network will complete in agreement, meaning they are working concurrently. To put it
simply, each node in the network does everything at the same time.
2.
Timing difficulties
In order to coordinate
it’s
quite hard to say which computers in a distributed system did a thing first…
In
other words, it’s tricky to see which node discovered, mined, or validated the block first.
This
is due to the fact that computers, even if they are
set at the same time, naturally move out of sync. Which is an unfortunate
consequence, because in distributed systems we need a way of telling what event
happened first.
3.
Ability to deal with faulty
components.
Every
system will have faults
at some point or another. Whether that’s process crashing; message rejection, distortion or duplication; or even a network partitioning,
delaying or dropping messages. Sometimes systems just go confused.
This
is why it’s important for systems to be “Fault-tolerant”,
meaning they can still carry out their job despite failing components.

For example: Going back to our hybrid car
analogy, just because the battery dies doesn’t
mean the car crushes to an immediate halt, the gasoline tank will kick in
allowing the car to still operate.
So bringing this all back, it’s important that our
distributed system (i.e. everything within the ecosystem) is fault-tolerant.
There are three types of fault-tolerance you need to know:
1.
Simple
fault-tolerance
In this type of system, the network makes
the assumption that each computer/node does one of two things: they
either play by the rules, or they fail. In principle, this handles things
like crash-failures and omissions (see above), but
cannot handle malicious nodes.
2.
Byzantine
Fault Tolerant (BFT)
A Byzantine Fault Tolerant system is designed to handle
nodes that choose to be “Byantine” as well as those
which just simply crash.
3.
Byzantine
and Rational (BAR) fault-tolerance
While nodes can be downright malicious and Byzantine,
sometimes nodes will deviate from the network rules if it rational to do so.
Therefore, a BAR fault-tolerant system understands that sometimes nodes can be
either: Byzantine, Honest and always following protocol, or Rational (only
following protocol if it makes sense).
In order to be a fully functioning and secure distributed system, a
blockchain requires adequate protocols that manage and successfully navigate
these faults. Otherwise, it wouldn’t be secure, safe,
or effective enough for confident usage.
Early blockchain ecosystems used Proof of
Work, Proof of Stake and many other protocol variations struggled when it came
to BFT and BAR. This stopped
many industries adopting blockchain technology, particularly in the IoT space
where security is paramount.
It’s for this reason that New thought came together to develop
the customized and revolutionary protocol: Proof of Honesty.