What is EOS?
EOS is a blockchain founded and designed by cryptocurrency genius and serial entrepreneur, Dan Larimer. It promises to be a high performance smart contracts platform that uses a novel architecture to enable vertical and horizontal scaling (e.g. parallelized decentralized applications).
EOS focuses on usability and performance. Through a delegated Proof of Stake consensus algorithm combined with a messaging-centric design, it is an incredibly fast blockchain. Its unique token economics enables free transactions.
Currently, using decentralized applications (dApps) on Ethereum can be quite cumbersome. A user needs to pay fees and transactions are far from instant. In high traffic conditions, these issues are amplified with fees and transaction confirmation times skyrocketing. EOS aims to solve these usability issues in order to create a business-ready blockchain that doesn’t feel like a blockchain.
These are grandiose goals and it’s important to keep in mind that EOS is still an early stage project. Its main net hasn’t been released yet and EOS still needs to prove whether it will work as well as advertised. There are also significant centralization concerns.
EOS’s design principles
In the whitepaper, EOS’s team very nicely lays out 6 properties that they believe are key for dApps:
- Supports millions of users: can’t build a successful blockchain with large network effects if it can only support a small network of users
- Free usage: users should not have to pay transaction fees to use the network. It’s a bad experience doing so.
- Easy upgrades and bug recovery: applications should be super easy to upgrade. Software bugs are inevitable so it should be easy for developers to recover from them.
- Sequential performance: basically, a blockchain needs to have super high transaction throughput.
- Parallel performance: a blockchain should be able to parallelize the execution of dApps, since many dApps often work in their own siloes and don’t really care about any other dApps.
Who is Dan Larimer?
Dan Larimer has been involved with cryptocurrencies for a very long time. His BitcoinTalk account, bytemaster, was registered in 2010 and he has been very vocal about blockchain designs on the forum. He is, without a doubt, a blockchain genius and serial entrepreneur. Larimer is the founder of two large blockchain projects, Bitshares and Steem. Both of which have hundreds of millions of dollars in market cap. Bitshares is a blockchain that supports the decentralized exchange of custom assets and stablecoins. Steem is a blockchain specialized for a social network.
Larimer has mentioned in interviews that his ultimate plan is to build a high performance, generalized smart contracts platform. He is highly critical of Ethereum and intends to drastically improve on Ethereum’s shortcomings with EOS. It’s clear that this project incorporates many of his learnings from building Bitshares and Steem.
I highly recommend watching Larimer’s debate with Vitalik Buterin on blockchain scaling here.
How does EOS work?
EOS’s vision is to achieve widespread blockchain adoption. It plans to get there by building a general purpose, high performance, highly usable, and self-governing smart contracts platform. To do so, EOS needs to scale well, support free transactions, and have a self-governing system.
DPoS consensus algorithm and a 5% annual inflation
EOS uses a consensus algorithm developed by Dan Larimer. The algorithm fits best in the class of delegated Proof of Stake (dPoS) algorithms so I’ll refer to it as dPoS in this article.
DPoS is incredibly fast. In EOS, blocks are produced in rounds. In each round, 21 block producers are chosen and the producers take turns to produce a block every 3 seconds. Users vote for block producers; the top 20 accounts with the most votes are guaranteed to be block producers. The 21st block producer is randomly chosen, with chance proportional to an account’s total number of votes.
EOS will have an annual 5% inflation rate (the developers are thinking about reducing it to 1% but many questions remain) and the community is able to vote on the recipients of the inflation. Although the exact distribution of the funds is still unknown, it’s very likely that a large portion will go to the block producers.
How does EOS scale to millions of transactions per second?
EOS is able to achieve high scalability and throughput through a combination of its dPoS consensus algorithm and a novel architecture. DPoS is a blazingly fast consensus algorithm but the catch is, it’s centralized and requires high performance computers in order to meet blockchain demands. EOS’s novel blockchain architecture augments its dPoS algorithm to reach up to millions of transactions per second. The architecture is messaging-centric and supports parallelized dApp execution. Read more about it here.
EOS supports dApp parallelization
As mentioned above, EOS is capable of parallelized dApp execution. This is technically very impressive and allows EOS to be horizontally scalable, something Ethereum and Bitcoin is not.
Essentially, blocks are split into different threads with each thread assigned a group of accounts (which could include dApps) by the block producer. Two accounts can be safely assigned into different threads if there are no transactions referencing both accounts at once. This is made possible by the fact that the state of an EOS dApp only depends on the messages it receives, and the system has a constraint that messages generated in one block cycle can only be delivered in the next cycle.
In EOS, transactions are free
In EOS, transactions will be free. However, blockchains with free transactions raise two key concerns. First, they are vulnerable to spam. Second, how will block producers be motivated to keep producing if they cannot earn fees?
EOS addresses the first concern by using a unique resource model. Holding EOS tokens gives an account a set amount of transaction, computation, and storage bandwidth to use. The more tokens a user holds, relative to other users in the system, the more resources available to the user. This limit is elastic. In low blockchain usage conditions, each token provides more bandwidth. As overall usage increases, bandwidth allocation shrinks.
It’s important to note that this bandwidth restriction is enforced by block producers in a subjective fashion. Since a block is produced by a single block producer, the producer can unilaterally reject a transaction if they think that it’s wasteful.
Besides spam vulnerability, free transactions raise another key concern. How are block producers motivated to keep producing? This is where the 5% annual inflation rate is key to sustaining the system. As mentioned above, it is very likely that a large portion of the inflation will go towards block producers.
What about the self-governance system?
EOS token holders will have a say in governance. Not only do they get to vote for block producers, they also get to vote on how inflation funds are allocated. Each EOS token represents one vote. As mentioned above, to be a block producer, you either need to be in the top 20 accounts by votes or be randomly chosen as the 21st block producer (with chance proportional to your total number of votes).
Being a block producer gives you tremendous power. Block producers can collectively choose to freeze accounts, change a smart contract’s code, and propose protocol changes. In addition, the block producers will likely have a significant portion of EOS tokens and thus have a huge influence over governance decisions.
As part of its self-governance plans, EOS also introduces a blockchain constitution. In order to use the blockchain, users will need to sign the constitution by adding a hash of the constitution into the transaction’s signature. The constitution defines user obligations which cannot be entirely enforced by code. The constitution can be changed through proposals made by the block producers.
And much more…
EOS is an incredibly complex blockchain with many features that make dApp development as easy as possible. These include:
- a built-in permission management system
- an account recovery system
- ability for full nodes to partially evaluate blockchain state
To learn more about EOS’s technology, I highly recommend reading its technical whitepaper.
EOS is designed for businesses
Larimer has stated that if EOS is successful, it’d be the default blockchain for businesses to run their dApps. These dApps could include decentralized exchanges, social networks, and games. The blockchain will be able to support all these dApps without being bogged down due to its inherently high performance and the ability to scale well. EOS’s rich feature set also makes it very easy to build dApps. With such accolades, it would be hard for businesses to not choose EOS, theoretically.
EOS’s ecosystem is gaining momentum
The company behind EOS, block.one, has a very strong executive team. The team includes Brendan Blumer, a serial entrepreneur who has built businesses like okay.com in Hong Kong and 1Group in India, Richard Jung, a former CEO of Bithumb who has also held an executive position in Alibaba, and of course, the blockchain genius himself, Dan Larimer.
Mike Novogratz, a renowned billionaire ex-hedge fund manager who was an early investor in Ethereum, is an investor in EOS through his venture capital firm, Galaxy Digital. Galaxy Digital and block.one announced in January the formation of a whopping $325 million fund that would be used to invest in EOS’s ecosystem. TomorrowBC, the blockchain investment arm of Eric Schmidt’s venture firm, TomorrowVentures, also announced a similar EOS ecosystem investment fund.
In addition to these investment funds, block.one will also be channeling $1 billion of its token sale proceeds to investing in its ecosystem.
Currently, a few companies have expressed intents to build on EOS. The most prominent of which include Everipedia, a blockchain-based fork of Wikipedia, and EOSfinex, an EOS-based decentralized exchange by Bitfinex. With so much capital for block.one to deploy, look to see more and more companies build dApps on EOS.
Centralized cartel, with the power to modify contracts and censor accounts
There are significant centralization concerns with EOS. Block producers have tremendous power and there are weak on-chain mechanisms to replace a block producer. If you so happen to be one, you’d likely have a disproportionately large amount of EOS tokens which basically secures your block producer status. Not only that, being a block producer also entitles you to a large portion of inflation income. You will also have the ability to modify contracts and censor accounts. This is a scary amount of power to give to a select few.
It is also very hard for a user to become a block producer. Besides the paramount task of getting enough votes to be in the top 20, a user will also need to operate high performance computers with large storage capacities in order to support intensive blockchain operations.
In the end, there is a high risk EOS will become a highly centralized system with the top 20 block producers forming a rigid cartel. Is this worth the ease of development and large performance gains? I have my doubts.
Jack of all trades, master of none
EOS is essentially trying to be AWS on the blockchain. I do not think this is feasible. Blockchains are not designed to be general purpose, high-scale cloud computing platforms. If companies want such a platform, they would simply use AWS. AWS is cheap and provides SLAs that a blockchain will never be able to provide. Block producers have varying capabilities because they operate different computational and storage hardware. They are also able to unilaterally control which transactions get processed and which do not.
It is true that blockchains like Ethereum and Bitcoin have pitiful performance, yet they provide a level of trustless security and liquidity that AWS will never be able to provide. These core properties are what sets blockchain apart from other technologies.
If you try to push high performance computing with some level of decentralization onto a blockchain, I fear that you will only end up with a system that is bad at either.
EOS attempts to fix the scaling problems of existing blockchains in order to create a highly scalable and easy-to-use blockchain ready for widespread adoption. However, its ease of use, performance, and scalability comes with an expensive tradeoff: centralization. Don’t get me wrong, the technology has high potential, but there is also a risk that it ends up being a jack of all trades and a master of none.
Some call EOS the Ethereum killer. I disagree. I believe they serve very different use cases and can coexist.