The Byzantine Generals Problem, copyright Coin Telegraph

Byzantine Generals: A Distributed P2P Systems Problem that Blockchain Solves


I've been reading more of Blockchain Basics this week. Despite the Byzantine Generals problem being one of the core problems faced by distributed P2P networks (in terms of integrity), the book mentions it briefly in one sentence before moving on. I feel it's a scenario that needs to be understood in order to appreciate blockchain technology, so I decided to do some further research and found two helpfully explanatory videos on YouTube, one of which I've placed below. (It covers the basics, while the other one is substantially longer.)

What is the Byzantine Generals Problem?

The Byzantine Generals problem is a problem that is encountered when nodes in a decentralised Peer-to-Peer (P2P) network communicate and need to trust each other. Without a central controller node to regulate communications, it's hard to know which (if any) peers are malicious or sending faulty messages. This is presented in a model where a number of generals need to coordinate an attack on a city and send messages among themselves. One of the problems encountered is that the messages could get intercepted and/or altered by defenders of the city. Assuming this doesn't happen, there's still no way of any general knowing which other generals to trust, especially if receiving conflicting messages from one or more of them. I'll leave it to the video to explain.

 

The Byzantine Generals Problem explained

The important question to be answered is this: "How does blockchain technology solve the Byzantine Generals problem and thus provide integrity to distributed P2P systems?" Let me quote from an article by Coin Telegraph:

"A blockchain creates a layer that can be trusted without needing to trust every individual. This is accomplished by a network of nodes coming together to agree on the truth before it is recorded. If the general is unsure about the substance of the communication, the other generals can verify it using what they know to be true.

"Once one node has recorded it, a copy is sent to all other nodes in the network, making the information redundant. The PoW consensus algorithm is designed to achieve this goal. Bad actors will still try to game the system because the information isn't always accurate. 

"Since the system was designed to be utilized by the general public, fault-tolerant mechanisms and security are in place in a blockchain. In this scenario, cryptography was required to ensure that the messages could not be altered. 

"The system provides key pairs for digitally signing a communication to verify identity as proof that it comes from the persons purported to have sent it. Once messages have been authenticated, they are recorded for transparency and historical proof of accountability."
 — How does Blockchain solve the Byzantine generals problem?; Blockchain: The solution for the Byzantine general problem

"Satoshi devised a means to use cryptographic security and public-key encryption to answer the Byzantine general problem in a digital electronic network. To prevent data tampering, cryptographic security uses hashing, a process of encoding. The identity of a network user is verified via public key encryption.

"A transaction is secured in a block that is connected to other blocks by its hash value in cryptographic security. All hashes may be tracked down to the root of all hashes, which is an initial block. The blockchain is a system that uses a Merkle Tree to verify hashes that come from a genesis block.

"Every block in the network that comes from the first block, also known as the genesis block, is valid. Miners validate blocks, who compete with other miners to solve cryptographic puzzles to produce blocks as part of a PoW consensus method.

"By employing a proof-of-work consensus mechanism, Bitcoin overcame the Byzantine generals problem and established a clear, objective rulebook for the blockchain. To add information to the blockchain, called blocks, a network member must publish proof that they put a lot of effort into making the block. This work comes at a high cost to the creator, incentivizing them to share accurate information.

"There can be no disagreement or tampering with the information on the Bitcoin network because the rules are objective. The system for selecting who can mint new Bitcoin and the laws regulating which transactions are valid or invalid are both objectives. Furthermore, it is impossible to remove a block from the blockchain after it has been added, making Bitcoin's history unchangeable.

"Therefore, the Byzantine generals problem is solved by miners who are similar to generals in Satoshi's version of the blockchain. Each node is responsible for validating transactions, which are similar to messages delivered to the generals."
 — Ibid; Proof-of-Work (PoW) and the Byzantine generals problem

I recommend reading the whole article by Coin Telegraph, the URL for which can be found in the "Resources" section below.


Thumbnail image copyright Coin Telegraph

How do you rate this article?

41


Great White Snark
Great White Snark

I'm currently seeking fixed employment as a S/W & Web developer (C# & ASP .NET MVC, PHP 8+, Python 3), hoping to stash the farmed fiat and go full Crypto, quit the 07:30-18:00 grind. Unsigned music producer; snarky; white; balding; smashes Patriarchy.


Return to the Source
Return to the Source

Use the Force; read the source! This blog is mostly a collection of study notes on ASM, ASP .NET, Blender, BASIC, C/C++, C#, ChucK, Computer Architecture, Computer Literacy, CSS, Digital Logic, Electronics, F#, GIMP, GTK+, Haskel, Java, Julia, JavaScript (ES6+) & JSON, LISP, Nim, OOP, Photoshop, PLAD, Python, Qt, Ruby, Scheme, SQL (MySQL & SQLite), Super Collider, UML, Verilog, VHDL, WASM, XML. If I can learn it and make notes on it, I'll write about it. || Blog images copyright Markus Spiske and Pixabay

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.