Other consensus mechanisms
The consensus mechanism is the algorithm that ensures the network agrees on a single truth. Bitcoin consensus is guaranteed by a proof-of-work mechanism, but this is not the only consensus mechanism currently used by blockchains. Proof-of-work is an efficient and secure mechanism, especially in mature networks with many participants, but it is not environmentally friendly. Its use requires the expenditure of a large amount of electricity.
Ethereum recently switched its consensus mechanism from proof-of-work to proof-of-stake. This is also a lottery-based consensus mechanism, yet it requires the participant not to use electricity, but to own a certain amount of tokens and hold them in a smart contract. The tokens work as a guarantee that the users will act correctly on the network and that they will not try to tamper with the ledger.
If such participants attempt malicious actions, part of their deposit may be slashed as punishment. As a right to keep their tokens locked in a smart contract, they will be entitled to participate in the draw that defines who will have the right to include the next block in the chain. As with proof of work, the winner is rewarded with newly created tokens.
Other blockchains use other consensus mechanisms. Some of them use a consensus mechanism called delegated proof-of-stake. In it, instead of all users being allowed to participate in the draw, as long as they have a minimum amount of tokens, only certain members can participate. Other members can delegate their tokens to a participant and receive a reward for doing so. Such a consensus mechanism is faster, as fewer members are entitled to participate in the lottery, but it is considered less decentralized.
Before the emergence of blockchains, consensus mechanisms of distributed systems resistant to malicious participants were known as Byzantine Fault Tolerant. Such mechanisms are based on voting rather than a lottery, and are inspired by the famous Byzantine generals problem. Let’s understand this problem better.
The Byzantine generals problem was proposed in the early 1980s by researchers in the field of distributed systems. It is an analogy that shows the problem faced in this area very well. Let’s say a group of generals are besieging a city and must decide whether to attack the town or withdraw. The endeavor will only be successful if everyone agrees on a single action.
The problem is that the generals are in different places and can communicate only by messages. It is possible that the messages will not reach their destination, or worse, that some of the generals are traitors and will act maliciously. Then, the problem is to find an algorithm that reaches a consensus, even in the presence of possible traitors and message delivery failures.
The Byzantine Fault Tolerance class of consensus mechanisms is a solution to the Byzantine Generals problem. Such kind of consensus mechanism needs to be adapted to be used in blockchains. This is because it is based on voting, and blockchain users are pseudo-anonymous as well as they can create as many accounts as they want. A malicious user could create multiple accounts, thereby increasing their voting power, what is known as a Sybil attack.
The Neo blockchain uses a consensus mechanism called delegated Byzantine Fault Tolerance. In it, a limited number of members are voted by the community, delegating to them the right to participate in the consensus. Such an adaptation prevents the Sybil attack, as the members with voting rights are chosen and properly identified. An advantage of such a consensus mechanism is its scalability and security, however it is also considered less decentralized.