1. 程式人生 > >Byzantine Fault Tolerance in a nutshell

Byzantine Fault Tolerance in a nutshell

Byzantine Fault Tolerance in a nutshell

When you start to get more into blockchain, one term that you’re going to hear a lot is Byzantine Fault Tolerance.Now if you’re wondering what that means, that very strange and cryptic sounding term, that can be explained with a story.

In 1982, a mathematical problem was formulated called the Byzantine Generals Problem

, and without getting too detailed into the mathematics behind it, essentially, the Byzantine Generals Problem was a story about two empires fighting a battle.

Chivalry: Medieval Warfare

One Empire exists within the confines of a walled city, the second Empire has several generals surrounding that walled city, each with their armies waiting to attack.

The balance of power is very evenly matched between these two empires.

And it is such that if all the generals agree to attack at the same time, they will have enough power to overcome the empire in the city and win the battle.

If they, for whatever reason, are not able to coordinate their attacks simultaneously, and even just one general misses the message, the Empire surrounding the walled city is going to lose the battle and the war.

The Byzantine Generals Problem explored a really key area of cryptography, in fact, this is the heart of what cryptography is, which is how do I exchange messages with someone in an environment where they may become corrupt.

Now the only way these generals had to communicate was to send a disguised messenger through the city with a message to deliver to the other generals, and so, this always posed the risk, if you’re a general and you’re getting a message from one of these messengers, how do you know or how can you believe with greater than random certainty that the message you’re getting is reliable and it hasn’t been tampered with.

This, again, was a problem that was postulated back in 1982 and went unsolved until 2008, when the anonymous Satoshi Nakamoto proposed a solution to this problem, which is what made Bitcoin possible.

Essentially, what the solution entails is that all of the generals have as many mathematicians as they can.

“When we talk about Byzantine Fault Tolerance, we’re talking about the generals having more access, having more mathematicians, or more computing power on their side than the empire within the city.”

So, if I can hire more mathematicians, then that means that I can encrypt my messages going through the city with greater and greater complexity, and if the balance of power becomes greatly tipped in the favour of the generals outside the city, they can use encryption methods which are so complex, that there really is no real chance, or a very small chance that any of the mathematicians inside the city will be able to intercept that message, decrypt it, change the content, re-encrypt it, and do so in a time quick enough that the generals don’t notice anything has happened.

Well, this is Byzantine Fault Tolerance.And this is the fault tolerance mechanism that we see in most public blockchain solutions right now, including, as I mentioned earlier, Bitcoin and Ethereum, although Ethereum is working on transitioning to a system called Proof of Stake, which I will talk about in a different post.

So, talking about blockchain, when you hear Byzantine Fault Tolerance, all what that represent is this idea that blockchains become secure if they have more computing power, more hash power in the chain than off the chain.

Solution like Bitcoin, the largest blockchain network that there is, with over 30,000 nodes, or Ethereum, 16,000 plus nodes, offer us a high degree of security and immutability, because the computing power on those networks is so great that there’s really no reasonable chance that an adversary could ever control as much or more computing power to attack the data on that blockchain.And if someone ever were to, chances are the economics behind it would be such that they would spend much more to simultaneously harness all that computing power, than they could possibly stand to gain.

On this matter, you are going to hear a lot about the 51% attack. But I will talk about it in a different post.

In the end we can say that Byzantine Fault Tolerance, it is the root of cryptography, which is simply the study of how we send information back and forth securely in the presence of adversaries and bad actors, and it’s what underlies all the security and immutability that we get in blockchain.