Consensus based on voting
Proof-of-work and proof of stake are consensus mechanisms considered safe but not very scalable. They allow any user to participate in the network as long as they contribute with computational power or lock their tokens into a smart contract. This makes the network effectively decentralized but slower.
In these mechanisms, the protocol needs to reach a consensus considering the participation of an arbitrary number of users. Furthermore, with the possibility of participants acting maliciously, blocks are considered finished only probabilistically. This is because blocks can be reversed, and transactions that are already included in the blockchain can be removed.
In the probabilistic consensus, the greater the number of blocks after the considered block, the lower the chance of being reversed. Still, there is a small chance.
Neo solves these issues by using a consensus mechanism based on voting rather than a lottery. Voting-based consensus mechanisms predate the emergence of blockchain and help achieve consensus in distributed systems. However, for such mechanisms to work in the blockchain environment, they need to be modified.
Voting-based mechanisms require voters to be identified. Neo implements a mechanism called delegated Byzantine Fault Tolerance, or dBFT for short. In it, holders of NEO tokens choose delegates responsible for participating in the consensus mechanism. The more NEO tokens a participant has, the greater their voting power.
Consensus will be reached in a vote among delegates who will choose the next block in the chain. Approval of 2/3 of the delegates is required for the block to be validated. Thus, when the block is validated, it is automatically finalized, which means it can’t be reversed.
The Neo network has 2 tokens, NEO and GAS. Since delegates are chosen based on who owns the NEO token, it is considered a token. To use the Neo network, that is, to pay the gas fee, GAS is used. Thus, NEO holders can maintain their tokens when using the network.
NEO holders are rewarded with GAS tokens to encourage participation in community decisions. With these choices, Neo is a proper decentralized autonomous organization. Another factor that contributes to its decentralization is that, although only consensus nodes can create new blocks, all participants can validate them. A second class of nodes, the relay nodes, has the mission of propagating the blocks. They will not propagate blocks that have been maliciously crafted.
As the consensus is decided by a small number of participants, the delegates, Neo is capable of processing a much larger number of transactions per second.
Protocols can choose only 2 of the three following goals: decentralization, security, and scalability. This is known as the blockchain trilemma.
Bitcoin and Ethereum are secure and decentralized networks but not very scalable. Neo goes the other way and opts for security and scalability, with less emphasis on decentralization, as only a small number of delegates participate in the consensus.