### Breaking EOS Down

EOS is a kind of a decentralized operating system, which allows developers to create their own apps on its basis. This platform will be located on data centers that will also produce blocks. Applications running on this platform will be able to share data. Software solutions comprise account management and authentication procedure, databases, asynchronous communication and the scheduling of applications across hundreds of CPU cores or clusters. The EOS vision is to build a blockchain dapp platform that can securely and smoothly scale to thousands of transactions per second, all while providing an accessible experience to app developers, entrepreneurs and users. They aim to provide and complete operating system for decentralized applications focused on the web by providing services like user authentication, cloud storage, and server hosting.

EOS creation was driven by the inability of existing platforms to handle the most burning issues in terms of blockchain applications development. In a perfect world, this platform should possess the following features:
• Capability to support millions of users (like Facebook and other large companies);
• Free services;
• Easy upgrades and bug recovery;
• Feedback with delay of no more than a few seconds;
• Capability to perform many transactions per second (e.g., Facebook handles ~52,000 likes per second, not to mention the number trading transactions on markets);
• Workload can be divided across multiple CPUs and computers;
• High sequential performance – due to sequentially dependent steps of parallel algorithms, it is not enough to just divide workload across devices.

## Project Features

### Consensus Algorithm (DPOS)

• DPOS allows token owners to select block producers through a continuous voting system, and anyone may choose to participate in block production and be given an opportunity to produce a number of blocks proportional to the total votes they have received compared to all other producers.
• Blocks are produced every three seconds, and at any given point in time a single producer is authorized to produce a block. If the block is not produced at the scheduled time, the time slot is skipped.
• Blocks are produced in rounds of 21 blocks. At the start of each round, 21 unique block producers are chosen: the top 20 producers by total approval are automatically chosen every round, and the last one is chosen proportional to their number of votes compared to other producers. The selected producers are shuffled using a pseudorandom number derived from the block time. If a producer turns to be unreliable (does not produce any block within 24 hours), they are removed until special notification.
• In the case of a fork, the algorithm will automatically switch to the longest chain of blocks.

### Transaction Confirmation

• A transaction is considered confirmed with 99.9% certainty after 1.5 seconds since its broadcast. In an extraordinary case (software bugs, Internet congestion) a node may choose to wait for confirmation by 15 out of the 21 block producers. Based on a typical software configuration, this will take an average of 45 seconds under normal circumstances.

### Transaction as Proof of Stake (TaPoS)

• Every transaction includes the hash of a recent block header to prevent a replay of a transaction in chains that do not include the relevant block and signal to the network that a particular user and their stake are in a specific chain.

### Deterministic Parallel Execution of Applications

• Blockchain consensus depends upon deterministic behavior, i.e. all parallel execution must be free from the use of mutexes or other locking primitives. It also means that each account processes messages sequentially and that parallelism is in place at the account level. Due to parallel execution, when a script generates a new message it does not get delivered immediately, but is scheduled for the next cycle, as the receiver may be actively modifying its own state in another thread.
• In order to enable two accounts to exchange messages without three seconds pause between each message, EOS divides each block into cycles, each cycle into threads, and each thread contains a list of transactions. In its turn, each transaction contains a set of messages to be delivered.
• Transactions generated in one cycle can be delivered in any subsequent cycle or block. It is possible to use static analysis of a block to verify that within a given cycle no two threads contain transactions that modify the same account. Until that invariant is maintained, a block can be processed by running all threads in parallel.

### Governance

• Governance is the process by which people reach consensus on subjective matters that cannot be captured entirely by software algorithms.
• Power originates with the token holders who delegate that power to the block producers. Block producers are given limited and checked authority to freeze accounts (block producers can select which transactions are included in blocks which gives them the ability to freeze accounts; EOS software formalizes this authority by subjecting the process of freezing an account to a 17/21 vote of active producers), update defective applications (once again, a 17/21 vote of active producers is required to update the code without a hard fork), and propose hard forking changes to the underlying protocol.
• EOS enables blockchains to establish a peer-to-peer (P2P) terms of service agreement or a binding contract among those users who sign it, referred to as a "constitution". It defines obligations among the users, which cannot be entirely enforced by code. Every transaction broadcast on the network must incorporate the hash of the constitution as part of the signature. A 17/21 approval is required to update a constitution.

### Block Rewards

• All blockchain producers are equally rewarded for a block. A system may be configured in such a manner to ensure that a total annual increase in token supply does not exceed 5%.
We would also like to say a few words about EOS developers’ approach to resource usage. Block producers publish their available capacity for bandwidth, computation, and state. The EOS software allows each account to consume a percentage of the available capacity proportional to the amount of tokens held in a three-day staking contract. Token holder who choose not to use a part of available capacity )or all of it), can give for free or lease idle capacity to other accounts.

For example, if an account holds 1% of the total tokens, then that account has the potential to utilize 1% of the state storage capacity. EOS developers project that if there is 1 billion of tokens and 1 TB of memory, than 1 kB of memory will cost ~1 token, i.e. /$3–30 per 1 kB depending on the market capitalization. To decrease the cost to$0.01, 3,000 TB of memory is required (which would cost \$1 million with SSD usage, but they are too slow; the developers bet on new technologies, but give no pricelist).

As for the number of transactions, EOS software will use Graphene technology (up to 10,000–100,000 transactions per second) and workload division.

## EOS vs Ethereum

EOS is already named a “killer” of Ethereum, though experienced users do not rush on and choose to wait and compare the platforms to learn their benefits and drawbacks. Let’s be wise and do the same.

### Design Philosophy

One of the key differences between EOS and the Ethereum network lies in the design philosophy behind the networks. The Ethereum network is specifically designed as a neutral platform for all potential applications. In this way, as stated by the Ethereum Design Rationale document on GitHub: Ethereum has "no features", refusing to build in "even very common high-level use cases as intrinsic parts of the protocol." This rationale eventually reduces the number of applications to a sensible level, but it also requires many apps to reuse code, and efficiency gains for app developers could certainly be realized if more common functionalities were provided by the platform itself.

In its turn, EOS recognizes that many different apps require the same types of functionalities and seeks to provide those functions, such as implementations of the cryptography and app/blockchain communication tools needed by many applications: generalized role-based permissions, a web toolkit for interface development, self-describing interfaces, self-describing database schemes, and a declarative permission scheme. These functionalities promise to be especially powerful for simplifying user account generation and management, as well as security issues like declarative permissions and account recovery.

### Consensus Mechanism

Another significant difference between EOS and Ethereum is in the blockchain consensus mechanism and overall blockchain governance approach. Whereas Ethereum uses PoW (and is going to switch to hybrid PoW/PoS), EOS will use Graphene technology that utilizes the Delegated Proof-of-Stake (DPoS) consensus mechanism.

An essential issue with the current PoW implementation is the difficulty in fixing broken applications. For example, recently the DAO suffered a critical bug. It showed that broken applications on Ethereum either result in investors facing substantial losses or in disruptive hard forks.

In contrast, DPoS algorithm behind the EOS platform includes a mechanism to freeze and fix broken or frozen applications. For example, if the DAO had been implemented on EOS, it could have been frozen, fixed, and updated without disrupting the other EOS apps. Furthermore, the DPoS consensus mechanism of EOS has no potential for spawning multiple competing chains during a hard fork. EOS will include a legally binding constitution that establishes a common jurisdiction for dispute resolution, as it is stated in its White Paper.

### Scalability

Another characteristic of utmost importance is scalability. Currently, the Ethereum network is limited by the single threaded performance of a CPU. Early test networks achieved 25 transactions per second, which could likely be increased to 50 or 100 tx/s with optimizations. In the past, the network has been overwhelmed and overloaded with transactions to the point that all but the highest-fee transactions were rejected: e.g., during Status ICO, in which the network was completely overwhelmed and the ETH tokens suffered a massive crash.

In terms of scalability, EOS seems to have two significant advantages over the Ethereum network. First, EOS will rely on Graphene technology, which has been shown in stress tests to achieve 10,000–100,000 tx/s. Secondly, as we have already mentioned, EOS will use parallelization to scale the network, likely up to millions of transactions per second. If these benchmarks are realized, EOS should be able to support thousands of commercial scale DAPPs.

### Protection against Denial-of-Service Type Attacks

It is also essential to discuss potential denial-of-service (DoS) type attacks, when a malicious attacker spams a network with traffic in order to prevent legitimate traffic from getting through. Looks like the Ethereum network has been proven to be vulnerable to such DoS attacks, while EOS is expected to be invulnerable to such attacks.

In the Ethereum network, it is well-known that miners preferentially select high-fee transactions to add to the blockchain. Since there is finite bandwidth and computing power in the network, it is easy to imagine a scenario in which the network is spammed with many high-fee transactions, effectively blocking out many lower-fee legitimate transaction (like with the recent Status ICO). This creates a serious weakness for the Ethereum network, since a single application or smart contract can effectively freeze out the entire network.
In contrast, EOS should not be vulnerable to DOS attacks. The ownership of EOS tokens gives users a proportional stake in the network bandwidth, storage, and computing power. Therefore, spammers can only consume the proportion of the network that their EOS tokens entitle them too. DoS attacks may be possible on a given application, depending on the apps design, but those attacks can never disrupt the entire network.

### Economic models

Last but not least, we will discuss the different economic models of the EOS and Ethereum networks. This is virtually a comparison between and ownership model and a rental model. With Ethereum, gas fees are required in exchange for every calculation, storage operation, and bandwidth utilization.
As for EOS, it will utilize an ownership model, in which holding EOS tokens gives users a proportional share in the network bandwidth, storage, and processing power. This means that if someone owns 1% of the EOS tokens, they will always have access to 1% of the network bandwidth, regardless of the load on the rest of the network. In this way, small startups and developers can purchase a relatively small part of the network in order to receive reliable, predictable network bandwidth and computing power, and simply purchase more EOS tokens when they need to scale up their application.

## Summing up

Considering all factors mentioned above, it seems that the EOS network will definitely provide solutions for the challenges troubling Ethereum. Naturally, blockchain technology will not stand still, it has to develop and overcome challenges in order to gain acceptance. Let us be realistic, though, as a new platform can be justly assessed only after being in a public use for sometime. Until it demonstrates how it handles emergencies, it’s not clear if it really “kills” Ethereum.