Welcome to the first article of the blockcentric column. We created it for blogging about Blockchain and all related topics. It will contain exciting articles about technology, projects, organisation and business concerns. They will contain knowledge and findings from our 20% time work but also news from the area.
We are looking forward to your feedback on the column and exciting discussions about your use cases.
A blockchain creates trust, traceability, and immutability through a peer-to-peer network. All transactions in the network, such as payments or event tracking in a supply chain, are confirmed by participants in the network. Thus, no central authority alone controls the validity of these events. These acknowledgments given by the participants lead to a consensus in the network, with which the data on the blockchain is continually persisted. So the majority of the participants decide whether a transaction is valid, instead of a single player. To create and implement a consensus, there are several mechanisms that I would like to explain and discuss in the following.
What are consensus mechanisms?
Each Blockchain needs to choose one mechanism that handles the agreement of all participants onto a truth about their data. It could be imagined as a consistent way to get all politicians of a parliament to agree on one opinion. As politicians probably need to discuss about this, all participants of a blockchain network do this by communicating with each other over the network. The communication protocols are thereby implemented in the software that is executed on all involved devices. What is communicated here, however, is not a political opinion but the data base of the blockchain, such as the transaction history of a currency like Bitcoin .
Currently there are mainly two of those consensus mechanisms which are well-known while other ones are still not that popular.
Proof of Work – Classical mining
We already know the term “mining” from Bitcoin, the mother of most of today’s cryptocurrencies and popular Blockchain applications. Also for the Ethereum network, transaction have to be packaged into blocks in order to be confirmed as part of the history. The correct name of it is Proof of Work (PoW) . In a simple way it describes the conditions that participants of the network must prove honestly how much work they have spent in order to be able to verify transactions. Therefor they get rewarded for every block that they validate and confirm. This reward is meant as a replacement for the spent electric energy and the usage of special hardware (ASIC miner or GPU). The surplus on the rewarding amounts is profit for the miners and represents an incentive. In total, the reward for a block consists of the regular block reward and the sum of all fees from all transactions contained in the block.
Proof of Work is yet, especially for cryptocurrencies, the most used mechanism of them all. This is probably the case because it has already proven its robustness and safety since 2009. In addition, the high financial involvement of miners ensures that the generated coins are actually backed of by real value in terms of fiat money. So to speak, mining is the transition of fiat money into coins of a cryptocurrency.
As robust and proven as the procedure may be, it is also strongly criticized. The big disadvantage of Proof of Work is that a lot of electrical energy and the need for specialized hardware pollutes the environment. Lots of cryptocurrency fans and critics would like to see that consensus does not have to need for this high stress to our environment. After all more than 3% of Germanys energy consumption could be provided by savings on mining energy of the entire Bitcoin network.
Another disadvantage of this mechanism is the commonly seen split of the community in these projects. Two individual groups of interest are the result. On the one hand there are the users that need to pay transaction fees in order to get their transactions confirmed. On the other hand the miners are needed to confirm them and keep the network up. Thereby they have a primary focus on profit and try to represent their own financial goals during involved discussions and politics. Proposals on how the project and its source code implementation could be improved often lead to discussions that are clearly split into two camps, each of which represent their own interests.
Proof of Stake – Shareholders with a voice
Like in a joint-stock company, shareholders have a right on participating on the consensus in the mechanism called Proof of Stake (PoS) . This claim to the right of validation of a block of new transactions is given deterministically (by pseudo-randomness) over and over again.
Thereby shareholders with more wealth in their wallet have a slightly higher chance of being selected. On the one hand they have a high interest in the stable functionality of the network and should also participate in keeping it up. On the other hand there is a danger of centralising the confirmation of blocks too much as wealthy shareholders can get even richer over time.
In most cases all tokens/coins in Proof of Stake based blockchains were pre-mined (already created before usage has started) in contract to PoW, where coins are slowly flushed into the market until the maximum supply is reached. So, PoS blockchains circulating supply of tokens is already exhausted. Therefore shareholders who were chosen for validating a block can only be rewarded by transaction fees.
The process is now used successfully in some blockchains and projects, also in the world of cryptocurrencies, and finds more and more appeal. Last but not least this is also a result of the fact that electric energy is not wasted anymore. The energy consumption is limited to the usage and validation activities of users and is not artificially increased by unnecessary complex calculations.
Furthermore the community is not split automatically into two camps but is united by being more or less serious users of the individual blockchain application. Nevertheless the risk of unfair distribution of wealth is remains. This can take place if wealthy participants are preferred on choosing the next block winner in a too high degree. Their wealth will be increased disproportionately in comparison to others. To prevent this from happening, it is important to strive for a fairest possible Proof of Stake algorithm. There are already certain variants with individual advantages and disadvantages in discussion, on which I am not going to elaborate further in this article.
Proof of Work vs. Proof of Stake – or something different?
The two best known consensus mechanisms should be known by now. We quickly realize that Proof of Stake focuses on eliminating the disadvantages of Proof of Work. The sustainability of blockchains is therefore to be increased by the significant saving of electrical energy and hardware and at the same time making the community easier to develop projects by avoiding conflicts of interest.
Nevertheless, Proof of Stake also raises questions: Can it be ensured that the rich are not getting richer? When is the block reward selection mechanism perfect and maximally fairly designed?
It does not hurt to look at other variants that want to improve on the two ideas.
Proof of Activity – A hybrid approach
This approach did not originate from the optimization of a single consensus mechanism but is a combination of PoW and PoS. It is foreseen that miners continue to solve cryptographic puzzles using a lot of electric energy and special hardware. However, the blocks found therewith are only meant to contain the identity of the block winner and its reward transaction. Then the Proof of Stake phase begins and the validators (shareholders selected to validate transactions and blocks) confirm the correctness of the block. If the block was checked often enough, the validators will finally activate it to a completed block. This step just finally ensures that open transactions are processes and are integrated into the found block containers.
Also the block reward is being split, so the validators also receive shares of it.
Proof of Importance – VIP first
The concept presented by NEM is coupled to Proof of Stake and also includes the roles of shareholders and validators. However, these are selected using a certain algorithm, not only by chance and size of their shares. Also their importance for the network and the importance that the network apparently has for them flows into the formula. In NEM’s definition of Proof of Importance (PoI) this is implemented with the inclusion of the network usage (transactions made with other participants). Participants who often send and receive transactions will find blocks more frequently. A detection of fraudulent usage and manipulative patterns is of course included into this concept to prevent spammy participants to gain a higher importance score.
In addition, only a special kind of stake is considered for the mechanism to be considered as wealth. Coins in the NEM wallet are not considered as wealth until they are vested. For every 24 hours 10% of the un-vested coins will be charged to this vested wallet. As a result, participants receive an incentive to make only necessary transactions and can only increase the importance score slowly by proving their involvement in the network.
Proof of Elapsed Time – Eco-friendly mining through innovation
This mechanism was invented by the chip manufacturer Intel and refers to the technological achievement SGX (SafeGuard Extensions) . SGX includes a set of CPU instructions, which allow processes to use private resources of the CPU for their own. This is to create Trusted Execution Environments (TEE) in the CPU calculation, for which there is no danger of being manipulated from outside processes.
What does this have to do with the confirmation of transactions? The goal is to implement a real random mechanism through this innovation at low hardware and software level. In comparison to Proof of Work, it should not be determined by chance, which participants can solve their riddles using their resources. Proof of Elapsed Time (PoET) wants to replace the cryptographic puzzles involved in PoW by the fact that the CPU architecture, in combination with the quantity of the mining hardware alone, knows how often and when a participant will win a block. It should ensure a random and fair competition in finding the next block.
This approach is about reducing energy consumption during mining. Unfortunately, this adds the dependency of a supported CPU architecture to the mining hardware. The hardware could be designed much smaller and combined with regular private computers but only if they fulfill the CPU requirements.
It is also questionable whether a distributed blockchain network should trust a general purpose chip maker. Without reproaching chip manufacturers, the consensus of the Proof of Elapsed Time network would be dependent on how secure and unmanipulated the SGX is implemented and this feels strange. The consensus of the decentralized network is thus placed faithfully in the hands of a central authority.
In this article, we have looked at the concept of five possible consensus mechanisms that can be used in designing a blockchain. It is to be assumed that the success of these systems is, among other things, related to the quality and fairness of their consensus process. Also the first frameworks behind blockchain software are ready to handle consensus as a plugin-and-play concept that can be configured so that implementation will not longer be a bottleneck. Therefore, we should continue to try to find better ways to secure and even scale up blockchains (more transactions per time unit).
Selection of the needed consensus process should be made dependent on the project requirements. One should think about how disastrous the disadvantages and how useful the advantages of the individual concepts could be for the desired result of the project. It is a matter of interest groups which mechanism fits best.
Ultimately, it is not yet possible to find a universally perfect consensus mechanism that is able to eradicate all advantages of its competitors.
Dein Job bei codecentric?
More articles in this subject area\n
Discover exciting further topics and let the codecentric world inspire you.