The core problem blockchain solves
Maintaining integrity in distributed systems is the major purpose of the blockchain.
But why is maintaining integrity in distributed systems and purely distributed peer-to-peer systems in particular such a challenge?
This article answers that question by discovering the subtle relation between trust and integrity of purely distributed peer-to-peer systems.
Tust and Integrity
Trust and integrity are two sides of the same coin. In the context of software systems, integrity is anonfunctional aspect of a system to be:
Safe — resistant to hacking or monopoly of a small amount of participants.
Complete, consistent, correct.
Free of corruption and errors.
Trust is also the firm belief of humans in the reliability /truth of someone or something without evidence, proof, or investigation.
Trust is given in advance and will increase or decline based on the results of interactions on an ongoing basis:
You trust your bank until a recession hits, consequently closing the bank and losing your savings.
You trust a particular food brand until you find something undesirable inside the packaging.
You trust an employee to do their job in a satisfactory manor until it comes to light they are not taking their work seriously, which is being reflected in monthly reports.
With respect to peer-to-peer systems, this means that people will join and con- tinue to contribute to a system:
If they trust it to begin with, and
If the results of interacting with the system on an ongoing basis confirm and reinforce their trust.
Integrity of the system is needed in order to fulfill the expectations of the users and reinforce their trust in the system. If the trust of the users is not reinforced by the system due to a lack of integrity, the users will abandon the system, which, as a result, will eventually cause it to terminate.
Due to the importance of trust for the existence of peer-to-peer systems, the major question is: How do we achieve and maintain integrity in a purely distributed peer-to-peer system?
Achieving and maintaining integrity in purely distributed systems depends on a variety of factors, some of the most important are:
Knowledge about the number of nodes or peers
Knowledge about the trustworthiness of the peers
The chances of achieving integrity in a distributed peer-to-peer system are higher if the number of nodes as well as their trustworthiness is known.
This situation is comparable to running a private club that adheres to high moral standards and utilizes a rigorous on-boarding process for new mem- bers.
However, the worst circumstances for achieving integrity in a distributed peer-to-peer system are given when the number of nodes and their trust- worthiness is unknown. This is the case when running a purely distributed peer-to-peer system on the Internet that is open to everyone.
Integrity Threats in Distributed Systems
For simplicity, one can consider two major integrity threats in peer-to-peer systems:
Technical failures
Peer-to-peer systems are comprised of the individual computers of its users who communicate via a network. All hardware and software components of a computer system as well as any component of a computer network have the immanent risk of failing or creating errors. Hence, any distributed system has to face the problem that its components may fail or may produce wrong results by chance.
Malicious peers
Malicious members are the second integrity threat in peer-to-peer systems. This source of untrustworthiness is not a technical problem, but rather a problem caused by the goals of the individuals who decide to exploit the system for their own purposes.
The Core Problem to Be Solved by the Blockchain
Achieving integrity and trust in the best of all conditions is easy, but what a blockchain can achieve is the real challenge:
To achieve integrity and trust in a distributed system in the worst of all conditions.
And this is the problem that the blockchain is supposed to solve. The core problem to be solved by the blockchain is achieving and maintaining integrity in a purely distributed peer-to-peer system that consists of an unknown number of peers with unknown reliability and trustworthiness.
This problem is not a new one. It is actually a well-known and widely discussed problem in computer science. By utilizing a metaphor from the military, the problem is widely regarded as the Byzantine general problem.
The problem to be solved by the blockchain is achieving and maintaining integrity in a purely distributed peer-to-peer system that consists of an unknown number of peers with unknown reliability and trustworthiness.