What is EOS?
EOS is a cryptocurrency founded and designed by cryptocurrency serial entrepreneur, Dan Larimer. It aims to be a user-friendly and high-performance smart contract platform that uses a novel design to eliminate transaction fees and enable parallelized decentralized application (dApp) execution. dApps on existing smart contract platforms, such as Ethereum, are often slow and require transaction fees for every interaction. These are limitations imposed by their underlying blockchains, which are optimized for decentralization over of performance.
EOS, on the other hand, optimizes for performance. dApps on EOS will be more responsive than dApps on Ethereum (10s), can achieve a significantly higher throughput, and will be free to use. The team hopes that by shoring up the limitations of Ethereum dApps, EOS can supplant Ethereum as the premier smart contract platform.
The company behind EOS, block.one, ran one of the largest and longest-running ICOs in history to raise funds for the development of EOS. In total, the 350-day ICO raised $2.6 billion worth of ether. Block.one has also established several EOS ecosystem investment funds with large venture capital firms like Mike Novogratz's Galaxy Digital and Eric Schmidt's TomorrowVentures. Altogether, EOS is one of the most well-funded blockchain projects that hasn't launched yet.
EOS paints a grand vision for public blockchains and dApps. However, many people have raised concerns as to whether the system is too good to be true. Fundamentally, trustless security through decentralization is what makes blockchain valuable, not free transactions or high performance. And there’s a real risk that EOS will become a centralized system controlled by a rigid cartel of 21 block producers. If users wanted to use a centralized application development platform, why would they choose Amazon's AWS over EOS?
The design principles of EOS
The EOS whitepaper lays out 6 properties that the team believes are key to the success of dApps.
- Supports millions of users: You can't build a successful blockchain with large network effects if it can only support a small network of users.
- Free usage: Paying transaction fees for every interaction with the network is a bad user experience. Transactions should be free.
- Easy upgrades and bug recovery: dApps should be super easy to upgrade. Software bugs are inevitable, so it should be easy for developers to recover from them.
- Latency: dApps need to be responsive in order to provide a good user experience. Having to wait several minutes for a transaction to be confirmed can be frustrating.
- Sequential performance: A blockchain needs to have high transaction throughput in order to support a large number of dApps and users.
- Parallel performance: Since many dApps often work in their own silos, a blockchain should be able to parallelize the execution of dApps.
There is one, in my opinion, very important property that the team has missed. It's called "trustless security". If a network has trustless security, users can be confident in the network's security without having to trust a single entity. It's arguable that this is an implicit requirement for cryptocurrencies but foundational frameworks need to be explicit. Trustless security is one of the key value propositions of cryptocurrencies and it should always be a top priority for blockchain designers.
How does EOS work?
For EOS to support free transactions and have high performance, it needs a design that's radically different from "traditional" blockchains (e.g. Bitcoin and Ethereum). With Bitcoin and Ethereum, any user can join and leave the blockchain's consensus process, in this case Proof of Work (PoW), at any time. The accessibility of PoW increases decentralization, but also places limitations on the network such as long block times, transaction fees, and even a cap on the maximum transaction throughput. These are essential in keeping the network honest, consistent, and accessible.
EOS removes these limitations by combining a unique consensus algorithm akin to delegated Proof of Stake (dPoS) algorithms with a new crypto-economic model where owning an EOS token gives the owner the right to a portion of the network's total transaction throughput. I elaborate on them below.
How does EOS's consensus algorithm work?
EOS's consensus algorithm can be classified as a dPoS algorithm. This class of algorithms is much faster and scales better than PoW or PoS algorithms. In a dPoS algorithm, there are more stringest requirements to be a block producer and this constricts the total number of block producers. Less block producers results in a better performing network at the cost of decentralization.
EOS's dPoS algorithm limits the number of block producers to 21. Blocks are produced in rounds. In each round, 21 block producers are chosen and the block 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 voted in. The 21st block producer is randomly chosen, with chance proportional to an account's total number of votes.
One of the main reasons why this consensus algorithm is so fast is because the order of block producers is known beforehand. This greatly reduces coordination overhead. As long as each of the 21 block producers are well-behaving, consensus within the group can be quickly reached.
EOS claims that with this dPoS algorithm and a novel communication architecture focused on message-passing over state-saving (read more about it here), EOS can scale to millions of transactions per second. However, this is also contingent on the fact that each block producer is operating incredibly powerful systems with high CPU and storage capacity.
How does EOS support dApp parallelization?
A feature unique to EOS is parallelized dApp execution. This allows block producers to scale horizontally. What this means is that a block producer can scale not only by increasing its CPU capacity, but also by increasing the number of CPUs it’s operating. dApps that likely won't communicate with each other can then be assigned to different CPUs. dApp parallelization contributes to EOS's high performance but is only made possible through the centralized nature of its dPoS algorithm.
How does EOS support free transactions?
In EOS, there are no transaction fees. This sounds wonderful, but there are two key problems blockchains with free transactions need to solve. First, they’re vulnerable to spam. Malicious users could flood the network with useless transactions at little to no cost and crowd out real and valuable transactions. Second, there are no incentives for block producers to produce blocks.
EOS addresses the first concern, spam vulnerability, by using a unique resource model. Holding EOS tokens gives an account access to a proportional amount of transaction, computation, and storage bandwidth to use. The more tokens an account holds, relative to other accounts, the more resources available to it. This limit is elastic. In low traffic conditions, each token provides more bandwidth. As traffic 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 any transactions without justification.
Besides spam vulnerability, free transactions raise another key concern. How are block producers motivated to keep producing? This is where EOS's 5% annual inflation rate comes in. There is no doubt that a large portion of the inflation will go towards paying block producers. As such, instead of explicitly paying fees to use dApps, which is a bad upfront user experience, holders of EOS are implicitly paying fees through inflation. Keep in mind that a 5% annual inflation rate is very aggressive. Even the US dollar does not officially inflate as fast (the official annual inflation rate is 2%).
How does EOS's self-governance system work?
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.
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 influence over governance decisions simply through the fact that they will likely be large holders of EOS.
As part of its self-governance system, EOS also introduces a blockchain constitution. To send transactions over EOS, users 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 enforced by code. It 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 these features, I highly recommend reading EOS's technical whitepaper.
Dan Larimer is the designer of EOS
The lead designer of EOS is Dan Larimer, a serial cryptocurrency entrepreneur. He has been involved with cryptocurrencies for quite a while. In fact, his BitcoinTalk account, where he’s been especially vocal about blockchain design, bytemaster, was registered in 2010. Larimer has built two successful blockchain projects prior to EOS. They are BitShares and Steem. Bitshares is a blockchain that supports the decentralized exchange of custom assets and stablecoins. Steem is a blockchain specialized for a social network. Both have market caps that are in the hundreds of millions of dollars.
Larimer has mentioned in interviews that his ultimate plan is to build a high performance and generalized smart contract platform. He’s highly critical of Ethereum and intends to significantly improve on Ethereum's shortcomings with EOS. It's clear that EOS achieves many of its functional improvements over Ethereum by incorporating many of his learnings from building Bitshares and Steem. I highly recommend watching Larimer's debate with Vitalik Buterin on blockchain scaling here.
Block.one is the company building EOS
The company behind EOS, block.one, has an experienced 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, 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.
A rigid 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’ll also have the ability to modify contracts and censor accounts. This is a scary amount of power to give to a select few.
It's also incredibly difficult 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.
Ultimately, there is a significant risk that EOS will become a centralized system with the top 20 block producers forming a static cartel. Is this worth the 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 don't think this is feasible. Blockchains are not designed to be general purpose, high-scale cloud computing platforms. If companies want a similar 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's 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 both.
John Oliver calls out block.one's Brock Pierce
John Oliver, the host of the popular American late night TV show, Last Week Tonight with John Oliver, ran a piece on cryptocurrencies and specifically called out EOS and its multibillion dollar ICO as a project rife with speculation. Oliver also called out block.one's executive Brock Pierce as a very controversial figure that was part of EOS's leadership team. Amidst showing several videos of Pierce behaving eccentrically in public, Oliver also encourages his viewers to google "Brock Pierce scandal".
The scandal Oliver was referring to was the Digital Entertainment Network (DEN) scandal where several DEN executives and high-ranking employees were accused of sexually abusing, drugging, and making violent threats against underage DEN employees. Pierce was part of the group being accused of these crimes and Pierce and two other DEN members actually fled the United States after the collapse of DEN during the Dot Com bust to avoid law enforcement. The three were eventually extradited back to the United States but only Collins-Recter, the founder of DEN, was charged. Pierce has publicly stated that the allegations him were false.
After the John Oliver's piece on EOS, block.one swiftly severed ties with Brock Pierce and stated that even though Pierce proved "immensely valuable", he would transition to independent community building and investment activities. Block.one then removed many official EOS YouTube videos with Pierce in them and reuploaded them with Pierce edited out.
EOS tokens are not stores of value
I have noticed many people discussing EOS tokens as if they were an investment. With a 5% annual inflation rate where a significant portion of the newly created EOS tokens will go to pay block producers, EOS tokens are very poor stores of value. By holding them, you are indirectly paying dividends to EOS block producers. It can even be argued that holding US dollars might be better than EOS tokens since the official US dollar annual inflation rate is around 2%.
EOS attempts to fix the scaling problems of existing blockchains in order to create a highly performant and easy-to-use blockchain for widespread adoption. However, EOS's ease of use and performance come with an expensive tradeoff: increased 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.