Bitcoin Technology: Under the Hood
Updated: Apr 9, 2019
Learn Forex Trading
Author: Andreas Thalassinos
In 2008, Satoshi Nakamoto proposed a peer-to-peer cash payment system that would allow people to transact directly with each other, without the need of financial institutions. Since then a lot has been said and written about bitcoin, the new digital currency. The purpose of this article is to shed some light on the jargon surrounding the technology and, more specifically, the computer network that facilitates the payment system.
In computer networks there are usually two main models: client/server and peer-to-peer. The difference is the role and functionality of each participating computer (or node, as it is usually called).
In a client/server model, there are two discrete entities; the server and the clients. This is a centralized environment where the applications, files and other resources are stored on a central computer – the server. The server acts as a central authority that provides services to the rest of the nodes in the network. It shares information and resources with the clients. All clients are connected to the central server. This model is prone to security breaches, hacks and breakdowns as the server constitutes a single point of failure. If the server is faulty, it can bring the whole network down.
On the other hand, a peer-to-peer network is a decentralized model – in other words, there is no central authority or server. Instead, each node acts as both server and client, where all nodes are equal. BitTorrent is perhaps one of the most popular P2P networks for file sharing. While peers are vulnerable to security attacks (which the Bitcoin network takes care of through its protocols), the advantage is that scalability is easy. A new computer may be plugged into the network and be up and running once in sync with the network.
As the network expands, its computational power expands as well. Furthermore, a faulty computer will not jeopardize the integrity of the network. All computers are interconnected and communicate with each other constantly – this way, the propagation of messages continue uninterrupted. This is perhaps the greatest advantage P2P has – it’s a fault tolerant network.
The Bitcoin network follows a distributed application model, where the work load is spread among the participating nodes. When “digging” into computer networks, one will come across the Byzantine Generals Problem where consensus is the goal. In order to maintain reliability in the network, consensus must be reached among the participating computers. 100% consensus is, of course, ideal but not always feasible.
Byzantine Generals Problem
A group of Generals have surrounded an enemy city. They have to attack or retreat based on the Commanding General’s orders. It is imperative for the success of the campaign that there exists consensus among the Generals. Messages are passed from the Commanding General to the Generals through unsecure and penetrable networks. Even worse, a number of the Generals and/or even the Commanding General himself may be traitorous. As long as the Commander is loyal and the number of traitors is not greater than one third of the Generals, then consensus may be reached to attack or retreat at the same time.
In a nutshell, there must be 3t + 1 Generals where t represents the number of traitors.
It is obvious that General 1 will receive contradictory information from the Commander and General 2, who happens to be a traitor. In this scenario, it is not possible to achieve consensus (which is more than 50% in favor of attack or retreat).
The Bitcoin system faces the same type of problems as the Byzantine Generals. In order to bypass it, Satoshi Nakamoto introduced the proof-of-work concept. When sending a message, the message is hashed and a nonce is sent to all nodes to verify the proof-of-work. Every message (i.e. block) is chained and as a result it is close to impossible to tamper with it.
Bitcoin follows a decentralized, peer-to-peer networking and distribution model. Consensus is needed among the nodes to ensure smooth operation of the network. A number of “bad” nodes are not capable of altering the blockchain due to the implementation of proof-of-work.