Since 2018 when the Blockchain technology was introduced through the launch of the Bitcoin currency, entrepreneurs and developers have made concerted efforts to enable the technology support varying degrees of applications on a single blockchain platform. There have been struggles to support functional decentralization applications by quite a number of blockchain platforms. Blockchain platforms that currently ply their trades globally are bogged down by large fees and limited computational power that prevent widespread blockchain adoption.
Applications specific blockchains have, however, been able to increase performance to thousands of transactions per second. They were able to reduce latency to 1.5 seconds, eliminate per-transaction fees, and provide a user experience similar to those currently provided by existing centralized services.
In order to satisfy the teeming number of customers eager to carry out applications on the Blockchain platforms, it is paramount that a platform can handle very large number of transactions within a short time span, offer users free services, support software and smart contract upgrades, fix bugs when they inadvertently occur, support low latency of transactions, support fast sequential performance, and be able to divide workload across multiple CPUs and computers.
The Block.one team who propounded the EOS.IO technology saw the need and necessity to counter these problems through the launching of the EOS.IO software that must utilize a decentralized consensus algorithm that is proven of meeting the performance requirements of applications on the blockchain Delegated Proof of Stake (DPOS), which is the fastest, most efficient, most decentralized, and most flexible consensus model available.
Before the Block.one team came up with the DPOS, the crypto world was aflush with the proof-of-work. The mechanism afforded miners the opportunity of solving cryptographic puzzles to mine a block in order to add to the blockchain. Solving cryptographic puzzles require a huge amount of energy and computational usage.
Usually, the puzzles are designed in such a way that makes them difficult and taxing on the system. If a miner succeeds in solving a puzzle, the block is presented to the network for verification. The verification is, however, an extremely simple process.
Consensus algorithm as the name suggests revolves around those who have tokens on a blockchain adopting the EOS.IO software. They have the option of selecting block producers through a continuous approval voting system. Participation in block production is open to all those who can persuade token holders to vote for them.
The EOS.IO software is configured in such a way that it enables blocks to be produced exactly every 0.5 seconds and exactly one producer is authorized to produce a block at any given point in time. Failure to produce a block at the scheduled time will cause the slot to be skipped thereby creating a 0.5-second gap on the blockchain. Where more slots are skipped, multiples of 0.5-second gaps are created.
Based on the EOS.IO software, blocks are produced in rounds of 126 (6 blocks, times 21 producers). To begin a round, 21 unique producers are chosen by a preference of votes cast by token holders who then schedule the order of production based on not less than 15 votes out of the 21 producers.
A producer who has missed out from producing a block within the last 24 hours is removed from contention until such a time a notification is sent about the intention to start producing blocks once again. The essence of this initiative is to ensure that the network runs smoothly by drastically reducing the number of blocks missed since a producer that is proven to be unreliable will not be scheduled.
A DPOS blockchain is configured in such a way that forks are not experienced since there is usually no competition quite unlike in mining. In the case of DPOS, producers cooperate to produce blocks. However, if a fork does occur consensus automatically reverts to the longest chain. This gives that a blockchain fork with more producers on it will grow in length faster than one with fewer producers since it will experience fewer missed blocks.
The EOS.IO software makes it absolutely impossible for a producer to be producing blocks on two forks at the same time. If a block producer attempts to beat this protocol, such will be caught and the penalty is to be voted out. With the incorporation of asynchronous Byzantine Fault Tolerance (aBFT) to traditional DPOS, cryptographic evidence of an attempted double-production will be used to discover such an abuse.
The BFT completely eliminates the incident of a producer signing two blocks with the same timestamp or the same block height. Any time 15 producers have signed a block, it is deemed irreversible. An irreversible consensus that is 100 percent should be attained within one second under this model.
The EOS.IO software requires every transaction to include part of the hash of a recent block header that serves two purposes.
- Prevents a replay of a transaction on forks that do not include the reference block.
- Signals the network that a particular user and their stake are on a specific fork.