Solution: Byzantine Fault Tolerance

8 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€93.47
List Price:  €130.87
You save:  €37.39
£79.12
List Price:  £110.77
You save:  £31.65
CA$136.80
List Price:  CA$191.52
You save:  CA$54.72
A$153.03
List Price:  A$214.24
You save:  A$61.21
S$136.24
List Price:  S$190.75
You save:  S$54.50
HK$782.75
List Price:  HK$1,095.89
You save:  HK$313.13
CHF 90.39
List Price:  CHF 126.55
You save:  CHF 36.16
NOK kr1,103.76
List Price:  NOK kr1,545.32
You save:  NOK kr441.55
DKK kr697.01
List Price:  DKK kr975.84
You save:  DKK kr278.83
NZ$168.36
List Price:  NZ$235.71
You save:  NZ$67.35
د.إ367.25
List Price:  د.إ514.16
You save:  د.إ146.91
৳11,001.09
List Price:  ৳15,401.97
You save:  ৳4,400.87
₹8,339.41
List Price:  ₹11,675.50
You save:  ₹3,336.09
RM476.70
List Price:  RM667.40
You save:  RM190.70
₦132,134.22
List Price:  ₦184,993.20
You save:  ₦52,858.97
₨27,905.82
List Price:  ₨39,069.27
You save:  ₨11,163.44
฿3,697.97
List Price:  ฿5,177.30
You save:  ฿1,479.33
₺3,250.47
List Price:  ₺4,550.79
You save:  ₺1,300.31
B$511.57
List Price:  B$716.23
You save:  B$204.65
R1,877.82
List Price:  R2,629.02
You save:  R751.20
Лв182.79
List Price:  Лв255.92
You save:  Лв73.12
₩137,795.03
List Price:  ₩192,918.56
You save:  ₩55,123.52
₪381.78
List Price:  ₪534.51
You save:  ₪152.73
₱5,764.02
List Price:  ₱8,069.86
You save:  ₱2,305.84
¥15,807.91
List Price:  ¥22,131.71
You save:  ¥6,323.80
MX$1,715.83
List Price:  MX$2,402.24
You save:  MX$686.40
QR365.49
List Price:  QR511.70
You save:  QR146.21
P1,379.76
List Price:  P1,931.72
You save:  P551.96
KSh13,280.92
List Price:  KSh18,593.82
You save:  KSh5,312.90
E£4,785.67
List Price:  E£6,700.13
You save:  E£1,914.46
ብር5,752.60
List Price:  ብር8,053.87
You save:  ብር2,301.27
Kz83,397.65
List Price:  Kz116,760.05
You save:  Kz33,362.40
CLP$95,187.41
List Price:  CLP$133,266.18
You save:  CLP$38,078.77
CN¥724.48
List Price:  CN¥1,014.31
You save:  CN¥289.82
RD$5,876.15
List Price:  RD$8,226.85
You save:  RD$2,350.69
DA13,419.92
List Price:  DA18,788.43
You save:  DA5,368.50
FJ$226.22
List Price:  FJ$316.72
You save:  FJ$90.50
Q779.62
List Price:  Q1,091.50
You save:  Q311.88
GY$20,970.66
List Price:  GY$29,359.76
You save:  GY$8,389.10
ISK kr14,012.52
List Price:  ISK kr19,618.09
You save:  ISK kr5,605.56
DH1,012.51
List Price:  DH1,417.55
You save:  DH405.04
L1,776.81
List Price:  L2,487.61
You save:  L710.79
ден5,750.48
List Price:  ден8,050.91
You save:  ден2,300.42
MOP$808.27
List Price:  MOP$1,131.61
You save:  MOP$323.34
N$1,891.23
List Price:  N$2,647.80
You save:  N$756.57
C$3,688.83
List Price:  C$5,164.51
You save:  C$1,475.68
रु13,363.42
List Price:  रु18,709.33
You save:  रु5,345.90
S/376.55
List Price:  S/527.19
You save:  S/150.63
K386.91
List Price:  K541.69
You save:  K154.78
SAR375
List Price:  SAR525.02
You save:  SAR150.01
ZK2,656.27
List Price:  ZK3,718.89
You save:  ZK1,062.61
L465.65
List Price:  L651.93
You save:  L186.28
Kč2,349.23
List Price:  Kč3,289.02
You save:  Kč939.78
Ft36,664.08
List Price:  Ft51,331.18
You save:  Ft14,667.09
SEK kr1,088.81
List Price:  SEK kr1,524.39
You save:  SEK kr435.57
ARS$87,581.58
List Price:  ARS$122,617.72
You save:  ARS$35,036.13
Bs695.16
List Price:  Bs973.25
You save:  Bs278.09
COP$396,484.19
List Price:  COP$555,093.74
You save:  COP$158,609.54
₡50,931.67
List Price:  ₡71,306.37
You save:  ₡20,374.70
L2,475.19
List Price:  L3,465.37
You save:  L990.17
₲746,363.69
List Price:  ₲1,044,939.03
You save:  ₲298,575.33
$U3,863.50
List Price:  $U5,409.05
You save:  $U1,545.55
zł402.98
List Price:  zł564.19
You save:  zł161.21
Already have an account? Log In

Transcript

Now let's understand the generalized to general problems and the consensus solution. With the help of an example. Let's take the example that we have multiple generals who are communicating with each other, and they need to fix a time to attack the enemy. We take the example of one commanding general and three leftenant inside a complete network, and they are setting a time to attack the enemy. Out of these three left and ends, one of the left in end is a traitor. Now, when the messages are being communicated, the commander is sending the message to left in and one that they are going to attack at 3am.

The leftenant one is following the suit and providing the message to the next leftenant that they are going to attack at 3am. Similarly the other leftenant also share the message. For our example, we are considering that left in in two As a traitor leftenant. Whenever leftenant receives the message to attack at 3am, he doesn't communicate the same to other left tenants. Instead, he communicates the message that they are going to attack at 5am this is a problem for all the left hand ends as the correct information is not being shared. To solve such a problem, a new approach was followed, that whenever the commander and left hand ends communicate with each other, they will communicate by incorporating the received order message with their message.

Now, again, the commander initiates the message that they are going to attack at 3am left in and one receives that message and at his message to the previous one, that they are going to attack at 3am. He sends the complete message to the next left in it similarly leftenant to also attaches his message to the The previous one, and sends it across to the next left in it. Now, if the traitor left in and wants to change or alter the message, he needs to replace all the messages which are chained together. But leftenant two is a very rigid traitor, and he wants the mission to fail at any cost. Lifting and two spends a lot of time and changes all the previous messages received by him. With the addition of his fake attack time, lifting and two cents the false attack time to left in in three, which again creates a problem for the system as this can lead to mission failure.

To tackle such a problem again, we came to a second solution, which is based on being time bound. Every message can only be created within a specific timeframe. Let's take an example. When commanding generals creating the attack order that order can only be Reduced within 10 minutes of timeframe. This means formation of an attack message for each leftenant should only take up to 10 minutes to build the message. So when the commander sends the message, the message creation time is 10 minutes.

Similarly, leftenant one receives the message, and he incorporates his message ahead of the commander's message within 10 minutes of timeframe. Now, this creates a steady solution for the system, because of lifting and two needs to falsify the system, then he needs to change all the messages, but he will actually spend 30 minutes to do the same definition to is going to take 10 minutes to change his message, and then he's going to spend 10 more minutes each to replace the previous messages given by the commander and leftenant one in this way, when left hand three or the other leftenant receives the message through lifting and they are able to verify They are not receiving the message within the timeframe of 10 minutes, which means left in and two is a traitor. This solution is good enough for the scenario described here. But in the real world, we replace the commander and leftenant scenario with computers, then another problem surfaces, it could be possible that everyone is using different power of computers.

The left hand end too might be running a supercomputer, which can change all the three messages within 10 minutes. To avoid such a problem, we created another foundation known as nounce value. allowance is a random number added after the data which is shared by each left in it. The nouns is inserted in such a way that whatever be the message, the total creation time of the message will always be 10 minutes. In this way, we created a solution with the three way process where we are incorporated In the previous messages with the next messages, moreover, we are limiting the message creation only to 10 minutes by applying the time foundation and nonce value. Now, even if the leftenant was running a supercomputer, the nonce value is managed in such a way that a single message will always take 10 minutes for creation.

If left in into with a supercomputer is a traitor. Still, every other leftenant inside the network can verify whether the message has been formed within the 10 minutes limit or not. Finally, we own corporate one more constraint over the network. When the commander is a traitor, then we might send different orders to different leftenant and the system will still reach a consensus. But since these messages are shared between the left hand side and the message are not providing the same attack time, then the default option will act upon and everyone in the network will reach to a con sentences on the default value. This is how a probable solution is provided for the Byzantine generals problem.

Now let's visualize the complete network using a diagram. As you can see in the diagram, we have three leftenant and the commander associated with the network. The commander is providing the message v to each left in it, but left in and two is a traitor, and he's trying to communicate message x instead of message v. As we describe the solution in the last slide. The other left hands can easily verify that left hand and two is a traitor, and they can remove the left hand into from the network, even if left in into is holding a supercomputer. The other left hands can still verify the message following the consensus process described earlier. And I don't mean view for the complete network can be seen with this diagram.

As we have mentioned earlier, there could be a possibility that the commander is a traitor and he might convey wrong or different attack orders to all other leftenant. As you can see in the image, the commander is sending x message to left in one v message to left into NZ message to left hand three. In this example commander, who is a traitor is sharing three different attack orders with all the three different left hands. How does the solution described for consensus tackles this kind of problem? As we now know, we are working with a distributed network. So all the left hand ends are going to communicate with each other as well.

And finally share the different version of messages with each other. Once they start sharing the messages, they will realize that consensus cannot be achieved because everyone is relaying different sets of information. If such a situation happen All the left hand ends will revert to default order and will not follow the orders given by the commander at present. Now let's go and understand how this complete solution relates to the blockchain

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.