EOS, launched on June 10th, 2018, is a blockchain platform for smart contracts and the development of decentralized applications (dApps). It is similar to the functionality of Ethereum but has been named “Ethereum killer” by many blockchain enthusiasts. EOS’s smart contract platform is powered by WebAssembly which supports multiple languages widely used in application development. EOS also provides a set of services and functions that closely resembles what an operating system would offer for dApps. All these features enable businesses to develop and deploy high-performance dApps in relatively fast paces.
The software that powers the current EOS blockchain is EOS.IO 1.1 which was developed by a company called Block.One. The company’s CTO Daniel Larimer is the inventor of the Delegated Proof of Stake (DPoS) consensus algorithm and the founder of Steem and BitShares. Both Steem and BitShares utilizes the DPoS algorithm and unsurprisingly, so does EOS. DPoS has been proven to provide high throughput by the success of Steem and BitShares. We will discuss how DPoS was implemented on EOS later in this article.
The similarity between EOS and Steem does not stop at the consensus algorithm. EOS also uses the Graphene software platform that we have discussed in our Steem article . For the past two years, Graphene has demonstrated its high throughput capability and vertical scalability potentials. Combined with the parallel processing capability provided by EOS.IO software, EOS’s vision of providing a platform that enables vertical and horizontal scaling of dApps is well within reach. Another feature of EOS that helps popularize dApps is the feeless (for the user of dApps) structure of its system design which we will discuss in the next section.
EOS State Storage (RAM)
EOS offers dApp developers the flexibility to provide free services to their users through feeless transactions. However, transactions consume blockchain resources which are often constrained and require careful allocation to prevent misuse. The EOS.IO software allows each account to utilize a percentage of the available state storage (ram) proportionate to the amount of token staked in the network. For example, if an account staked 5% of all the EOS token distributed, then this account has the right to use 5% of the ram capacity.
Developers can trade idle ram to others on the network. At the time of this article, ram was trading at 0.27 EOS/kb. When developers own enough ram, the price fluctuation of ram and EOS will not affect the ram available to the developers. Thus their applications can run continuously within the given ram and bandwidth capacity. This unique economic structure of EOS makes it different from blockchains that utilize utility tokens. As the price of utility tokens fluctuate, the cost of transactions follows as well. On EOS, however, the availability of resources is independent of the token’s value.
Please note that the ram price at this moment is very volatile because the trading history is very short and people are speculating on its prices. As the market matures, and block producers upgrade their ram capacities, the increase in supply will likely lead to a more stable ram price.
EOS’s Consensus Algorithm: Voting
There are two parts to the EOS consensus algorithm; the first part is DPoS and the second part is Byzantine Fault Tolerance (BFT). The combined algorithm requires 21 block producers, referenced as “Supernodes” on EOS, and many backup block producers. All block producers are elected through community voting. Account holders need to stake their EOS tokens to vote. Staking will locke the token for three days. Each staked EOS token can be used to vote for up to 30 block producer candidates, and the top 21 candidates are elected as Supernodes.
As of July 25th, 2018, 340 million EOS tokens were staked for voting, only 34% out of the 1 Billion total supply. If we exclude the 100 million EOS token held by Block.One, the participation rate was just over 37.8%. The low participation is likely due to the lack of proper voting tools and incentives for individual EOS holders to participate.
To analyze the votes distribution, we found the current list of supernodes in the below graph. As you can see, votes from the users on Bitfinex exchange, as indicated by the blue bar in the diagram below, accounted for about 50% of the votes for some of the supernodes. Bitfinex developed a voting tool called Bitfinex Ballot which allows EOS holders to cast votes on Bitfinex platform. This well explains why a considerable amount of votes came from Bitfinex, and shows a user-friendly voting tool is essential to increase participation.
However, from another point of view, it is hard to distinguish whether these Bitfinex votes are from the exchange itself or the individuals using the tool. The worst case is if they were not individual votes, then EOS supernodes are highly centralized. Thus, in this article, we believe an easy to use voting tools is necessary for the long-term development of the community.
EOS’s Consensus Algorithm: Block Producing
In each round of blocks, every supernode is responsible for producing six blocks with a 0.5 second block time. Thus, each round contains 126 blocks (21 supernodes, six blocks each) and takes 63 seconds to complete. If a supernode is inactive for 24 hours, then they are removed until they notify the blockchain that they will be back online again. Consistently unreliable supernodes are likely to be voted out by the community to ensure the stability of the network.
To achieve fast state finality, BFT was added to the DPoS algorithm on EOS by allowing all supernodes to sign each block. Once 15 of the supernodes (consists with BFT’s two-thirds rule) have signed a block, it is considered irreversible. Under the current configuration, EOS should reach irreversible consensus in under a second.
Nodes Incentive Model
The current reward schedule is shown in the diagram below.
The maximum inflation on the EOS network was set at 5%, but block producers (including the backup producers) will only receive 1% with the rest 4% goes to worker proposal. In this 1%, supernodes share the 0.25% per block rewards based on the number of blocks each had produced. They will also share the 0.75% per vote rewards with backup block producers, with the amount received proportionately to the number of votes each has received. However, there is a minimum requirement that backup block producers have to acquire enough votes to qualify for at least 100 EOS/day to claim the rewards. If a candidate does not achieve 100 EOS/day, they will receive nothing.
With the current supply of 1 billion EOS, 0.75% per vote rewards totals 7.5 million EOS tokens. Therefore, a candidate must obtain (100 * 365) / 7,500,000 = 0.487% of the total votes to meet the minimum requirement. According to the statistics obtained from explorer.eosvibes.io, 44 backup producers met this requirement.
In the below calculation, we assume that the 21 supernodes share the per block rewards evenly with each other. Based on the data we have, supernodes accounted for 43.2% of the total votes; thus we also assume that they share 43.2% of the per-vote rewards evenly. Note that those candidates not meeting the minimum requirement accounted for about 13% of the total votes. Therefore, we assume the rest 43.8% (100% — 43.2% — 13% = 43.8%) of the per-vote rewards will be shared equally among the 44 backup block producers.
- Per block reward: 1 Billion * 0.25% = 2.5 million EOS,
each supernode receives: 2.5 million / 21 = 119,048 EOS
- Per vote rewards: 1 Billion * 0.75% = 7.5 million EOS,
43.2% of the per vote rewards: 3,240,000 EOS
43.8% of the per vote rewards: 3,285,000 EOS
- Per vote rewards for supernodes: 3,240,000 / 21 = 154,286 EOS each
- Per vote rewards for backup block producers: 3,285,000 / 44 = 74,659 EOS each
For the first year, each supernode is estimated to receive 119,048 + 154,286 = 273,334 EOS each. Backup block producers are estimated to receive 74,659 EOS each. At the current EOS market price of US$8.51, the US dollar value of the rewards is US$2,326,072 and US$635,348, respectively. Please note the rewards calculated by us is subject to change as the price of EOS fluctuates, and the base of inflation increases from year to year.
EOS has promised some great features for dApps, and aims to compete against the current market leader in the dApps space, Ethereum. The new blockchain provides a much higher throughput than Ethereum while imposes no transactional costs to the dApps users. According to the development team’s design philosophy, these two features on EOS, along with the vertical and horizontal scalability, are critical for the broad adoption of EOS. It seems EOS is on its way to take away a large chunk of Ethereum’s business.
However, it is essential to know that Ethereum is also evolving and its development team already has plans to increase its throughput. Furthermore, Ethereum enjoys the first-mover advantage in the market and has amassed a large number of adopters on its network. New entrants of a market with a monopoly like incumbent often faces enormous pressure to challenge the status quo. It would be interesting to see if EOS will be a real “Ethereum killer” or diversify itself down the road to coexist in the market with Ethereum.
About Infinity Stones
Infinity Stones a Silicon Valley based company, providing cloud management services and security solutions for Blockchains.