The Way Blockchain Consensus Vision Changed After First Implementation Attempts
Systems that use the actively developing blockchain technology represent the family of decentralized information technologies systems. These systems continue sharing of functions among network participants and exclude a central authority.
Initially, all information systems were developed in a way to allow the whole system functions variety being managed from a single workplace. This classic centralized approach assumes a strict arrangement outside the system: managers of different levels, common employees, service personnel. As computer systems were evolving, it became necessary to allocate different roles and grant them a limited number of functions, just as the engineering field got divided in the past. Such a trend has led to several different approaches to manage information systems and their functions.
The first approach uses a delegated control where users within the system play different roles with a different level of permission and a different set of functions. These roles allow spreading workplaces, dividing processed data, and optimizing work input.
The second approach involves cloud technologies that have become popular lately. The main idea of this approach is similar to the previous one, but there are differences in data allocation. Here, synchronization aspects play the key role because a simultaneous use of the same data may lead to undesirable consequences, such as data losses.
Decentralized data processing is one more approach that started gaining popularity in the last several years. Its main difference is that each user has access to all system functions and, in some cases, all stored information. Data processing may be executed by all nodes. This leads to the absence of a centralized control. The only centralized place here is the development team but its functions are limited to proposals for improving the system, while the implementation of these improvements is put up for discussion.
2. Decentralization and blockchain
Decentralization is connected to several interesting peculiarities of the environment. One of them is the absence of the enforced distribution of responsibility for supporting the network workability. Participants decide whether they need it and how to support it. In case of blockchain, this kind of support is of high demand. This is due to the nature of blockchain and its role in blockchain-based systems.
It should be noted that blockchain is a specific database that has a quite original combination of properties. First, it is identical for all its users. This means that blockchain copy is totally equal for each network participant. Second, the database content is fully available for all participants. Everyone can check performed actions, the history of transactions, the amount of transferred assets, etc. Third, it is close to impossible to perform a fake transaction or change existing operations. To date, there are cases of fraud in the blockchain network, but they are associated with code errors and have nothing to do with users' passwords cracks. And finally, network participants do not trust each other by default.
Considering all the conditions, the issue of adding new information so that it can satisfy all participants remains very important. Blockchain update must be both accepted by participants without any doubts and be protected as much as possible from being broken and modified. To meet such requirements under the given starting conditions, the set of rules called consensus was developed. Consensus is the same for all participants and must be applied to each new block. If a block corresponds to the requirements it can be added to blockchain as a valid one.
3. Work, volumes and rewards
The complete insert of a new block in blockchain (from the moment of its formation to the point of its approval by participants) is exactly what network users work for. However, a complex process is hidden behind the simple description.
First, it is necessary to describe a new block's content. Information kept there is nothing but records about transactions in blockchain. Each transaction defines “where from”, “where to” and “how much” assets were sent. The combination of all transactions generated by nodes is passed to special nodes that are ready to input these transactions into a new block, exchange them with other nodes and keep them until it is time to put them into the block. These special nodes are called full nodes and their main purpose is to synchronize data in blockchain. Lightweight nodes refuse to exchange data as this process is difficult and requires a lot of computing power. Moreover, they do not hold the full blockchain because of its huge size.
Another part of the work is the process of block closing. In order to close the block, a node has to carry out a lot of calculations when searching for the required hash function result. This process is called mining. Hash function prevents the whole blockchain from being hacked because any hack requires a huge number of calculations. A hash result takes into account the previous result, thus we have a system that is strongly protected from hacks. Nevertheless, it takes too much effort to find such a function. Hundreds of thousands of devices are looking for a hash result simultaneously everyday. But due to the embedded adaptability to the network, the average time of finding of a new block always remains approximately ten minutes.
The amount of work is enormous and directed to the support of the blockchain network, hence it has to be encouraged. The developers of blockchain-based protocols reward participants in different ways. In the Bitcoin protocol, the rewards are of two types. The first one is obligatory. It is encoded in the protocol itself. This is the reward for closing a block, and a node receives it after calculating a hash function result. The second type of a reward is defined by other members of the blockchain network. This is a so-called transaction fee that is included in each transaction.
The reward for closing blocks is constantly decreasing, while a fee amount is defined by the author of a transaction. If the network is overloaded, a miner can choose a transaction with the highest fee.
4. From PoW to PoS
Proof-of-Work is an algorithm that allows accounting and verifiing of a calculated hash function. It is used in such blockchain-based protocols as Bitcoin, Ethereum, NEO, and some others. Though, other ways of measuring a single node usefulness also exist. The point is that the PoW approach has a disadvantage. Trying to get a reward, network members upgrade their hardware to increase the chance of finding a hash. This leades to the high energy consumption and makes other participants increase their performance as well. The situation is getting even worse as the reward decreases, while calculations become more complicated.
Another algorithm called Proof-of-Stake was proposed as an alternative to PoW. It is based on the amount of assets a user has. Its main idea is blockchain extension by placing “bets” on alternative closing blocks. The block that receives more bets will be added to blockchain, while alternative blocks are reserved in case of possible attacks.
The core Proof-of-Stake concept was proposed in 2011. After several months of discussions, a new solution was proposed as a part of the Peercoin cryptocurrency. This solution was the composition of PoS and PoW methods. Afterwards, several protocols used PoS partially or fully.
PoS supposes a limited number of managing nodes. Nevertheless, each node must reserve some assets value to join the managing pool. As a result, the chance that a specific node closes the next new block is proportional to the amount of reserved assets.
There are peculiarities inside the managing pool as well. For example, in case of Bitcoin, it takes ten minutes to close a new block, while the decision about the block closure is taken by a single node. Thus, there is no huge problem with data transfering as the size of transactions and blocks is small. The protocols, whose average block closing time is little, while the number of solution resolving points is big, may face synchronization problems. Some protocols solve this problem by decreasing the number of decision-making nodes.
Another issue is the absence of losses. The developers of PoS did not suppose that an unfair node might start messing with the whole blockchain by making bets on all possible alternative blocks. If several participants perform incorrect bets, this may lead to the invalid block deployment to blockchain. Such a threat must be prevented by developers to avoid scams and errors.
In his paper, Ethereum developer Vitalik Buterin gives an example of using PoW where a miner, who chooses a wrong block, suffers losses. Meanwhile, the PoS protocol, on the contrary, provokes users to place bets on all possible alternatives to increase the chance of correctness.
This problem may be resolved in different ways though. One of them is based on PoS properties and uses penalties. There are also mixed solutions where blocks should find different ways to reach consensus.
Another important aspect of consensus is the lack of trust to the pool representatives. Indeed, while every node can join the voting pool, the final solution is taken by a limited number of the nodes. In the paper mentioned above, Buterin describes a possibility for some nodes to take control over the whole blockchain and perform actions only with profitable blocks.In such cases, it is crucial to remove any chance that nodes can have an influence on the choice of voters.
In summary, the main purpose of all mentioned methods is to reach consensus in conditions of total mistrust. Such harsh conditions, naturally, impose strong restrictions on the used methods. Yet, regardless of the obvious and potentially hidden disadvantages, the development of various methods is a constant process that brings the whole community closer to the goal.