Ethereum vs. EOS
A view from MyBit
This week, we thought we’d do an in-depth tech blog looking at two of the main blockchains: Ethereum and EOS. It’s something the MyBit team have been thinking about a lot behind the scenes, so we wanted to get the community up to speed.
We currently run the MyBit DApp on Ethereum, with a ‘back-up’ on EOS — and we’ll get to exactly how and why we made this decision in a moment.
While the projects share a similar vision and approach, there are some major trade-offs between EOS and Ethereum. Currently, these mainly revolve around their different consensus algorithms as well as some design differences. Especially, how these designs scale while fostering decentralization. That’s the big one.
Generally, decentralization is good for security. Problems arise due to scaling — as well as how block producers are chosen and how well the incentive system works. We’ll go through each of these challenges in turn, looking at which blockchain provides the best solution. And we’ll be giving a running score as we go along.
First up is block production. There are some major differences between Ethereum and EOS when it comes to the way they decide the content of blocks (and who decides). In turn, this dictates how many blocks they are able to produce per minute, which significantly affects transaction speeds.
Here we’ve broken down the main points of difference:
- Proof of work: Ethereum’s model is ‘proof of work’, which means blocks are produced at a slower rate. It’s important to note that security starts to be lost at faster block rates. When miners find new blocks they must broadcast to other miners about the block. This leads to our next point: inefficiency.
- Inefficiency: Because there’s a delay between the mining node finding a block and alerting all the others, problems can arise. Another miner may find a block before all nodes are aware of the already discovered block, which in turn causes miners to temporarily mine a shorter chain. They later abandon this for the longer chain, leaving this block an orphan. The rates that blocks get orphaned depend upon the chances of finding a block and the latency between nodes. But researchers in Zurich found that once a miner produces a block it can take an average of 6.5 seconds for the block to reach 50% of the nodes. As block times increase, the chances of finding a block increase and so more blocks get abandoned due to network latency. This has a knock on effect for security, as we’ll see in a moment.
- Security: When blocks get orphaned, this reduces the security of the network because of the reduction in mining power on the main (longest) chain. The way Ethereum produces blocks creates a theoretical limit on how fast blocks can be produced without sacrificing security. In short, it’s safer but slower.
- Proof of stake: In contrast, EOS’ model is delegated proof of stake (DPOS). The holders of EOS tokens delegate who is going to produce blocks in advance, which lets block producers take turns producing and verifying blocks.
- Efficiency: The reduced number of block producers combined with the reduction of full nodes verifying transactions greatly reduces network latency. This means EOS can afford to create many more blocks per minute: every 0.5 seconds to be precise. All block producers must sign a block to prove they verified the transactions. And once 15 block producers have signed a block it’s deemed irreversible.
Already, we can see some major differences between the two blockchains. Two philosophies, if you like. And perhaps that’s not surprising when you learn that EOS’ team say they started the project to improve on Ethereum. Their model is clearly working to reduce transaction times, which may just give them the edge here, but we’ll get on to what this means for security in a moment. Before that, though, let’s look at what it means for decentralization.
EOS 1, Ethereum 0.
Decentralization is one of the preeminent philosophies within blockchain. But what does it mean in practice, and which of these blockchains are doing it best?
For a system to be decentralized, each user must be able to participate without requiring a large amount of resources. However, to avoid Sybil attacks each participant is required to use a large amount of resources, creating — paradoxically, perhaps — a centralizing effect. By default, Ethereum has centralized into mining pools and EOS is centralized into 21 block producers.
Generally speaking, both platforms try to use a combination of full-nodes and light-nodes, where the full-nodes hold a full copy of all transactional data and light-nodes use merkle proofs to verify data. So that’s the theory, now let’s get onto the specifics to see how they match up in practice.
- Nodes: Every full-node must store previous transactions, which requires an incredible amount of storage. The upside is that this ensures transactions have the correct signatures and no double spends occur. Light-nodes can store the block headers and verify data from these full-nodes against those same block headers, allowing them trustless access to the data without needing to store every transaction.
- Redundancy: Every miner must verify every transaction. This redundancy offers security but causes a delay in consensus due to the time it takes to verify and store every transaction across all nodes.
It’s worth mentioning Ethereum Casper at this point. Casper is an ‘upgrade’ for Ethereum, effectively moving it towards a proof of stake model.
- Sharding: Casper uses sharding, which splits transactions up among the nodes, letting them process smaller pieces of the overall block. This reduces the computational cost for light-nodes. Now they can verify data using merkle proofs since they only need to store the header.
Sharding creates four levels of node instead of the usual two (full-node and light-node). This in turn allows little micro blockchains to run merkle proofs, verifying the integrity of the data received from a larger node.
- Nodes: In contrast, EOS relies on the transactional data held by the 21 full-nodes, which all light-nodes use to verify transaction data. Users have the option of paying to run their own nodes, ensuring speed and fidelity for all their DApp’s transactions. EOS also requires every transaction to make a signature referencing the previous block. In turn, this lets the network verify its consensus without spending large computational resources. It also prevents transactions from being replayed in the case of chain forks.
- Redundancy: It’s worth mentioning here that the cost of data is at the discretion of block producers. They determine the computational cost of actions on the network. Currently, there are only the 21 block producers, which may get reduced over time since block producers can indirectly buy votes from users. And, over time, cartels form as block rewards can be used to buy votes, which when coordinated can drive up the price while once again centralizing power.
So when it comes to decentralization, Ethereum seems to have the edge on EOS — but not by much. Ethereum has a high degree of full-nodes, but their miners have the tendency to centralize into pools. Yet EOS doesn’t provide an improved solution. Even taking into account Ethereum’s mining pools, we have to remember that EOS only has 21 block producers to begin with. And so our scoreline is now level:
EOS 1, Ethereum 1.
Finally, any blockchain comparison must look at one of their essential features: security. Both projects have put security at their heart, but it’s interesting to see how each is dealing with the challenge of balancing security with scalability.
- Proof of work: The proof of work model has proven itself secure for large chains such as Ethereum, where the cost of attack is so large. However, with the centralizing forces of mining pools and access to a large amount of rented GPU, the decentralizing factors of proof of work are greatly reduced. Ethereum slightly counters these effects by rewarding miners for finding orphaned blocks, which encourages miners to avoid large mining pools, since they have a reduced network latency.
- Ethereum Casper: Casper integrates proof of work to raise the cost of disrupting the chain. As well as slashing, which punishes bad actors by burning their deposits.
- Proof of stake: EOS only has 21 nodes and latency in how fast these nodes can be swapped. If more than six block producers go down, the blockchain will be in ‘flux’ as it requires at least 16 block producers to sign blocks for finality to be reached. And users have to know that their transactions could be reversed when this situation occurs.
To alleviate this, there’s a 121 block delay in how often block producers can be voted in or out by EOS stakers. Plus, there’s no current slashing protocol, which gives the stakers no direct repercussions from voting in a bad delegate. With many users having a minimal effect on the voting, they may not even care if exchanges use their votes for them.
- Consensus: It’s worth noting that EOS uses a consensus protocol which requires fewer commit messages to reach consensus. This allows EOS to reach finality faster.
- Bugs: It’s also worth pointing out that EOS has had an alarming number of bugs this past month. First there was the vulnerability that allowed an attacker to gain control of a node. Then there was an integer overflow/underflow bug. And the whole network went down immediately after going live.
When it comes to security, it’s pretty clear that Ethereum’s strong track record and proven model is leading the way right now. The recent bugs aside, Ethereum’s model is built with security in mind, whereas EOS seems to have sacrificed some of that for speed and efficiency. We’ll offer a more conclusive round up in the next section. But, as it stands, the scoreline is:
EOS 1, Ethereum 2.
By now, it’s pretty clear that Ethereum and EOS are being developed with differing goals in mind.
Nothing shows this more clearly than the real-world average transaction speed. Here are the current estimates with EOS confirming transactions with 99.9 certainty in around 1.5 seconds under good conditions. Pretty impressive stats.
EOS = 600 transactions per second,
Ethereum = 15 transactions per second.
EOS is a blockchain that’s still developing and it’s proof of stake model is still evolving. We’re watching EOS’ ongoing development, but the amazing strides they’re making with scalability can’t make up for the increased security risks. We hope this will change in the future, but for now we couldn’t get behind EOS in its current state.
And this is just one of the reasons MyBit chose to build our DApp on Ethereum.
We’re keen to point out, though, that this really depends on the project: the balance between security and scalability should always be measured on a case by case project. Different projects may value one more highly than the other. For us, the MyBit DApp doesn’t currently need a large amount of on-chain data. That made Ethereum the better option for us.
With the EOS protocol being so new, Ethereum appears better placed for applications requiring high security and low scalability. On the other hand, EOS could be used to great effect for applications that prioritise high scalability at the cost of lower security. Video games. Social media platforms. Ride-sharing. These are just a few situations where we could see EOS outshining Ethereum as the blockchain of choice.
That being said, the MyBit project does use EOS as a ‘backup’. Our DApp and token balances are ready to be converted to EOS should one of two scenarios arise. First, Ethereum suffers some fatal attack and the network breaks or is otherwise unsafe to use. Second, EOS solves the security issues we’ve set out above and we choose to migrate to EOS. To be safe, we take regular ‘snapshots’ of MYB account balances and can migrate them to EOS should the need ever arise.
Until next time!
The MyBit Team