Blockchain is a very popular concept you can hear about from many different sources. It seems to be a completely new technology, but it can already be applied in many areas of life. Now we will learn what blockchain is and how it differs from traditional networks and databases.
Typically, individuals rely on traditional banks or payment systems for currency exchange. These are centralized systems where information is stored and processed on dedicated servers. However, the use of centralized networks, which are managed and maintained by a single entity, limits control over one's funds and data. These systems often require identity verification and do not offer transparent, publicly accessible transactions, making them incompatible with your style of exchange.
The blockchain network allows you to manage your funds all by yourself and make fast and cheap transfers from anywhere in the world where there is an Internet connection. Blockchain is decentralized since it is not under the control of a small group of people.
Also, unlike traditional centralized services and payment systems, the blockchain network has no restrictions on the user’s location, age, or nationality. The data is processed with the collaboration of thousands of computers worldwide.
In a traditional database, information is stored in an independent order. It can be freely edited and deleted without damaging the integrity of other data. In the blockchain, the data is in blocks. The blocks are securely connected in a strict chain. The chain can be represented as a book, where new pages, in our case, blocks, are constantly added. All pages are numbered, bound together, and go in strict order, one after the other.
The data chain has two properties that ensure its reliability:
Next, let’s look at how these features are implemented inside the blockchain.
For the chain to be complete, each subsequent block must be connected to the previous one. This connection between blocks is similar to the connection between commits in GitHub. To understand this comparison, let’s look at how commits work.
When we commit, GitHub gathers data about all the file states in the repository. From this data, it calculates the unique identifier of the commit.
In this case, the commit ID is obtained not from the state of all files but from the changes that occurred from the previous commit.
Thus, the hash is obtained from the following data:
links to the previous commit.
a list of changes that have taken place
Thanks to this, the commits are tightly connected: the identifier of the new commit is obtained from the data containing the identifier of the previous one.
This way, we can easily check the integrity of the data. To do this, you need to get a new identifier for the current commit and compare it with the original one. If the data has not changed, we will always get the same result.
The data in the blocks are linked by their hash identifier. A special data modification algorithm, the hashing function, is responsible for its creation.
Hashing is a function that converts a string of data of any length into a string of data of a certain length. That is, any input data is changed according to a certain algorithm. As a result, we get a unique fixed-length data string. For example, each commit has a different number of modified lines of code, but the hash length of each commit is the same.
If we hash one string and get a hash, then change just any one character in the original string and hash it again, we will get a completely different hash. This is called the “avalanche effect” of the hash.
In this case, hashing the same string will always give the same result. For example, we applied a hash function to the string “example” and got a hash. If we apply the function to the string “eXample”, we will get a completely different hash, but of the same length.
There is no algorithm that can perform the reverse hashing operation. Therefore, the hashing function is a one-way function. But you can find the source data from the hash. To do this, hash all possible variants of the source data until the result is the right hash. However, doing this requires a huge amount of computing power and time and is considered unfeasible.
It is generally assumed that the hash is unique for almost every data set. In reality, several different datasets can have the same hash. But this is unlikely due to the huge number of hash options.
If we change one block in the blockchain, we will immediately change all the blocks that follow the changed one. That is, we will get a new chain, which will be discarded by community members.
This mechanism allows you to quickly and unambiguously verify the integrity and reliability of any link in the chain or even the entire chain. To do this, calculate the hashes of all blocks in the plot and compare the results with the hashes in the corresponding blocks.
A chain of blocks that are strictly interconnected. Each block stores a certain number of records and the result of hashing the entire previous block. Each record that updates data in the blockchain is called a transaction.
If you replace at least one symbol in a block, the hash of this block and all subsequent blocks will change. This guarantees the integrity of the chain.
Here’s an example. Let’s take a few blocks already included in the chain and try to add a transaction to the block that was previously not in it. Since the block body has changed, therefore its hash has also changed. As a result, all hashes of subsequent blocks will change.
Thanks to hashing, each transaction and each block are closely related to each other. If you try to change any data, all the hashes of subsequent blocks will completely change.
The blockchain is decentralized, and you must provide your new changeable block to all community members. Each member will independently check your block and might disagree with the changes you have included. But we’ll talk about how it works further.
False data cannot be written to the blockchain because new blocks and data are checked for authenticity.
Let’s analyze how it works.
Each participant has a copy of the chain and tools for verifying the validity, such as asymmetric cryptography and proof of work. Later we will look at what it is and how it works. When one of the participants wants to add a new block, the other participants check that the data of this block does not contradict the data from their copy and that all transfers from addresses were initialized by their owners. They make sure that the data in this new block is not falsified and can be added to the blockchain. At the same time, participants do not trust one data source separately. For a block to get into the blockchain, its authenticity must be confirmed by most participants. It is important to remember that only those blocks verified for authenticity and approved by most network participants get into the blockchain.
Like any database or information system, blockchain must ensure viability and security. Someone has to keep the entire history of transfers, check transactions, and add new blocks.
You need a computer or server with special software to perform these tasks. It exchanges information with many of the same devices and forms a network.
For example, a computer can become a network node that communicates with all other devices on the network. It can synchronize with the entire network and store the full history of the blockchain, starting from the first block.
Such a computer is called a full node. Full — because it stores the entire history of transactions and blocks. There are different nodes with different functions. For example, storing the entire blockchain, adding new blocks, and verifying transactions. But to use the blockchain, installing a node at home is not necessary. For this purpose, a user node that performs minimal load is suitable. It is enough to work with personal transactions and addresses. It is called the light client and is usually presented as a wallet of digital assets.
It is not entirely clear what the motivation of users is to install special software and spend resources and time to run a node. Besides enthusiasm… You can only have a light client, which does not require anything.
But if you are an enthusiast, then…
The blockchain has a mechanism for encouraging community members who ensure the operability and security of the blockchain network.
For the blockchain to be decentralized, anyone has the opportunity to install a node and become a participant in the life of the network. To implement this, the source code contains a special mechanism for rewarding those who support the efficiency and security of the blockchain.
There are a lot of blockchain networks. Among the most popular are Bitcoin, Ethereum, Binance Smart Chain, Solana, Cosmos, Polkadot, and Avalanche. They all differ in many ways but also have some common properties.
First, let’s look at what all blockchains have in common:
These are the main blockchain properties, but not the only ones. There are many use cases for blockchain technology, and it is essential to look at the differences between networks in detail.
In the next article, I will go into more detail about the differences between the different blockchains