Fundamentals of Blockchain
What is a blockchain?
Blockchain technology is an infrastructure that allows various distributed software applications to save, store and access data (as well as data processing regulations - so-called smart contracts) in a way that guarantees high availability and integrity of this data (data is authentic, undeniable, is not possible to change them and they are practically indestructible) and, if desired, also confidentiality.
For practical reasons, these are typically small-scale data records - only basic data on transactions, events or messages arising within the ecosystem of communicating participants (parties) is stored in the blockchain.
A key feature of the blockchain is the fact that such a communication system does not have to be organized or supervised by any central authority - we say that the system does not have an "judge" who should be respected and who would have to work on and maintain this authority.
We also say that blockchain technology is distributed and decentralized and is able to spontaneously create absolute trust of participants in an environment of potential mutual distrust.
Why was it created at all?
The blockchain technology was developed by Satoshi Nakamoto in 2008 as a publicly available infrastructure providing services for transactions in the alternative cryptocurrency Bitcoin.
This first blockchain application was a response to the general loss of trust in central financial institutions, the failure of which was at the beginning of the financial crisis of 2008.
The blockchain technology thus showed how it is possible to solve the so-called "double spending" problem without the need for central authority and generally indicated how modern technologies can replace traditional (centralized) thinking and solutions.
How does blockchain work?
Blockchain resembles an ever-growing database of "data sentences" (transactions), the semantics of this data is being determined by a specific distributed software application. Transactions gradually generated by users of such an application are "packaged" into a so-called blocks, each newly created block being cryptographically linked to the previous block.
This happens practically simultaneously and synchronously in all "main" nodes of the blockchain network. This seemingly redundant redundancy of data and actions is actually very useful - in addition to high availability (and practical indestructibility of data), it also serves to effectively detect and correct individual intentional or accidental deviations from the "common version of the blockchain".
The key to the operation of the blockchain is a combination of cryptographic algorithms and Internet network protocols (already known from the seventies and nineties of the last century).
Cryptography (especially the hash function and asymmetric encryption) is used for the already mentioned interconnection of blocks, to maintain data integrity (i.e. authenticity and undeniability of recording new and immutable stored data), but also to "fair" (i.e. random) selection of the node that will validate transactions and create a new block of transactions; network protocols then serve to quickly synchronize time, data, and common (consensus) decisions across all network blockchain nodes.
What role plays the so-called mining and virtual currencies?
The term mining is the blockchain of networks using the so-called proof-of-work algorithm when creating the next block. The nodes compete to find the first block (extract it).
From the number of nodes (so-called miners, colloquial minerals), just one node is randomly selected, so that all other nodes unambiguously accept this selection (so even in this case, we do not need a central judge in the blockchain).
The selected node is then responsible for validating the current transactions and storing them in the next block. This random selection prevents a potential fraudster from planning an attack on a specific set of emerging transactions.
This way of securing consensus can be energy-intensive and unacceptable in terms of negative environmental impact, moreover, given the existence of other, same-purpose, consensual algorithms (e.g. proof-of-stake) it seems unnecessary. Virtual (crypto) currencies can perform three tasks in solutions using blockchain technology:
• cryptocurrency as a reward for the miner - motivates the creation and operation of key nodes for the functioning of the blockchain network (in this context we speak of "fuel" for the blockchain network),
• cryptocurrency as an evaluation of an investment in a project financed by crowdfunding,
• cryptocurrency as an alternative to the traditional currency for the implementation of specialized financial transactions an application using blockchain technology (such as Bitcoin).
When is it suitable to use blockchain technology?
Nowadays, there are several expert resources at our disposal, which provide guidance in deciding between choosing a decentralized solution based on blockchain technology and a traditional - centralized solution. The main features indicating the suitability of the blockchain solution include the following:
• intensive communication (complex matrix of interactions) between several independent entities (organizations or companies) that do not share a common centralized information system,
• the need to increase the visibility (sharing) of data among more than a pair of participants (users),
• increased demands on information security - availability, integrity, but also the confidentiality of data that it is not possible (or it would not be effective) to be achieved with traditional, so-called general information security control mechanisms.
What is needed to deploy a blockchain application?
If a blockchain infrastructure already exists (for example we decide to use an existing public blockchain), then it is necessary to: create a distributed application, integrate it into the selected blockchain infrastructure, integrate it into an existing IT environment (such as ERP or production information system of the organization).
Users usually no longer need to be convinced of the benefits of such a solution - blockchain technology can remain hidden from them (the benefits will eventually manifest themselves in the form of various measurable indicators regarding the quality and availability of relevant data). If we don't have a blockchain infrastructure yet, we need to set it up.
It is necessary to choose the type of network ownership, the type of consensus between network nodes, the topology of network nodes, the motivation of validators model, technically set up nodes for block validation and logically connect them to a common blockchain network.
In what specific areas can this technology be applied?
Blockchain technology appears to be useful in a variety of situations and in solving different classes of problems, such as:
• effective management in supply chains (or complex projects – i.e. construction or IT) thanks to the increased "visibility" of data critical for good decision-making,
• monitoring the originality, adherence to procedures as well as the composition of the products throughout their lifetime cycle (i.e. in the manufacture, storage and transport of food or medicine),
• transparent recording of the history of positions, actions and decisions in the communicating ecosystem parties (i.e. between public administration institutions or an outsourced service provider and its customers),
• transparent and fair sharing of resources between the groups of participants representing the supply of and demand for these resources.
Different scenarios for the use of blockchain technology can be found not only in the private and public sectors but especially in the intersection of both sectors.