Ethereum is the most popular platform for launching smart contracts. However, several years ago, the central network of EOS was launched - perhaps the strongest competitor to Ethereum.
In this article, we are going to compare the strong and weak sides of these two networks.
Token model. In EOS and Ethereum, the token (or coin) model is the same - inflationary. That is, tokens are released to issue bonuses to miners. Recently, Vitalik Buterin wrote that he wants to remove or reduce inflation in Ethereum. EOS has an inflation rate of 5% per year - this is built into the algorithm and, presumably, will remain unchanged.
Transaction payment model. Paying for transactions is essential not only to motivate block producers (miners) but also to protect networks from DDoS attacks and spamming. That is a protection against a conditional infinite loop in a smart contract that could "hang" all miners.
In Ethereum, protection is done with gas. Each operation in a smart contract costs a certain amount of gas and a limited amount in a block. It is impossible to create an infinitely complex smart contract because gas is paid, and the network is protected from spam.
At EOS, transactions are shareware. We do not pay for gas - there is none. Instead, there is network bandwidth (so-called bandwidth), which is given to each user depending on the share of the EOS network that he owns.
If you do not have enough network power, you can buy additional EOS tokens and launch more complex contracts. Let's say you have 100% network performance. If you hold 1% of EOS tokens, you can use 1% of your bandwidth.
The resource consumed by a smart contract is calculated from three parameters: processing power, the amount of stored data, and memory used.
Transactions per second. At its peak, the Ethereum network had about 15 transactions per second. EOS promises in June from 1000 to 6000, and then also to scale this parameter.
EOS has a total of 21 miners, which is a block producer. They don't mine in the sense in which they mine Bitcoin or Ethereum, which is not Proof-of-Work (PoW).
For more transactions per second, miners must supply more powerful hardware. The EOS engine is well-designed for thread sharing and has the potential to provide a very high number of transactions per second.
Virtual machine. Ethereum uses its own EVM (Ethereum Virtual Machine) virtual machine, while EOS uses the open standard WebAssembly. The EOS engine is considered more modern and versatile.
Development languages. The languages for developing smart contracts in these blockchains can be any. Most importantly, they must compile to EVM for Ethereum and WebAssembly for EOS.
In practice, Ethereum mainly uses the Solidity language. It is easier to learn than C ++ and Rust, which are now basically used for EOS programming. That may change in the future with new compilers like JS to WebAssembly.
DDoS protection. As already mentioned, Ethereum uses gas, while EOS uses bandwidth.
Account model. The account ("address" in EOS terms) on both networks is a key pair (public and private). In Ethereum, the model is flat, that is, all addresses are equal, and there is no separation of access.
EOS has a hierarchical model built-in, much like operating systems. That is why EOS developers portray it as a blockchain OS. The chief account in EOS can manage the child, giving them various access rights: to write, to send certain transactions. In this case, all accounts are inherited from the block producers (miners). And so they have an enormous influence on the network.
Smart contract interaction model. Ethereum has a smart contract address and a transaction. A flat model is used: both the user and the contract can make a transaction.
In EOS, to send a transaction to a smart contract, you first need to obtain "permissions" to launch specific actions. It is a very flexible system in terms of configuring access, security, upgradeability, etc.
Resource sharing. In Ethereum, to give one smart contract access to the resources of another (storage), you need to correctly provide a delegate call function.
In EOS, there are many more possibilities - you can assign different rights: which contract, address, or account has access.
Bugfix. Ethereum needs a fork to fix bugs, while EOS BPs can ban an awkward contract or fix another bug.
Consensus type. In Ethereum, the limited resource is the computing power of miners - this is the well-known Proof-of-Work consensus model.
EOS presents the Delegated Proof-of-Stake consensus algorithm - the voices of the network owners act as a limited resource. There are dedicated block producers that EOS holders have elected. They close the blocks doing the payload.
Consensus resource. Today, block producers in Ethereum and Bitcoin are large mining pools with enormous computing power.
EOS has only 21 block producers. Each is elected by a general vote. Voting can be multi-stage - you vote for a candidate who can vote for a node that is a candidate for block producers.
Algorithmic type. Ethereum is a probabilistic algorithmic type of consensus, that is, we do not know which node will close the next block and when.
EOS has a deterministic type of algorithm: it is known which node closes the block and when. The nodes alternate in a strict order, and the time is also strictly defined.
Formation of blocks. Ethereum generates 0.03 blocks per second on average - about one block every 30 seconds.
EOS has two blocks per second.
The number of nodes to close the block and attacks. In Ethereum, just one live node is enough to close a block.
EOS requires 15 nodes: 2/3 of all active block producers and one more nodes.
The same amount (14 + 1) is needed for the attack, as in the attack on Ethereum: 50% + 1 (51%).
Proof of Stake Transactions: Traded Average Price Options (TaPoS). TaPoS is a chain verification where a hash of the previous block is added to each transaction. Ethereum doesn't have that.
In EOS, this is an additional layer of protection. If we suddenly "replay" the blockchain and change something, the hash of the previous blocks changes, and all transactions in the new block become invalid.
The Ethereum blockchain is managed off-chain. EOS is managed (on-chain) by a share vote of all token holders.
It is assumed that the network in EOS will be managed by sending transactions. You send a voting transaction, as it were, your vote, and with the stored EOS vote for the decision to choose a block producer (BP) or on some changes directly in the code.
It can be represented as follows: on GitHub, there is some kind of commit that is voted for a decision is made whether to change something or not.
The same goes for banning unscrupulous block producers and delegating votes.
Awards and inflation
Over the past couple of months, the rules for distributing awards between block producers have changed. And most likely, they will still change. The actual data can be found directly from the EOS code.
At the moment, out of 5% of fixed annual inflation, only 1/5 (20%) is intended for the remuneration of block producers. The remaining 4/5 (80%) goes to a separate fund, the distribution rules of which are not yet clear enough, and we will leave them outside the scope of this article. It was assumed that the BPs themselves would decide by voting how much to send to themselves for remuneration, and how much - to the fund.
In turn, 25% of the same 1/5 of the annual inflation is received by active block producers who close the blocks (this is the top 21 BP). The remaining 75% - all block producers, both active and standby, share among themselves in the proportion in which they received votes.
So far, the economic sense of this system is not very clear. There is a possibility that after the release of EOS, several networks will be launched at once. After all, more than 180 candidates have already registered for block producers: all of them will presumably claim to be in the top 21. And the EOS developers themselves do not plan to launch their blockchain, leaving it entirely on the side of the community.
There is a debate about whether nodes should pay votes for their voters. EOS inflation 5% and even 1% is pretty big money. With a network capitalization of about $ 10 billion (at the time of publication of the article), 1% is one hundred million dollars. It makes economic sense for block producers to attract votes by paying. But the overwhelming majority of BP candidates declare that they will not buy votes and, in general, this is a vile practice that must be avoided. These statements may be made for legal reasons.
Ethereum has given a bunch of new opportunities to blockchain enthusiasts, however, EOS has become a more advanced platform that opens up new horizons, not always immediately apparent.