EOS is a free, open-source protocol developed by Dan Larimer and Block.one that uses on chain governance and the delegated proof of stake (DPoS) consensus mechanism and relinquishes complete decentralization and censorship resistance.
The EOS community and supporters believe that complete decentralization and censorship resistance isn’t necessary for most dApps.
EOS aims to be a decentralized operating system and equip developers with tools needed to build large scale applications easily and quickly. Key features of EOS include its use of the WebAssembly Virtual Machine (WASM) and the ability to modify bugs where code does not equal intent, among others that we discuss below. The EOS community believes a dApp platform should have the following characteristics - support for millions of users, free transactions, low latency, and a process for fixing bugs and implementing upgrades.
EOS is still in its infancy, and the current version of the EOS mainnet doesn’t include all of the features outlined in the white paper, but Block.one and the community are building several features with the intention to integrate at a later date. However, in the four months since its launch, EOS has faced multiple challenges and come under criticism due to the lack of decentralization, the less than smooth mainnet launch, the high cost of RAM needed to deploy dApps and smart contracts, vulnerabilities leading to stolen funds, and violation of governance rules by key stakeholders.
We explore the EOS consensus mechanism, governance, key features and key challenges in depth in this primer.
Note: Part of the reason for EOS’ drastic divergence in indexed market cap relative to BTC and ETH could be EOS’ inflation and increase in token supply.
Block.one conducted a year-long token sale for the ERC-20 EOS token on the Ethereum blockchain. Block.one raised ~$4 billion during the token sale. The community began the launch of the standalone EOS blockchain using the software developed by Block.one on June 1, 2018. It officially launched on June 14, 2018, with over 15% of tokens staked for voting. Block.one has been criticized for the EOS ICO because it was conducted over such a long period1 of time and they will not necessarily use the funds for the continued development of eosio software. One of the uses for the funds could be to support dApps building on the platform. In June 2018, Block.one and SVK Crypto announced a $50 million fund to invest in projects building on the eosio blockchain ecosystem.
The EOS constitution is a “terms of service” agreement in the software that binds stakeholders together through a set of bylaws. The current constitution was drafted by Block.one to serve as the “interim” constitution until the community holds a referendum on the final version. However, a referendum/voting system has not yet been implemented. Until it is, the community cannot ratify a constitution.
The current draft of the EOS constitution has twenty articles. The website eosportal.io says users accept the constitution when they vote. Key highlights from the constitution, as it stands, are as follows:
- Vote buying. It is illegal for block producers to buy votes.
- Ricardian Contracts. All smart contracts must be Ricardian contracts, or legally binding contracts consisting of human written contract transpired into machine-readable contract.
- Dispute resolution. There should be an Arbitration Forum (ECAF) to resolve potential disputes, issues, and bugs.
- Amendments. In order for an amendment to the constitution to pass, >15% of token holders must vote, there must be 10% more “yes” votes than “no” and this must be sustained for at least 30 days in a probation period of 120 days.
- Inactive accounts. If an account is inactive for 3 years, the funds in the account may be distributed to all token holders according to a system contract.
- Interim. The current version is an interim constitution and will stay intact until the final constitution is ratified.
Dan Larimer proposed a new version 2.0 of the constitution shortly after the EOS blockchain launched and the ECAF decided to freeze the accounts of stolen token holders. In his Medium post, “Intent of Code is Law”, he called for the replacement of the current constitution with one that only allows arbitrators to rule on issues arising from code versus the intent of the code and on code exploits or vulnerabilities. In the post, Larimer outlines that it is detrimental to the overall community for the ECAF to exercise unlimited authority, even if it means that some stakeholders will lose funds in the process.
If everything on the blockchain is subject to mob-rule, then no one is safe. If the community does not have strong, objective, organizing principles, then everything is subject to interpretation and becomes unpredictable and arbitrary. The ensuing debates and conflict can tear a community apart.
– Dan Larimer
Block.one later published Larimer’s proposal on the official website. The most significant changes are 1) the removal of the article on the Arbitration Forum/establishment of the BPs as the jury, 2) the clarification that terms that cannot be enforced by properly functioning code are beyond the scope of producers’ authority, and 3) the requirement of a supermajority (⅔ + 1) vote by block producers in order to freeze an account or contract.
Brief note on Ricardian contracts
A Ricardian contract is a digital document that defines the terms and conditions of an interaction between parties. It is written as human readable text with the standard legal prose required by a court of law. It is cryptographically signed by the private keys of parties involved, making it possible to track and hold the respective parties accountable.
A smart contract, on the other hand, is machine readable. It is a set of instructions that tracks the arrival of events and executes the respective actions. As EOS Canada outlines, the limitation of smart contracts is that they don’t address key questions such as, what is the contract’s intention? What, if any, consequences are applicable? What is the defined scope of the contract? Who are the involved parties, and their approved representatives? Under which regulations would we resolve a dispute?
A key goal of Ricardian contracts is to be human readable in order to address issues that arise in dispute resolution. Parties involved must understand the intent of the contract and what they are signing for it to be valid.
Eos core arbitration forum
The current interim constitution calls for an arbiter (ECAF) to resolve disputes and fix issues such as stolen or compromised funds and buggy applications or exploits in the code. EOS analogizes the ECAF to a “judicial” authority in a democracy. EOS currently provides token holders the ability to report alleged thefts to the ECAF. ECAF responds with a ruling (or not) that block producers execute.
Shortly following the mainnet launched, EOS block producers froze transactions from seven accounts despite ECAF’s initial refusal to freeze the compromised accounts. ECAF stated that it did not have the authority to freeze accounts because the constitution in place is temporary and has not been ratified by the community. This controversial move brought the “limited” authority of block producers into question. Subsequently, the authority of ECAF came into question when it ordered block producers to freeze twenty-seven additional accounts without providing a valid reason initially. Dan Larimer then published an article outlining his thoughts on the events. He believes that no action should be taken by ECAF or BPs regarding stolen keys. Rather, when campaigning, BPs should offer to use a portion of their block rewards to compensate compromised accounts2.
Enabling a fall-back to arbitration to dispute the validity of a signature after it has been irreversibly accepted by the blockchain opens up more issues than it solves...We have seen that if you give people arbitrary power to resolve arbitrary disputes then everything becomes a dispute and the decisions made are arbitrary. The more power the arbiter has, the more vicious and petty the disputes become and the less predictable the outcome.
– Dan Larimer
The existence of ECAF is controversial and it is unclear if the community will vote on a constitution that 1) maintains the ECAF as the arbiter with its current authority, 2) maintains the ECAF as the arbiter with restricted authority, or 3) eliminates the ECAF entirely and transfers the arbiter function to block producers (proposed by Dan Larimer and Block.one).
Worker proposal system
The EOS community is developing a mechanism for determining which projects to fund using the excess supply in the eosio.saving account (4% or 109,000 EOS per day). The mechanism will be called the Worker Proposal System. The idea is that the excess supply should be used to fund projects that benefit the protocol and community.
EOS has a group (EOS Core WPS Working Group) working on developing a WPS framework. EOS Canada also drafted a proposal for a prospective proposal system in September. Currently, all the tokens are accruing into one account (eosio.saving). An attack on the account could compromise all the tokens. This “prize” (currently worth $35 million) also makes it attractive for bad actors to launch attacks. EOS Canada proposes the creation of a new account called ‘eosio.wps’ with subcategories comprising oversight, infrastructure, development, community, and miscellaneous. Dividing the tokens in treasury among multiple accounts could lower the risk. In order for any proposal to be implemented, it has to pass through a referendum. However, the community cannot hold a referendum until it implements a voting system.
Further, the community is divided on what to do with the excess funds. Part of the community believes a portion of EOS tokens in the account should be allocated to “high priority” projects such as the EOS arbitration body, security tests, an online portal for the WPS. They are also proposing the creation of an emergency committee to assess proposals to be put up for voting by token holders, if approved. The opposing side believes the funds should be burned because whales (token holders that hold large amounts of EOS) will vote on proposals in their favor due to the “one token one vote” format. It is unclear what the outcome will be given the dichotomy in the community.
EOS employs the delegated proof-of-stake (DPoS) consensus mechanism. DPoS was created by Dan Larimer and Cryptonomex (the Bitshares team). It was first deployed in Bitshares and then in Steem. Since then, other blockchain teams have employed variations of DPoS for their respective projects.
In PoS, token holders produce blocks based in proportion to their share or stake of total tokens. In DPoS, token holders vote for block producers, or BPs (the equivalent of miners), who create and sign new blocks. Votes are weighted based on token holders’ stake of total tokens. The block producer candidates that receive the most votes are elected and receive block rewards for verifying transactions. Block validators are full nodes that verify the blocks created. There is no limit to the number of block validators and anyone can run a full node and be a validator.
In theory, token holders will vote for benevolent block producers who campaign for receiving votes by sharing how they plan to use their income/rewards to improve and augment the network. Block producers should have the infrastructure required for producing blocks (proprietary hardware or public cloud servers) and the interest of the community in mind. Multicoin Capital’s Kyle Samani published an article outlining the framework Multicoin designed to determine to which block producers to allocate votes. The high level buckets are 1) operations and infrastructure, 2) team and value-add services, 3) BP stance on critical issues, 4) location and jurisdiction.
Token holders can vote block producers in or out, which is intended to prevent block producers from engaging in malicious behavior out of fear of harming their reputation and source of income. This currently serves as the only “slashing condition” in EOS, though the community claims that additional punishments can be incorporated if the community deems it necessary.
EOS token holders can vote for up to thirty block producer candidates. The top twenty-one candidates that receive the most votes are elected. The remaining block producers act as back ups. Token holders can cast votes up to the amount of tokens they hold per BP. For example, if a holder has fifty tokens, she can vote up to fifty times for up to thirty BPs (a maximum of 1,500 votes). Token holders must stake their tokens for at least three days in order to vote and tokens must be staked at all times in order for votes to be included in the tally. Blocks are produced in rounds of 126 blocks (six blocks times twenty-one producers). Token holders can vote for block producers at any time, but votes are aggregated at the end of each round. If votes change, the composition of BPs changes in the next round and so on.
Block confirmation time is 0.5 seconds with finality after one second. If a block producer misses its block, it is skipped and the transactions from that block are added to the next block. If a block producer doesn’t produce at least one block within a 24-hour time period, it is removed from consideration. Block producers are randomly assigned to produce specific blocks at the beginning of each round. In the case of a hard fork, the network continues building on the longest chain.
Not all token holders have the time, capacity or impetus to weigh in on matters taking place in the EOS ecosystem such as block producer elections, fund allocation, network changes, etc. (especially token holders with a small amount of tokens).
Thus, stakeholders can delegate their tokens to a proxy, a party that registers to vote on their behalf. The process is tracked on-chain. The proxy has the ability to direct the user’s votes, but does not have access to or control over the user’s private keys or account. The user can revoke their tokens from the proxy whenever they choose.
Block producer incentives
In EOS, block producers are rewarded for processing transactions in native EOS tokens released through token inflation. Block producers do not receive transaction fees. EOS caps block rewards such that the total annual inflation (total increase in supply annually) does not exceed 5%, though the rate is variable to the extent token holders want to change it. Currently, the increase in supply allocated to block producers is set at 1% annual, and the remaining 4% is accruing to self-fund EOS projects. It is being stored in an account called ‘eosio.saving’.
The only “slashing condition” or punishment for bad behavior in EOS is the loss of income and block rewards by being voted out. Apparently, additional slashing conditions can be implemented if the community deems it necessary.
The fact that block producers are allocated to blocks ahead of time has multiple advantages. Once BPs are voted in, they must cooperate to secure the chain because each BP is assigned to a block of transactions ahead of time versus Proof-of-Work where miners must compete with each other to create the next block and secure the network. In addition, assigning BPs in advance allows for faster block times and increased transactions per second (scalability). This is aided by the fact that EOS requires fewer validators to verify transactions in the block.
Other advantages include token holder recourse, or power to vote out block producers that behave maliciously or don’t live up to their promises. Also, block producers are compensated through inflation not transaction fees paid by users or developers. Therefore, they don’t have the incentive to create a block with transactions paying the highest fees (aka “ordering” transactions).
What’s the correct trade off?
One of the main challenges with DPoS is the fact that it achieves scalability at the cost of decentralization. Proponents of DPoS acknowledge this fact and contend that they can achieve a system that is decentralized enough though not fully decentralized. The challenge arises in choosing the “correct” number of block producers to ensure that the system is decentralized enough to make collusion impossible or near impossible.
Centralized exchanges end up holding large amounts of crypto assets on behalf of token holders. However, their support for voting has been very inconsistent. The consequences are (1) less voting in general, and more critically (2) exchanges aggregating customer tokens and potentially voting on matters with outsized influence in their favor but to the detriment of token holders. Although the latter situation might violate the interim or final constitution, it still presents a significant potential risk. The situation becomes more complicated when considering the additional conflicts of interest around exchanges that are also vying to be block producers (such as Huobi and Bitfinex).
Token holder participation
Blockchains using DPoS also put more responsibility and rely heavily on individual token holders, as token holders are expected to vote on matters such as block producers, allocation of treasury funds, and other initiatives.
Insufficient slashing conditions
In the EOS ecosystem, there is technically no financial punishment for malicious behavior. Rather, offenders will theoretically be voted off by token holders, thus losing their reputation and future income from carrying out such an attack. It is difficult to know whether this level of punishment is enough to offset the rewards gained from the attack.
Brief history: Bitshares and Steem
Other projects that use DPoS include Steem (a social network like Reddit), Bitshares (a decentralized exchange, or DEX), Lisk (dApp platform), Nano (cryptocurrency), PeerPlays (betting platform), Tezos (dApp platform). Bitshares and Steem were both built by Dan Larimer (CTO of Block.one), who invented DPoS in 2013.
Bitshares is an application specific blockchain (a decentralized exchange, DEX) built by Dan Larimer. Bitshares replaced Bitcoin and Ethereum’s proof-of-work (PoW) consensus protocol with delegated proof-of-stake (DPoS). Larimer’s reasoning for using DPoS was to achieve faster transactions. Additional features include named accounts and built-in governance to self-fund projects directly from the blockchain. A key challenge with Bitshares is that users need to pay transaction fees to carry out any action on the platform (i.e. users have to pay fees to submit an order that may not end up getting filled).
Steemit is a decentralized social network similar to its centralized counterpart, Reddit, and runs on the Steem blockchain. It was built by Dan Larimer and Ned Scott. Like Bitshares, Steem also uses DPoS. Unlike on Bitshares, transactions are free - users don’t pay fees for simple actions such as up-voting, posting, commenting, etc. Further, users who contribute content and interact with the content earn Steem tokens as compensation.
These two platforms offer higher transaction counts through their use of Graphene technology and DPoS, though are relatively more centralized.
WebAssembly (WASM) is an industry standard backed by Microsoft, Google, and Apple. Its objective is to make it possible to for developers to run high-performance code in any browser so they run with near native performance and allow applications to be developed in any language. WASM currently has compilers for C, C++, and Rust.
The creators of WASM believe that productivity apps such as email, social networks, word processing, etc. will eventually all use the virtual machine to reduce load times and improve performance, simultaneously. WebAssembly and accompanying tools will also allow programs to be ported to the web environment and still run with near-native performance.
EOS chose WASM as its virtual machine for these reasons. Crypto projects such as Dfinity and Ethereum are also working on integrating WASM. The additional advantages of WASM for developers building on blockchains is that they can use tested programming languages they are well acquainted with and benefit from the established tool set and libraries around the existing programming languages.
EOS tokens serve multiple functions. Voting power, bandwidth, and computational capacity are allocated in proportion to tokens held. For example, if you own 1% of tokens, you have 1% of the voting power, bandwidth, computational power, and storage capacity. Rather than paying to use the network, developers need to own (or rent) tokens in proportion to how much computational power and storage they need to run the applications.
The EOS blockchain will also have a storage function, though it is not rolled out yet. In order to use storage, token holders must stake their tokens for as long as they are using the storage. If the storage is used indefinitely, then the staked tokens will be burned (removed from circulation). Token holders can also rent out all or part of the bandwidth and storage that is not being consumed to developers who need it to run their applications.
RAM, CPU, and NET
EOS dApp developers need to secure three key resources to run applications and onboard users to dApps on the platform. These are RAM, CPU bandwidth, and network bandwidth (NET).
Network & CPU bandwidth
According to block producer, EOS New York, Network Bandwidth (NET) is the average rate of successful data transfer through a communication path. CPU Bandwidth (CPU) is the rate at which data can be read from a storage device. NET measures average consumption in bytes over rolling three day periods. CPU measures average consumption of computing resources in microseconds over rolling three day periods.
The amount of NET and CPU used increases as more actions and transactions are executed and decreases when there are less actions and transactions. With CPU, the more complicated the transaction (measured by how long it takes to execute), the more CPU bandwidth the transaction will require.
EOS token holders can stake their EOS tokens to access a proportional amount of CPU and NET on the network. If their CPU/NET requirement goes down, they can unstake the tokens. They do not need to pay a fee to do so and all EOS tokens are returned to the user. In addition, token holders can delegate unused bandwidth to other accounts that need it. Currently, there is no business model around this, but Dan Larimer has published his thoughts on developing a marketplace where users can borrow or rent unused bandwidth.
RAM & RAM allocation
EOS dApp developers need RAM to support their applications and user base. RAM works differently from CPU bandwidth and network bandwidth. Developers need RAM to store the application state until that state is deleted. If developers don’t have enough RAM, the application will fail to perform certain functions.
Initially, EOS was designed such that developers could only sell back RAM at the price at which they purchased it (RAM is denominated in EOS). In the Dawn 4.0 software update, Dan Larimer introduced a RAM marketplace that is governed by the the Bancor protocol. Developers must purchase RAM based on its current market price in EOS. The price fluctuates as the supply/demand dynamics change, so users bear the risk of RAM price volatility.
The idea is that developers will sell RAM when they have more than they need, freeing up resources for developers who need it. Token holders must pay a 0.5% fee both when they buy RAM and sell RAM. The fee gets deposited into the EOS treasury. The total RAM available on EOS is currently 64GB.
A couple weeks after EOS launched, some speculators purchased RAM to sell it for more at a later date if/when demand spiked and recognize a profit. This caused prices to skyrocket as high as 0.94 EOS/KB. In July, speculators and developers had purchased a total of 51GB of RAM but only 2% was being used.
In response, Dan Larimer published an article proposing three solutions.
- Solution 1: First, Block.one would introduce an update to the software that would allow BPs to determine and implement a continuous rate of increase in total RAM available. Larimer suggested that BPs increase RAM at a rate of 1KB per block (or 64GB annually). This update has since been accepted and implemented by block producers.
- Solution 2: Block.one also introduced an update that would allow BPs to reduce the RAM required to create accounts. The EOS blockchain was hard-coded such that 4KB of RAM was required to create an account. In September, fifteen BPs approved contract update v1.2.1 that lowered the cost of creating an account EOS by 25% by changing how each account calculates the total amount of RAM it has available and adding 1400 bytes to all new accounts.
- Solution 3: Finally, Block.one plans to offer free accounts to users of its hardware wallet (currently under development) which will use Apple’s Secure Enclave. Accounts will be free for users of any dApps that are compatible with the wallet’s API. There is no timeline around when the wallet will be available.
In July 2018, some block producer nodes went offline when RAM consumption exceeded 1GB due to failure to adjust a default configuration. The network itself did not experience downtime as standby producers stepped in to substitute for disabled BPs.
More recently, in August 2018, the community discovered an exploit that allowed malicious transaction recipients to lock up the RAM of senders by inserting large amounts of data into senders’ accounts. Developers have devised a temporary fix that requires users to send tokens using a proxy account that has no RAM attached to it. EOSBet was one of the dApps affected by the bug and had to disable the dApp for a period of time to implement the temporary solution. EOSBet is working with others in the community to develop a more permanent solution.
RAM is one of the key resources EOS needs in order compete with Ethereum and other smart contract platforms from a performance standpoint. However, RAM troubles have plagued the platform consistently since launch.
One of the main challenges crypto-assets face is scalability. In Bitcoin and Ethereum, the PoW consensus mechanism creates bottlenecks as it requires thousands of nodes to verify transactions to achieve confirmation. In times of high traffic, this results in high transaction fees, transaction ordering, and slow transaction confirmation times (high latency). In response, the respective communities are working on scaling solutions such as Lightning Network, state channels, sidechains, sharding, etc.
EOS was built with scalability (high throughput and low latency) as a primary objective. The community claims that EOS can scale to thousands of transactions per second with the ability to scale to millions through its use of DPoS, Graphene technology and eventually parallel processing.
- DPoS. In DPoS, one BP is in charge of producing each block as decided upon in advance. Contrast this with Bitcoin and Ethereum, which have ~10,000 and ~17,000 nodes, respectively.
- Graphene technology. Graphene is an open source software toolkit developed by Dan Larimer and the Bitshares team (Cryptonomex) capable of 100,000 tps according to the team. It is an “industrial strength” software platform for deploying blockchains and is being used by Bitshares, Steem, MUSE, and Peerplay.
- Parallel processing. In parallel processing, the workload is divided among multiple processors or “threads” thus reducing the run time of a program. This is also known as horizontal scaling. The blockchain will initially run on a single-thread and aims to become multithreaded in the future.
In addition, transactions on EOS achieve finality (are irrevocable) in a matter of seconds versus around 30 minutes on Bitcoin.
As mentioned above, block producers have the ability to fix a buggy dApp or make changes to underlying code without undergoing a fork. Contrast this with Ethereum, which had to undergo a hard fork resulting in Ethereum and Ethereum Classic following the DAO hack. The original Bitcoin community also divided in two over the “increase block size to scale” debate creating Bitcoin and Bitcoin Cash.
The EOS account management system establishes a hierarchy of accounts and allows the owner of the account to delegate permissions and actions to other accounts. Each account has “owner” and “active” sub-accounts. The owner delegates authority to “active” accounts that can do everything but change the owner. Accounts in the “active” group can transfer funds, vote for BPs, buy RAM, grant specific permissions to other accounts, etc. The “owner” key is used to make changes to the ownership of the account. The community suggests keeping this key safely offline.
Besides delegating permissions, such multi-user control seeks to strengthen the security of the system and make it more challenging for hackers to steal funds. In addition, users can designate an ‘account recovery partner’ to help restore or recover accounts in the case of a stolen or forgotten password.
Another account management feature in EOS is that account names are chosen by the creator and are ‘human readable’. This allows users to interact with a specific name or handle rather than interacting with an account name that consists of randomly generated letters and numbers.
Most EOS accounts have a 12-character long account name. Accounts can create premium account names (shorter than 12 characters) by bidding on EOS. EOS contains a built-in mechanism allowing users to bid on desirable account names. Users enter the account name they want and their bid. If they get out-bid, their bid is returned. One premium account name is awarded to the highest bidder each day. This website shows the current premium name bids.
EOS aims to be the first developer-friendly decentralized operating system. EOS believes developers stand to benefit from a baseline set of functionalities to improve platform usability. This includes a web toolkit for interface development, a self describing database, the ability to fix bugs and faulty code without forking or interrupting the entire network, the ability to delegate permissions (as discussed in the account management section), etc.
In the EOS blockchain, users don’t need to pay transaction fees to carry out different actions. EOS places the onus on dApp developers (though this has its own slate of challenges, as discussed above). Just as websites like Twitter and Facebook don’t require users to pay per like or pay per post, the EOS community believes that it is not intuitive for dApps to require customers to submit micropayments to carry out simple actions on decentralized applications.
Projects building on EOS
Bitfinex is building a decentralized exchange called EOSFinex on the EOS blockchain. According to the website, Bitfinex plans to launch the beta in November 2018 and launch the fully decentralized application in March 2019.
BancorX is a decentralized exchange (DEX) dApp that allows users to buy and sell EOS tokens (released September 2018). The dApp does not have central servers and does not hold user tokens. Eventually, Bancor and LiquidEOS (block producer operated by Bancor) plan on rolling out another product that will enable cross-chain trading between Ethereum and EOS tokens.
Multicoin announced the creation of Aurora EOS, an independent company running to be an EOS block producer. Myles Snider, a Multicoin research analyst, will become CEO of the new company. Tushar Jain and Kyle Samani, both founders of Multicoin, will sit on Aurora’s board of directors. Aurora EOS will publish weekly updates and occasional opinionated essays. Multicoin is an investor in EOS and has been an EOS advocate.
Common dApp categories on EOS include decentralized exchanges and betting games. Currently, the top dApp on EOS by users and transactions is EOSBet. EOSBet was initially released on Ethereum. It explicitly moved to EOS because of its better performance.
Find a continuously updated list of the entire EOS dApp ecosystem here.
EOS Testnet to Mainnet
EOS tokens were frozen on June 1, 2018 ahead of the transition from the testnet (on Ethereum) to mainnet (on a new, separate blockchain using eosio software). Although Block.one created the eosio software, the company took a hands off approach to the launch and left it up to the community to launch the blockchain.
A group of block producer candidates formed a consortium called the EOS Mainnet Launch Group (EMLG) to help facilitate a smooth transition to the extent possible. Two-thirds plus one of all block producer candidates were required to vote “go” to proceed with the launch. The group held three “go/no go” votes (one every 24 hours) before coming to a unanimous “go” agreement on the third vote (June 9) and deciding to launch a single EOS blockchain.
A block producer took the software live and kicked off the first election. The BP was supposed to be randomly selected but it is unclear if that was the case. EOS token holders voted for the first set of block producers. In order for the blockchain to go live, a minimum of 150 million tokens needed to be staked for voting (15% of total existing supply). This took five days (June 9-14, 2018). The blockchain went live on June 15, thirteen days after the planned release. On June 16, the blockchain stopped functioning and had to be paused for five hours until a patch was rolled out by Block.one and the block producers.
Testnet to Mainnet Challenges
During the mainnet transition, voting via the command line tool, cleos, required users to be technically savvy. The alternative recommended by block producer candidates was Scatter. However, this software required users to expose their private key. This made some voters uneasy and some BP candidates advised against using any tool other than the command line tool. There were other third party voting tools that had not been vetted by block producers that could make token holders vulnerable to hackers. Some token holders were waiting on the sidelines until a more secure voting tool (one that allows them to vote via a cold wallet) emerged. This functionality is now available. Ledger (the hardware wallet) added support for EOS in September 2018.
One issue block producer candidates discussed before unanimously voting “go” was around the RAM needed to start the platform. The platform’s first user would need to purchase RAM in-network to launch the platform, and the candidates voted on creating 19,000 tokens (~$260,000) to do so. Critics worried that the candidates were able to essentially print money at will. Candidates countered that the alternative would be an indefinite delay to the launch of the network, which could be viewed with more criticism. This ties back to the centralization challenge EOS is dealing with.
Candidates were able to essentially print money at will. Candidates countered that the alternative would be an indefinite delay to the launch of the network, which could be viewed with more criticism. This ties back to the centralization challenge EOS is dealing with.
EOS is too centralized
An EOS blockchain has twenty-one block producers (Ethereum’s equivalent of miners) versus Ethereum and Bitcoin, which have thousands of nodes competing to mine the next block. This makes EOS more centralized. In addition, when token holders vote for block producers, votes are weighted based on portion of total tokens held.
This begs the question: will the “whales” (holders with more tokens) be able to outvote their less wealthy peers? Will the less wealthy choose not to vote, knowing their vote will make less of an impact or no impact (also referred to as “voter apathy”)? And will block producer candidates be able to bribe token holders to vote for them (even though this violates Article IV “no vote buying” in the current interim constitution)?
EOS has already come under fire for its more centralized structure, when block producers first froze 7 accounts without getting approval from the ECAF and again when ECAF froze 27 accounts without providing valid reasoning initially. Critics fear the ability of these entities to exert this kind of power and actually take action presents a scary risk to the community of token holders. If this continues and the platform ceases to be permissionless, developers and users could leave or refrain from participating in the first place.
Ethereum’s competitive moat
One of the arguments against EOS (and other dApp platforms) is that Ethereum’s network effect is too strong. Ethereum is the leading dApp platform almost 1,900 dApps. Ethereum has a vast developer community, strong brand recognition, and proven technology, whereas EOS and other platforms are relatively young and yet to be tested.
On the flipside, Ethereum faces barriers to mass adoption - mainly scalability. Although the community is working to implement solutions, it could be a couple years before the solutions are rolled out on a grand scale. Meanwhile, EOS is attracting developers and users to its platform. On September 18, 2018, the top 10 EOS dApps surpassed the top 10 Ethereum dApps in 24-hour users and weekly transaction volumes. The top 10 EOS dApps had 13.5k users and a transaction count of 2.7 million versus the top 10 Ethereum dApps with 6.3k users and 367k weekly transactions. The qualifying statement here is that different dApps require different types and quantities of transactions, so we are not always comparing apples to apples. However, if EOS proves to be a scalable and decentralized enough solution before that, EOS could continue to see dominant development and user activity.
EOS is not “sovereign grade” censorship resistant
“Sovereign grade” refers to a system that can sustain direct attacks from powerful governments and sovereign bodies. EOS forgoes this level of censorship resistance to achieve scalability and improved performance. The community’s view is that developers will build on a platform that supports their goals, whether it is “sovereign grade” censorship resistance on Ethereum or high throughput and performance on EOS at the cost of the maximum censorship resistance.
EOS lack of decentralization is already creating challenges. On September 30, 2018, an EOS investor (MapleLeafCapital) shared findings that an EOS block producer, Huobi, was colluding with other Chinese block producers and participating in mutual voting and pay offs. Huobi denied the claims but the authenticity of the internal documents has not yet been disproved. This brings EOS’ block producer structure into question and may cause the community to ask if it is decentralized at all. MapleLeafCapital also pointed out that 12 of EOS’ 21 BPs are in China, which goes against suggestions from multiple token holders that block producers should be geographically distributed.
Platform downtime & how EOS deals with bugs
A few days after the EOS network went live, it experienced a full service outage for ~5 hours as block producers froze the network after discovering a bug in version 1.0.4 of the software4. Eventually, the producers patched the bug to resume operations, though criticism was that Block.one did not carry out sufficient testing prior to release. Many believe this patch-as-you-go model won’t be sufficient in perpetuity. The EOS network allows block producers to freeze specific accounts (and the entire network in this case) to avoid forking. However, freezing the network every time a bug is discovered is not sustainable and disrupts the “liveness” of the platform.
The way block producers collaborated to patch the bug also drew criticism and ignited fears of collusion and eventual centralization since block producers had to work together. Critics worry that continuing to work together in this way will lead BPs to develop relationships with one another and collude to keep each other in power and implement (or not implement) the changes they want (don’t want), thus creating a centralized consortium governing the EOS blockchain.
Similarly, NEO halted in March because a consensus node was disconnected from the network and the Steem blockchain halted for a few hours in September because certain nodes accidentally hard forked the network early, ahead of the planned update.
The downtime experienced by these protocols could have to do with their federated and delegated ways of achieving consensus because a set of specialized nodes are designated ahead of time to determine the state of the network. When key nodes in such systems go down or fall out of sync, the entire network can go down for a period of time, dependent on other variables, and require human intervention5.
Ethereum was the first platform that allowed developers to build smart contracts and decentralized applications and has a proven track record. Since then, the Ethereum community, dApps, and users have grown significantly making it a market leader in the platform blockchain arena. In addition, there are multiple other blockchains working to become the dominant scalable smart contract and dApp platform.
It remains to be seen how the community will address the challenges outlined here, as EOS is still in its early days. However, each smart contract platform faces its respective challenges and it is still unclear who will win the dApp platform race or if there will be a winner. Different dApps will have different requirements and it is possible that we see a future in which platforms coexist, with each platform suited for different use cases based on the needs and requirements of the communities that surround them.
Block.one is a Cayman Islands based company that developed the eosio software and conducted the EOS token sale. The company owns 10% of the total supply of EOS tokens (100 million). In addition, Block.one has committed $1 billion in “ecosystem funds” to invest in projects looking to build on the EOS ecosystem.
Dan Larimer is the creator of delegated proof-of-stake, Graphene and multiple decentralized applications (Bitshares and Steem). Larimer also co-founded blockchain consulting firm Cryptonomex. He has a BS in Computer Science from Virginia Polytechnic Institute and State University.
Brendan Blumer has been involved in blockchain since 2014. He has previously been involved in companies which dealt with currency exchanges in MMORPGs and in the real estate.
Andrew Bliss is the CFO of Block.one. Prior he was CFO at ii5 and held multiple positions at Rockwell Collins in the finance function.
Wendy Lee is the Chief Legal Officer of Block.one, and at Cooley LLP, prior. She has experience handling business strategy and legal and compliance matters of tech companies and blockchain projects.
Ian Grigg, Li Xiao Lai, Michael Cao, Bo Shen
Fenbushi Capital, Blockchain Capital, Yunbi, Aurora Investment Advisors, Hyperchain Capital, Brock Pierce
1 Their reasoning was to give everyone a fair chance to participate in the token sale and build the community ahead of launch.
2 The challenge with this action is that it could be interpreted as “vote buying”.
3 In static typed languages, the code or type checking occurs at compile-time versus dynamic typed languages, in which code is checked at run-time.
4 The bug resulted from deferred transactions that weren’t being correctly checked.
5 Why crypto outages are on the rise.
This report has been prepared solely for informative purposes and should not be the basis for making investment decisions or be construed as a recommendation to engage in investment transactions or be taken to suggest an investment strategy in respect of any financial instruments or the issuers thereof. This report has not been prepared in accordance with the legal requirements designed to promote the independence of investment research and is not subject to any prohibition on dealing ahead of the dissemination of investment research under the Market Abuse Regulation (EU) No 596/2014. Reports issued by Circle Internet Financial Limited (“Circle”) or its affiliates are not related to the provision of advisory services regarding investment, tax, legal, financial, accounting, consulting or any other related services and are not recommendations to buy, sell, or hold any asset. The information contained in this report is based on sources considered to be reliable, but not guaranteed, to be accurate or complete. Any opinions or estimates expressed herein reflect a judgment made as of the date of publication, and are subject to change without notice. Trading and investing in digital assets involves significant risks including price volatility and illiquidity and may not be suitable for all investors. Circle and its affiliates trade and hold positions in digital assets and may now or in the future trade or hold a position in the asset that is the subject of this report. In addition, employees and other associated persons may trade and hold positions now or in the future in the asset that is the subject of this report. As a result, Circle, its affiliates, and its employees or other associated persons may be subject to certain conflicts of interest in connection with the provision of this report. Circle will not be liable whatsoever for any direct or consequential loss arising from the use of this Information.