Unit 3
Unit 3
⚫ Characteristics:
⚫ A major feature is a transparency based
on the objective of the organization.
⚫ Another feature is the lack of anatomy
as only a limited number of users are
allowed.
⚫ It does not have a central authority.
⚫ Developed by private authority.
Unit – 3 Permissioned BC Consensus
⚫ Permissioned Blockchain
⚫ There is a central authority responsible for issuing licenses to
participate in the network.
⚫ This authority may or may not grant equal rights to participating
nodes, but in any case only authorized entities will have access to
the records contained in the ledger.
⚫ As permissioned blockchains usually have a restricted number of
participants, and as the consensus mechanism is more centralized,
they are able to process a larger number of transactions in less time
compared to a public blockchain.
⚫ However, since records cannot be independently verified, their
integrity will depend solely on the credibility of the participants —
meaning that they need to trust each other.
⚫Permissioned Model:
⚫A blockchain architecture where users are authenticated
apriroy.
⚫Users know each other
⚫However, users may not trust each other – security and
consensus are still required.
⚫Run blockchain among known and identified
participants.
⚫Permissioned Model:
⚫A blockchain application or application of public ledgers
where it have certain no. of nodes which is a kind of
closed environment, so the nodes which knows each other
and they tries to come to common platform where there
is no such centralized database or data server rather still
want a complete decentralized architecture,
⚫But the difference is that now rather than having
complete open environment, it have closed
environment.
⚫The set of nodes which knows each other apriory but they
may not trust each other such type of particular setting is
a permissioned model environment.
⚫ Permissioned Blockchain
⚫ Advantages:
⚫ This blockchain tends to be faster as it has some nodes for
validations.
⚫ They can offer customizability.
⚫ Strong Privacy as permission is needed for accessing
transaction information.
⚫ As few nodes are involved performance and scalability are increased.
⚫ Disadvantages:
⚫ Not truly decentralized as it requires permission
⚫ Risk of corruption as only a few participants are involved.
⚫ Anytime owner and operator can change the rules as per their need.
⚫ Permissioned Blockchain
⚫ Use Cases:
⚫ With proper security and maintenance, this blockchain is a great
asset to secure information without exposing it to the public eye.
⚫ Therefore companies use them for internal auditing, voting, and
asset management.
⚫ An example of permissioned blockchains is Hyperledger, Corda.
⚫ Permissioned blockchains are generally used to manage
⚫ supply chains,
⚫ create contracts,
⚫ Particularly interesting for business applications – execute
certain contracts among a closed set of participants.
⚫ verify payment between parties, and much more…
⚫ Permissioned Blockchain
⚫ Use Cases:
⚫ Financial Services:
⚫ Trade Finance:Trade finance provides delivery and payment
assurance to buyers and sellers.
⚫ The blockchain can be used by the legal entities to sign all
approvals, keeping all parties informed regarding the approval
status, when goods are received and when payment is transferred
from the importer’s to the exporter’s bank.
⚫ Cross-border transactions: Nostro(ours)/vostro(yours) accounts
can become stored account transactions on a blockchain to
dramatically improve transparency and efficiency through
automated reconciliation of accounts.
⚫ Permissioned Blockchain
⚫ Government:
⚫ A considerable amount of government involves recording
transactions and tracking ownership of assets, all of which can be
made more efficient and transparent through the use of blockchain.
⚫ Organisations can apply blockchain by issuing digitally
authenticated birth certificates that are unforgeable, time-
stamped, and accessible to anyone in the world.
⚫ Health Care:
⚫ Blockchain holds the complete medical history for each patient,
with multiple granularities of control by the patient, doctors,
regulators, hospitals, insurers, and so on, providing a secure
mechanism to record and maintain comprehensive medical
histories for every patient.
⚫ Permissioned Blockchain
⚫ Supply Chain Management:
⚫ Food Safety: Powered by IBM Blockchain, IBM FoodTrust directly
connects participants through a permissioned, permanent, and
shared record of food origin details, processing data, shipping
details, and more.
⚫ Global Trade: More than $4 trillion in goods are shipped each year,
with 80 percent of those shipments carried by the ocean shipping
industry.
⚫ Yet the cost of trade documentation is estimated to reach one-fifth
of the actual physical transportation costs.
⚫ Blockchain’s distributed ledger technology to help speed goods on
their journey from manufacturer to market, providing one
universal view of the truth to unleash new transparency & remove
friction.
⚫ Design issues for Permissioned blockchain :
⚫ BGP (Byzantine General Protocols) protocols such as PBFT
provide consensus mechanisms in permissioned BCs.
⚫ A BGP protocol allows the network to detect the behavior of
malicious nodes, and all working nodes can reach a consensus if the
number of compromised node is less than one-third of the total
number of nodes, or n >= 3f +1 where n is the number of nodes
and f is the number of compromised nodes.
⚫ PBFT has three phases, and each node maintains its own view
of the network.
⚫ The protocol is initiated by a leader in the network. Even if the
leader failed, other nodes take over the responsibility and resume
the operation.
⚫ Design issues for Permissioned blockchain :
⚫ As they are valid tickets, they should be stored in the next block.
⚫ This scenario is considered as false negative as a valid
message was excluded due to various reasons.
⚫ Issue 5 is a new problem due to Issue 4 as data not included in the
previous block can be included in the next new block to be created,
thus potentially an increasing number of data can be postponed and
continued to be considered for inclusion.
⚫ But some of these data may not be valid at all, and should be
removed for good rather than to be re-considered in future blocks.
⚫ This scenario is considered as false positive as invalid messages
continued to be considered in block creation.
⚫ Execute contracts :
⚫ Smart contract is a self executing contract in which the terms of
the agreement between the buyer and the seller is directly
written into the lines of code.
⚫ It is like that you can not use the pen and paper to write
down the contract rather the entire contract is written inside
the code.
⚫ The question comes that how this type of contract may get
executed or how a blockchain can help you to execute this type of
contracts.
⚫ Remember the bitcoin scripts – According to concept of bitcoin
script, It is certain small code through which you can change the
control on how the money that you are transferring to someone
that will be spend latter on.
⚫ Execute contracts :
⚫ So by writing the rules into the bitcoin script where there is input
script and output script and our task could be to map the output of the
previous transaction to the input of the next transaction which will
give you an
⚫ Idea or verifiable way of finding out how the bitcoin that you are
transferring to your friend or how the bitcoin that you are transferring
to your client that is going to be used latter on.
⚫ You can write the script where Your friend can use that money
immediately or
⚫ At the same time we have seen that you can write a script inside bitcoin
where you can prevent your friend to use that money for 2 months.
⚫ It is just like that whenever this 2 months pipeline duration gets over
your friend will be able to use that particular bitcoin for further
transactions.
⚫ Execute contracts :
⚫ In case of smart contract this idea is expand further where it is not
like that some small simple scripts which are been used by bitcoin
rather with detailed that script through some general purpose
programming language can execute complex type of contracts
like if certain conditions are met then only this particular bitcoin
will be spendable.
⚫ So if that friend meets certain condition or if some environment
condition that can comes from the other third parties they gets
validated or they made, only during that time the contract will get
executed and it will be used further or the money can be used
further after all these conditions get verified.
⚫ Execute contracts :
⚫ So the concept of smart contract comes from this fact like
⚫ You can extend this simple script which is used in bitcoin to ensure
smart contract execution
⚫ -- Execute a transaction only when certain condition is satisfied
⚫ Execute contracts :
⚫ Example:
⚫ You execute a transaction when certain condition is satisfied.
⚫ So you have a seller, you have a buyer and you have certain assets and the
contract mix the match with the buyer and seller now whenever you are
buying something there are certain scripts that will be executed at the
seller side and there will be certain scripts that will be executed at the
buyer side. So, whenever someone is selling something they have a
contract like if I get this much amount of money then I can transfer the
⚫ Execute contracts :
⚫ Example:
⚫ Assets from myself to you and the buyer the idea is that the moment I
have transferred this much of money the asset should be in my hand
within certain duration. So you can write a contract to ensure this kind
of environment. So, it is like that the moment the buyer transfers the
money to the seller, the ownership of the asset goes from the seller to
the buyer and the code that you have written that particular code
actually validate whether the
⚫ Execute contracts :
⚫ buyer has transferred that certain amount of money. In general you can
think of in terms of bitcoin or any type of digital currency, It is like that
the moment the buyer has send that certain amount of currency to the
seller and the contract actually verifies that well this amount of money
has been transferred from the buyer to the seller and then it sends the
ownership of that particular asset from the seller to the buyer. So the
seller will not be able to claim the ownership on that asset any further
whereas the buyer will be able to claim his or her ownership on that
particular asset. So, that is the concept of smart contract which we can
execute in closed environment
with the help of blockchain.
so here the fact is that in a
typical business platform you
have fixed number of sellers
⚫ Execute contracts :
⚫ Example:
⚫ Or fixed number of buyers or you can say that there are limited
numbers of buyers and sellers in the market and the buyers and
sellers can always register to a central portal so that everyone can
know each other.
⚫ So, we are making an insurance that everyone knows each other.The
buyer knows the seller and the seller knows the buyer, but there
may not be any trust relationship between them. It may happened
that some seller is fraud and that seller it is just taking the money
and not giving the asset to you.
⚫ So, that kind of fraud, that kind of malicious activities in the
systems we want to prevent with the help of the permissioned
blockchain.
⚫ Design Limitations:
⚫ Let us look into, many of the design limitations which are
there in permissioned environment.
⚫ So, if you look into the blockchain concept which actually comes
from the typical permission less environment like a bitcoin type
of example,
⚫ There is one issue that we execute the transaction sequentially
based on the consensus.
⚫ So, it is like that if certain transaction gets verified or if it gets
committed that will first executed and the transaction that is
committed latter on, that will executed next.
⚫ So, the request to the application, application here of the smart
contracts, they are ordered by the order of the consensus in which
the individual application of the individual contracts get a
consensus and they are executed in that particular order.
⚫ Design Limitations:
⚫ So, these kind of sequential order actually gives a bound on the
effective throughput because you want to ensure that certain
consensus or certain ordering of transactions are made.
⚫ We apply that proof of work base techniques in case of
permission less model where the network or the system gives the
challenge to the individual users.
⚫ Every user tries to solve that particular challenge individually and
the nature of the challenge is such that it is difficult to find out the
solution for that challenge, but once a solution is found everyone
can verify it very easily.
⚫ So, with that particular challenge response based method the nodes
try to come to the consensus, but as we have seen like the challenge
is very hard.
⚫ Design Limitations:
⚫ As the challenge is taking certain time to get a solution and that is the
reason that if you want this kind of serializable order of transactions
execution you get a bound on the effective throughput.
⚫ So, ideally the throughput is inversely proportional to the commitment
latency. So it is like that if your commitment latency gets increased, your
throughput will get then decreased.
⚫ So it is like that in a permission less environment in a bitcoin type of
environment if you increase the difficulty of your challenge or if you
increase the complexity of your challenge the effective throughput that
you will get that (throughput here in terms of no. of transactions that can
be committed per second per unit time), So the effective throughput that
you will get it will drop inversely proportional to the commitment
latency so this can be a possible attack on the smart contract platform.
⚫ Design Limitations:
⚫ When you introduced contract, it will and which will take long
time to execute and that is why if certain contract take huge time to
execute, the other contracts will not able to execute in further,
because once the consensus for the previous contract has been
reached then only you will be execute the contracts which has been
submitted later on.
⚫ So you maintain a kind of serializability order of the transaction
which is preventing to execute later contract until the previous
contract gets executed.
⚫ If you introduced a malicious contract in the system which will take
huge amount of time for execution you will be able to launch a
denial of service attack on your consensus algorithm, this is the kind
of 1st problem.
⚫ Design Limitations:
⚫ 2nd problem is the implementation of smart contract.
⚫ To implement a smart contract need to go to some language which will
give more power compared to bitcoin script.
⚫ Bitcoin script is not turing complete language but because it is not turing
complete language, it dose not support all the contracts which can be
there.
⚫ For ex. It dose not support loops or it has certain limitation in execution
⚫ But to implement smart contract, because you want to increase a power
of that particular script, you can write any general purpose contract in
the form of a code by using different type of language for that.
⚫ So the developers are develop different types of languages. So one
interesting language is that Golang which widely used in this kind of
contract execution platform.
⚫ Execute Contracts:
⚫ In case of permissioned model you have to move from challenge
response based method of permissioned less to traditional distributed
system based consensus algorithm.
⚫ But in that case you have to ensure that you have sufficient no. of
trusted nodes in the system.
⚫ So one interesting question that comes for consensus of permissioned
blockchain model that do you always need to execute the contract at
each node.
⚫ Execute Contracts:
⚫ It is not necessary you just need state synchronization across all
the nodes.
⚫ So it is like that you execute the contract in one node then after
executing the contract in one node, you propagate the state of the
contract to your neighboring node and that like state get further
propagated so, that way every nodes in the system, it get same states of
the contract and they can be on the same page of your smart contract.
⚫ Execute Contracts:
⚫ But a typical question comes that what if the node that execute the
contract it becomes faulty. So if this particular nodes becomes faulty
then system gets down and the system will not be able to make any
progress further. So in this particular scenario the idea is that you used
the concept of state machine replication so you execute a contract at a
subset of node rather than a single node.
⚫ So you have multiple nodes which can be selected to run the
particular contracts.
⚫ Execute Contracts:
⚫ So here this 3 nodes are executing the contract and result of the 3
nodes are propagate to all the nodes in the network.
⚫ So that way it can ensure a kind of state machine replication
through which every node that is the part of the smart contract
they are on the same page and knows that upto this much of the
contract got executed and remaining part need to be executed.
⚫ State machine replication which is a powerful tool to ensure
consensus in permissioned blockchain environment.
⚫ Execute Contracts:
⚫ The concept of State machine replication ( do not need to execute a
smart contract to all the nodes rather can execute it on subset of nodes
and then ensure that the state of the contract is getting propagated to all
the nodes in the network and there are certain consensus mechanism
which will ensure that the state which have been propagated by multiple
state machine or the contract execute that are on the same page or are
indeed correct) help to achieve the consensus in a permissioned model so
it is a powerful tool to ensure consensus in permissioned blockchain
environment.
⚫ Distributed State Machine Replication:
⚫ So by applying this kind of distributed State machine
replication technology ensure the consensus in a
permissioned blockchain environment.
⚫ State machine replication can be characterized by set of parameters.
So the set of parameters are set of states based on the system design.
So here in this particular example you have 3 states S1, S2 and S3.
Then you have set of inputs which will tell you about how the system
will behave.
⚫
⚫ Distributed State Machine Replication:
⚫ So here there are 2 inputs. 0 can be input to the system and 1 can be
another input to the system. And then you have set of outputs. Here
S3 is final output of the system that is represented by the state
machine.
⚫ A transition function which will take a state and input, it will
produce a set as the output.
⚫ So here from S1 if you take 0 as an input it produces state S2 as
output.
⚫ (S1,0)-> S2 then output
function to produce output
of the system.
⚫ And S1 as designated as
⚫ Start state.
⚫ Distributed State Machine Replication:
⚫ So here there are 2 inputs. 0 can be input to the system and 1 can be
another input to the system. And then you have set of outputs. Here S3 is
final output of the system that is represented by the state machine.
⚫ A transition function which will take a state and input, it will produce a
set as the output.
⚫ So here from S1 if you take 0 as an input it produces state S2 as output.
⚫ (S1,0)-> S2 then output function to produce output of the system.
⚫ Distributed State Machine Replication:
⚫ In a typical distributed architecture, the distributed state machine
replication mechanism works in following way. It have multiple
servers which works in a distributed fashion.
⚫ Distributed State Machine Replication:
⚫ Distributed State Machine Replication:
⚫ Distributed State Machine Replication:
⚫ 2nd is that in presence of failure you need to ensure that all the
individual servers are on the same page, everyone knows each other
well.
⚫ Both the transactions from Bob and Alice they got executed
and the entire money has been transferred.
⚫ Why Distributed consensus:
⚫ Why do we apply for state machine replication based consensus
algorithm in permissioned model in contrast to challenge response
based consensus model apply for permissioned less settings?
⚫ So if you know that who are yours peers you can always replicate
your state machine with the current state to your peers.
⚫ Why Distributed consensus:
⚫ In case of consensus algorithm if there is only single decision maker
you don’t require any consensus.
⚫ Flight Control Systems- when there are multiple flights and they want
to coordinate their position among themselves, you can apply this
kind of state machine replication technology and distributed system
to achieve consensus.
⚫ Why Distributed consensus:
⚫ For this kind of agreement protocols where the nodes collectively
needs to come to certain agreement, we require this kind of
distributed consensus algorithm.
⚫ We have looked into that we do not need a consensus in single node
process but when there are 2 nodes, so in case of 2 nodes, if there is
kind of fault, if the network is fault or even if there is a kind of crash
fault or even if the node behaves maliciously you cannot reach
consensus.
⚫ To reach consensus,
you always require
more than 2 nodes.
⚫ Faults in Distributed consensus:
⚫ In distributed environment you can have primarily 3 types of faults
⚫ Crash Fault:
⚫ Where a node crashes and not able to send message. It may
recovered after some time and it may start sending the message
again.
⚫ So these call as fail stop behavior.
⚫ Network or Partition Faults :
⚫ Where because of network fault entire network gets partitioned and
the message from one partition is not able to get propagated to
another partition.
⚫ Faults in Distributed consensus:
⚫ Byzantine Faults :
⚫ 3rd type of fault is difficult to handle in a distributed environment is
Byzantine fault. So you have kind of malicious behavior among the
nodes, which may come due to certain kind of hardware or
software faults.
⚫ So, this byzantine fault is that for certain views, the node is
behaving in one way whereas, for certain other views the node is
behaving in a different way.
⚫ Consensus for 3 processes:
⚫ To reach the consensus for 3 process, every process can have in 1 of 3
states, Undecided state : In undecided state the process or the node has
proposed certain value from a set of feasible value D. so every node has
proposed some value and they are in undecided state.
⚫ Communication state :Then in communication state they are exchanging
the value among themselves.
⚫ Decided state : So by exchanging the value and then by applying the
consensus algorithm then can reach to decided state where they set the
decision that
everyone in the
network they
agree under
certain variable
Di.
⚫ Requirements of Consensus Algorithm:
to Caves so that is the broad idea behind Paxos so let us look into that
algorithmically how it works.
• So you have certain proposers who are proposing the values that
proposed values should be chosen by the consensus algorithm.
⚫
⚫ Paxos :
⚫ So here proposers can propose a value that either go to campus or go to
caves then you have certain acceptors, they form the consensus and
accept the values.
⚫ So the acceptors whenever they are hearing certain proposal from the
⚫
⚫ Paxos :
⚫ And Some other friend of mine is proposing to go for campus I will agree
to that.
⚫ That way will try to look into that whether the majority of the nodes is
either proposing or accepting going for campus or caves and accordingly
this learner module will find out that which value has been chosen by
each of this acceptors, and then they will collectively accept that
particular value that is the broad idea behind the Paxos.
⚫ So there are this 3 types of nodes the proposer, the acceptor and the
learner.
⚫Everyone is a learner in
the network which learns
what is the majority
decision.
⚫ Paxos : Making a Proposal: Proposer process
⚫ So the process in detail is the proposer initially prepare with a proposal
number.This proposal number need to be good enough so that your
proposal gets accepted.
⚫So the proposer make a
prepared proposal number
and send it to the acceptor.
⚫ So this proposal number
forms a timeline and the
biggest number it is
considered up to date.
⚫ So it is like that one
proposal is coming from P1 with proposal number say 100, another
proposal is coming from P4 with proposal number say 102 then we will
accept proposal which coming from P4 then acceptor makes it.
⚫ Paxos : Making a Proposal: Acceptors’ Decision making
⚫ In this way each acceptor compares the received proposal number with
the current known values for all the proposals prepare message and if you
are getting higher number then you accept it otherwise you decline it.
⚫So then the acceptor
based on that prepared
the response, in response
the acceptor can either
accept or decline a
message based on the
proposal algorithm.
So the biggest number
the acceptor has seen till
Now, it put that number
in the response message
and it includes the acceptance values that has been accepted from other
proposals.
⚫ Paxos : Making a Proposal: Acceptors’ Message
⚫ So this accepted values is in form to the proposer now. We take a vote
based on majority decision.
⚫ Accepting a value: Proposer’s Decision making :
⚫ So the proposal looks that whether the majority of the acceptors, they
reject the proposal, if they have rejected the proposal then you updated
with the latest proposal number.
⚫ If they have not rejected it then you see that whether the majority of the
acceptors has accepted the value.Then you can not choose that particular
proposer value, if it is not then you send the accept message. So the idea
is that whenever the majority of the acceptors, they are sending some
accepted values, if
they have accepted
your value, that means
the value that you have
Shared that is coming
to a consensus.
⚫ Paxos : Making a Proposal: Acceptors’ Message
⚫ So it is just like that you have proposed for campus and once you have
proposed for campus and the majority of your friends are accepted for
the campus and from that all of you can go for campus.
⚫ Accepting a value: Notifying Leader
⚫ So the final stage is this accept message so the proposer sends the accept
message to all the acceptors and in accept message you include the
proposal number.
⚫ A similar to the prepare phase the proposer knows that my proposal has
been accepted and the value is the single value that is proposed by the
proposer.
⚫Now, whenever the
acceptor, it accept the
value from the proposer,
it informs the learner
about this majority voted value. So everyone learns that what is the
majority voting in the environment.
⚫ Paxos : Single Proposer: No rejection
⚫ If you have the single proposal in the system, then the system is very
simple with that single proposal, every acceptor will accept the proposal
because that is going to be the biggest.
⚫So the proposal does
not get rejected if the
acceptors are correct.
⚫ So you have to ensure
that if you need to
ensure majority of the
acceptors are non faulty.
Now see the case
whenever certain
acceptor fails
⚫ Paxos : Single Proposer: No rejection
⚫ Now see the case whenever certain acceptor fails
1) If the acceptor fails during prepare phase then you do not have any
issue that here other acceptors who can hear the proposal and they
can vote either for the proposal or against the proposal
⚫ Paxos : Single Proposer: No rejection
2) Now acceptor may fails during acceptor stage again If the acceptor fails
during acceptor stage
you do not have any
issue because other
acceptors are there
who have already
voted for the proposal
⚫ Now only thing you have to ensure that less number of i.e. N/2 number
of acceptors they can fail simultaneously because you are going for
majority voting principal.
⚫So whenever you are
going for majority voting
principal in the synchronous
Environment you need to
⚫ Paxos : Single Proposer: No rejection
ensure that majority of nodes are correct. So if more than N/2 number of
acceptors fail no proposal they get reply and you can not come to the
consensus algorithm.
Now let us look into
scenario when
proposer fails.
Proposer can fails
during prepare phase
or acceptor stage.
If the proposer fails during prepare phase it is just like that no one is
proposing for any value for go to campus or go to caves. So you wait, wait,
wait for getting a value from your friend and if you are not getting a value
so you become a proposal
With same idea if acceptor wait for certain times and if they do not hear
any proposal, one of the acceptor become proposal and proposes new value
⚫ Paxos :
⚫ So Paxos protocol proved that you can have certain consensus algorithm
in a distributed environment.
⚫ RAFT Consensus :
⚫ Whenever you can come to the consensus based on Paxos algorithm, by
applying some consensus technique you can always elect a leader.
⚫ If you have a leader in the system, achieving consensus becomes much
easier because in that case you can avoid multiple proposer proposing
something all together.
⚫ So the way RAFT is different from Paxos
⚫ -- In case of Paxos you didn’t have any kind of leader as such, so multiple
proposer can propose the thing simultaneously, and when multiple
proposer proposes the thing simultaneously protocol becomes complex
⚫ That the acceptors now have to accept one of the proposals from the
⚫ Now leader node has failed then you need to elect new leader with
term 11.
⚫ RAFT Consensus :
now this new leader sends
the message that I am the
new leader in term 11 and
community index is 100.
⚫ RAFT has improved the concept from Paxos rather than going for
repeated Paxos i.e. multi Paxos we will go for leader election
mechanism where we will apply some consensus algorithm based
on the majority voting. So make consensus easy to understand or
easy to prove.
⚫So the case when partially you are proposing for caves and partially
for campus, for this kind of application your Paxos and RAFT will
not be able to tolerate this kind of faults.
⚫ So this class of faults called as Byzantine fault where a particular
node can behave maliciously or faulty.
⚫ RAFT and Paxos Consensus Protocol:
⚫The miner that solves the puzzles first wins the right to add
the transaction to the growing block and earn the block
reward. But the miner must publish proof that they solved
the puzzle to add the block.
⚫The mining process in PoW blockchains requires expensive
computers or mining rigs. This high cost disincentivizes
miners from sharing false information because other
participants would reject it. It also reduces the likelihood of
malicious actors gaining control of most nodes in the system.
⚫How Does the Byzantine Fault Tolerance Work?