EOS: The Decentralized Operating System
Updated: Feb 17, 2018
Researcher at SpringRole.
Dec 29, 2017. Originally published here.
Over the last few months, the blockchain space has been saturated with game changing developments. However, Block.one has made the entire world take notice with the introduction of “EOS”.
So what does EOS aim to become?
They are aiming to be a decentralized operating system which can support industrial scale decentralized applications.
Ok, so what is so intriguing about that?
We already have Ethereum, Neo etc. who have done/ are planning to do the same.
The main USP of EOS is that:
They are planning to completely remove transaction fees.
They are claiming to have the ability to conduct millions of transactions per second.
With these lofty claims, it is easy to understand why everyone is excited about them. So let’s do a deep dive of their system and see what makes them tick.
The article has been divided into two parts.
In this part we will explore the features of EOS and the Delegated Proof Of Stake(DPOS) system.
The Origins of EOS
Image Credit: Medium
One of the biggest selling points of EOS is the team behind it. As as has been mentioned already, the core team behind EOS is “Block.one”. Brendon Blumer, the CEO, 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.
Dan Larimer, is the CTO, and is somewhat of a rockstar in the Blockchain industry, He is credited with the conceptualization of delegated proof-of-stake and decentralized autonomous organizations. His two biggest and well known projects are BitShares and Steem.
So, before we read more about EOS, let’s look at why something like that is needed. In the simplest of terms, EOS is a platform where developers can build their DAPPs.
What do DAPPs require?
DAPPs are the future, there is not two ways about it. That is the reason platforms like Ethereum , NEO etc. are so important. They are the ones providing the developers with the platform they need to create truly revolutionary DAPPs. So, what are the minimum things that DAPPs require from a platform to function at the highest level?
Support For Millions of Users
A DAPP should be designed for mass usage and consumption. Every industry disrupting application/service that has ever been built has been scalable enough for millions of users to use them at a time.
The platform should enable the devs to create dapps which are free to use for their users. No user should have to pay the platform to gain the benefits of a dapp.
The platform should allow the developers the freedom to upgrade the dapp as and when they want. Plus, the platform should be robust enough to withstand bug attacks and should allow the devs the time to conduct a rigorous check in order to solve the problems.
One of the factors that can lead to terrible user experience is latency and lag. When you are operating a DAPP you expect instantaneous responses and feedback. If there is a lot of lag then users will simply opt for centralized alternatives.
A platform should allow their DAPPS to be processed parallely in order to distribute the workload and save up time.
However, not all the functions on a blockchain should be done that way. Think of transaction execution itself. Multiple transactions can’t be executed in parallel; it needs to be done one at a time to avoid errors like double spends.
So, what are the platforms available to us when it comes to DAPP creation?
Corda and Fabric don’t have much smart contract support and are not for public and open network.
BitShares and Graphene have good throughput but are definitely not smart contract suitable.
Ethereum is clearly the most obvious choice in the market.
However, even though Ethereum has a lot of advantages for DAPP creation, its low transaction rate and high fees are definitely a problem.
That is why EOS was conceptualized, something that could combine the transaction speed of Graphene and the Smart Contract optimization of Ethereum.
The 4 Pillars Of EOS
Image Credit: Steemit
So what does EOS aim to be? What are their end goals? Let’s term these end goals as the 4 pillars of EOS.
#1 Being Scalable
The biggest problem that the blockchain based space is facing is scalability issue. We need to compare bitcoin and ethereum with other financial services like visa and Paypal to make a fair judgment.
Compared to that, Bitcoin manages a measly 3–4 transactions per second while Ethereum fairs slightly better at 20 transactions per second.
The reason why blockchain based applications can’t compute that many transactions per second is because of their decentralized and byzantine fault tolerant architecture. Each and every node of the network must come to a consensus for anything to go through.
EOS are claiming that they can easily compute millions of transactions per second because of their implementation of DPOS aka delegated proof of stake consensus mechanism. We will expand on it later.
#2 Being Flexible
One of the biggest concerns that most people had with Ethereum was its inflexibility. When the DAO incident happened the entire Ethereum ecosystem came to a standstill because of a hardfork. Ethereum simply can’t afford something like this in the future.
This won’t happen in a system like EOS because they use a delegated proof-of-stake consensus mechanism. If a DAPP is faulty, the elected block producers can freeze it until the system is taken care of. This is simply an extension of the DPOS system, not every node has to take care of chain maintenance.
EOS allows well defined levels of permission by incorporating some rather useful features. It includes a web toolkit for interface development, self-describing interfaces, self-describing database schemas, and a declarative permission scheme.
EOS will have a legally binding constitution which will act like a “terms of service” for the community. This will help in dispute jurisdiction and resolution. Every account needs to sign the constitution. The signature will be considered null and void if the user doesn’t use the platform.
So, now that we have seen the pillars, let’s checkout the features that EOS brings to the table.
What Are The Features of EOS?
The features of EOS are as follows:
#1 Parallel Processing
Image credit: Steemit
In parallel processing, program instructions are divided among multiple processors. By doing this, the running time of that program decreases greatly.
EOS provides parallel processing of smart contracts through horizontal scalability, asynchronous communication and interoperability. So what do each of those terms mean?
Horizontal scalability: So there are two kinds of scalability that you can achieve. Horizontal and Vertical. Vertical scalability means scaling up by adding more processing power. Horizontal scalability on the other hand means scaling up by adding more systems and computers to the resource pool.
Asynchronous communication: Communication that is not synchronized i.e. the parties involved need not be present at the same time to have a communication.
Interoperability: Ability of a computer system to exchange and make use of information.
As we have mentioned above, a legally binding constitution which will act like a “terms of service” for the community. Each and every transaction includes the hash of the current state of constitution.
This is one of the most important features of EOS. The current model has a 5% inflation rate which helps provide for future network development.
#4 Decentralized Operating System
Probably the most critical feature to truly understand what EOS is all about is this feature. Now, Ethereum positions itself as a supercomputer while EOS positions itself as its operating system. That in itself makes EOS, theoretically at least, a more focused product. Think of a MacOs/Windows with cryptoeconomic incentive. It will be able to host all your AppCoins asynchronously.
Imagine a Task Manager for EOS. Image Credit: Steemit
Another interesting correlation that Kevin Wong brings up in his Steemit article is that no matter how fast or modern your OS, a slow computer will still limit its performance. So instead of a decentralized computer it is better to focus on a decentralized OS.
What is Delegated Proof Of Stake?
So, now we come to the consensus mechanism. As you are probably aware of, the most common consensus mechanism out there is proof-of-work, the one that is commonly used by bitcoin.
However, EOS is using the Delegated Proof of Stake (DPOS) for their consensus.
So, how does it work? Before that let’s understand how proof-of-stake works
What is proof of stake?
Proof of stake will make the entire mining process virtual and replace miners with validators.
This is how the process will work:
The validators will have to lock up some of their coins as stake.
After that, they will start validating the blocks. Meaning, when they discover a block which they think can be added to the chain, they will validate it by placing a bet on it.
If the block gets appended, then the validators will get a reward proportionate to their bets.
Image Credit: Blockgeeks
So, how is DPOS different from traditional POS?
Firstly, anyone who holds tokens on a blockchain integrated in the EOS software can select the block producers through a continuous approval voting system. Anyone can participate in the block producer election and they will be given an opportunity to produce blocks proportional to the total votes they receive relative to all other producers.
Let’s see how the entire process works:
Blocks are produced in the rounds of 21.
At the start of every round 21 block producers are chosen. Top 20 are automatically chosen while the 21st one is chosen proportional to the number of their votes relative to the other producers.
The producers are then shuffled around using a pseudorandom number derived from the block time. This is done to ensure that a balance connectivity to all other producers is maintained.
To ensure that regular block production is maintained and that block time is kept to 3 seconds, producers are punished for not participating by being removed from consideration. A producer has to produce at least one block every 24 hours to be in consideration.
The DPOS system doesn’t experience a fork because instead of competing to find blocks, the producers will have to co-operate instead. In the event of a fork, the consensus switches automatically to the longest chain.
How Does Transaction Confirmation Work In DPOS?
A DPOS blockchain typically has 100% block producer participation. A transaction is usually confirmed within 1.5 seconds from the time of broadcast by a 99.9% certainty. In order to have absolute certainty over the validity of a transaction, a node need only to wait for 15/21 (i.e. a 2/3 majority) producers to arrive to a consensus.
So what happens in the event of a fork caused by negligence or malicious intent?
All the nodes will, by default, not switch to a fork which doesn’t include any blocks not finalized by 15/21 producers. This will stand true regardless of chain length. Each block must gain a 15/21 approval to be considered a part of the chain.
Because of the short block creation time, it is possible to warn nodes of whether they are in the major or minor chain within 9 seconds. The reason why that is so is simple. Remember, the average time elapsed between each block is 3 seconds.
If a node misses 2 consecutive blocks there is a 95% chance that they in a minority fork.
If a node misses 3 blocks, then there is a 99% chance of them being on a minority chain.
What is TAPOS?
Transaction As Proof Of Stake or TAPOS is a feature of the EOS software. Every transaction in the system is required to have the hash of the recent block header. This is done because of two reasons:
Prevent transaction replay on different chains.
Signalling the network that a user and their stake is on a particular fork.
This prevent users from acting in a Byzantine manner on a different chain.
That’s it for Part 1! I hope you enjoyed it.
In Part 2 we will cover the following:
The Ownership model of the EOS which leads to 0 transaction fees.
The Constitution of the EOS.
The EOS ICO.
Some concerns that have been raised about EOS.