Problem Statement

7 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

Hello, everyone. Welcome back to the course. In this session, we are going to discuss the consensus mechanism for the blockchain. This is one of the significant aspects and the unique selling point of blockchain consensus mechanism, make sure that there is a trust in the agreement, wherein all the parties agree on something to make it permanent over the blockchain. Unique consensus mechanisms has been designed to solve the problems and this is one of the reasons why blockchain is also getting so popular. In this session, we are going to discuss the Byzantine fault tolerance, which is used with the proof of work consensus.

Before we move into understanding details about Byzantine fault tolerance, let's understand what a consensus is. In elementary terms. We can define consensus as a voting mechanism where all the nodes connected to an Network vote on the validity of a block only then the block is confirmed over the blockchain. Till now we have seen that how a transaction gets executed, goes to the memory pool, and then is put inside a block. We have also learned how a block is created and miners do the nonce calculation to form the hash of the block. After the block has been built and confirmed over the blockchain, the block is broadcasted on the network for consensus.

Nodes connected to the network have the option to either include that transaction to their copy of ledger or to ignore it. When the majority of the nodes which comprise the network decide on a single state, the consensus is achieved. Let's understand consensus better by looking into the problem of two generals, which consensus is trying to solve let's first understand the major problem of The Internet which is the two generals problem. This problem defines the scheme where two generals are attacking an enemy. We can take one general as the leader and the other general has to follow. A general has their army.

But the strength of the military is not enough to defeat the enemy. They need to collaborate and attack at the same time to defeat the enemy. Now let's take a straight version of the problem where the enemy is located on a hilltop, and both the generals are present at the bottom of the hill on each side. Now to be successful, both the generals need to agree on a specific time for the attack. This can be achieved by sending a messenger across the hill to share the time of the attack. However, there is a probability that the enemy could capture this messenger and alter the message delivered to the other general this will lead to false attack The enemy, and both the generals will fail in their mission.

Even if somehow, one of the generals managed to send a messenger successfully over the hill to the other general. Still, the other general needs to acknowledge that they have received the message successfully. To provide the acknowledgement, the other general needs to send the messenger back through the enemy territory. The same scenario could be repeated for acknowledgment where the enemy could capture the messenger, and the message could be changed or never gets delivered to the first general. To confirm the acknowledgement. The first general again needs to send a real acknowledgement.

And this creates a never ending loop between the generals where they can never be sure that the message is correct. This is the current problem with our internet system. If two parties want to communicate anything among each other, then they need to go through the whole network space where multiple attackers might Present, they can attack the message or change the content of the message. The two general problem is non solvable problem. Now let's understand the two general problem with the help of a diagram. As you can see in the diagram, we have an enemy camp in the middle.

Gen one is on the left side of the enemy cam, and Gen two is on the right side of the enemy camp. Now to collaborate and fix a time of attack, they need to send a messenger through the enemy camp. This messenger could get caught in the enemy territory, and the message might be changed or never delivered to the general. Similarly, the other general needs to send back the acknowledgement, which again has to go through the enemy camp where the acknowledgement could be altered again, this is an ongoing process where the generals will never reach an agreement this to gender Problem is similar to how the internet is working. Whenever we are communicating with any party over the internet, we need to go through the enemy territory, which is the whole internet itself, containing the attackers. These attackers can take over the messages and change them as they desire.

They can also stop the message from delivering to the other party. The two general problem is non solvable problem related to the internet. A more generalized version of the two generals problem is related to the peer to peer network, which describes more than two generals attacking the enemy camp and agreeing on the time of the attack. Additionally, this problem states that one or more generals can be traitors, meaning that they can lie about their attack choice and the attack might never take place. To reach consensus in such a problem. General needs to agree on On the same decision, as we mentioned before, one general will be the leading general who issues the command, and the other generals will accept the same.

So instead of general approach, let's take a commanding general and lifting hands based approach. We're Commanding General, issues an order of attack, and every lawyer left in and needs to follow the order. solution to such problem was provided in the paper, the Byzantine generals problem by Leslie lamport, Robert shostack, and Marshall piece, which proves that the system can reach a consensus. As long as two by three of the actors are honest, if the traitors are more than one by three, the consensus is not reached, the armies are not able to coordinate their attack and the enemy events. If the commander is a traitor, the consensus is still achieved. But all the left end take the majority vote over the default value of the attack.

Instead of following the commander now let's go in understand how this problem can be solved using the Byzantine fault tolerance.

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.