EOS Blockchain is aiming to become a decentralized operating system which can support industrial-scale decentralized applications.
That sounds pretty amazing but what has really captured the public’s imagination is the following two claims:
- They are planning to completely remove transaction fees.
- They are claiming to have the ability to conduct millions of transactions per second.
So, let’s see what is behind all this hype. In this guide, we will talk about everything EOS. However, before we do so let’s WHY we need something like EOS. Let’s answer the following question.
What do DAPPs require?
Or, to frame it more specifically, what does a DAPP require to be successful and a hit with the mainstream audience? What are its absolute minimum requirements?
- Support For Millions of Users
It should be scalable enough for millions of users to use it. This is especially true for DAPPs that are looking for mainstream acceptance.
- Free Usage
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.
- Easily Upgradable
The platform should allow the developers the freedom to upgrade the dapp as and when they want. Also, if some bug does affect the DAPP, the devs should be able to fix the DAPP without affecting the platform.
- Low Latency
A DAPP should run as smoothly as possible and with the lowest possible latency..
- Parallel Performance
A platform should allow their DAPPS to be processed parallelly in order to distribute the workload and save up time.
- Sequential Performance
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?
- BitShares and Graphene have good throughput but are definitely not smart contract suitable.
- Ethereum is clearly the most obvious choice in the market. It has amazing smart contract abilities but the low transaction speed is a major issue. Plus, the gas price can be problematic as well.
EOS is thought of as a “best of both worlds” which combines the high throughput of Graphene and BitShares with the smart contract usability of Ethereum.
Now that we know why EOS was created, let’s look at the team behind the project
The Team Behind EOS Blockchain
Image Credit: Medium
The core team behind EOS is “Block.one”, which is based in the Cayman Islands. 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. He is the creator of delegated proof-of-stake and decentralized autonomous organizations aka DAOs. He is the also the man behind BitShares and Steem.
What Does EOS Blockchain Bring To The Table?
Let’s check out some of the features of EOS.
- #1 Scalability
The biggest problem that the blockchain based space is facing is scalability issue
Visa manages 1667 transactions per second while Paypal manages 193 transactions per second. Compared to that, Bitcoin manages just 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 are because each and every node of the network must come to a consensus for anything to go through.
EOS are claiming that because they use DPOS aka the distributed proof-of-stake consensus mechanism, they can easily compute millions of transactions per second. We will explore DPOS in a bit.
- #2 Flexibility
Ethereum’s entire system came to a standstill because of the DAO attack. Everything stopped and the community got split because of the hardfork.
Because EOS uses DPOS this is unlikely to happen again in their ecosystem. 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.
- #3 Usability
EOS allows well-defined levels of permission by incorporating features like web toolkit for interface development, self-describing interfaces, self-describing database schemas, and a declarative permission scheme.
- #4 Governance
In EOS the Governance is maintained by establishing jurisdiction and choice of law along with other mutually accepted rules This is usually done via the legally binding constitution. Every single transaction in EOS must include the hash of the constitution to the signature. This, in essence, binds the users to the constitution.
The constitution and protocol can be amended by the following process:
- The change is proposed by the block producer who obtains a 17/21 approval rate
- The 17/21 approval must be maintained for 30 straight days.
- All users are required to sign off their transaction using the hash of the new constitution.
- Block producers adopt changes to the source code to reflect the change in the constitution and propose it to the blockchain using the hash of a git commit.
- Block producers again need to maintain 17/21 approval for 30 consecutive days.
- After that, full nodes are given one whole week to adapt to the new changes.
- Any node that doesn’t follow the new protocol is automatically shut down.
So what happens if something like the DAO happens and the EOS system is forced to look for a quick change and solution to the protocol? In emergencies like that the block producers have the power to speed up the amending process.
- #5 Parallel Processing
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.
Let’s check out the meaning of each of those terms.
- Horizontal scalability: While in Vertical scalability scaling up is done 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 in the same time to have a communication.
- Interoperability: Ability of a computer system to exchange and make use of information.
Any blockchain based on the EOS software will have to generate a 5% natural inflation per year. This will be distributed to the platform’s block producers in connection with their confirmation of transactions on the platform and to the top three smart contracts or proposals that receive the most amount of votes from holders of such tokens.
The reason why this happens is to make sure that a blockchain is not reliant on any one single one foundation, organization, or individual for its growth, development or maintenance.
- #7 Decentralized Operating System
Probably the most critical feature to truly understand what EOS is all about is this feature.
Think of a MacOs/Windows with cryptoeconomic incentive.
Now, Ethereum is a decentralized supercomputer, EOS positions itself as an operating system. That in itself makes EOS, theoretically at least, a more focused product.
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.
Proof-of-work as a process has the following steps to it:
- The miners solve cryptographic puzzles to “mine” a block in order to add to the blockchain.
- This process requires immense amount of energy and computational usage. The puzzles have been designed in a way which makes it hard and taxing on the system.
- When a miner solves the puzzle, they present their block to the network for verification.
- Verifying whether the block belongs to the chain or not is an extremely simple process.
That, in essence, is what the proof-of-work system is. Solving the puzzle is difficult but checking whether the solution is actually correct or not is easy.
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.
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.
How does it work?
- 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.
Confirming Transactions 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 does the folllowing:
- Prevent transaction replay on different chains.
- Signaling the network that a user and their stake is on a particular fork.
This prevents validators from acting maliciously on other chains.
Eliminating Transaction Fees
EOS works on an ownership model whereby users own and are entitled to use resources proportional to their stake, rather than having to pay for every transaction. So, in essence, if you hold N tokens of EOS then you are entitled to N*k transactions. This, in essence, eliminates transaction fees.
The costs of running and hosting applications on Ethereum can be high for a developer who wants to test their application on the blockchain. The gas price involved in the early stages of development can be enough to turn off new developers.
The fundamental difference between the way Ethereum and EOS operate is that while Ethereum rents out their computational power to the developers, EOS gives ownership of their resources. So, in essence, if you own 1/1000th of the stake in EOS then you will have ownership of 1/1000th of the total computational power and resources in EOS.
As ico-reviews states in their article:
“EOS’s ownership model provides DAPP developers with predictable hosting costs, requiring them only to maintain a certain percentage or level of stake, and makes it possible to create freemium applications. Furthermore, since EOS token holders will be able to rent / delegate their their share of resources to other developers, the ownership model ties the value of EOS tokens to the supply and demand of bandwidth and storage.”
Image Credit: Cryptorated
EOS tokens are ERC-20 compatible tokens distributed on the Ethereum blockchain. As you maybe aware of, Ethereum can not only fund DAPPS, it can fund other blockchains as well. The token sale opened on 26th June 2017 and will run for 341 days till July 3 2018. There are a total of 1 billion EOS tokens available.
EOS is aiming for mass adoption. The reason why they are Also, they can see the development of the EOS software in the given time period before they make a decision.
The token distribution goes as follows:
200 million EOS Tokens (20% of the total amount of EOS Tokens to be distributed) will be distributed during a 5-day period beginning on June 26, 2017 at 13:00 UTC and ending on July 1, 2017 at 12:59:59 UTC.
From July 1 2017, 700 million EOS tokens (70% of the total supply) will be split into 350 divisions of 2 million tokens each and sold in 23 hour periods.
There are two reasons why the EOS tokens available during the 5 day period is higher than the number available during the subsequent 23 hour periods:
- To accommodate for the current interest and demand that EOS tokens have received.
- To accurately determine the early stage price discovery of the EOS tokens.
The remaining 100 million tokens will remain with Block.one. These cannot be transferred or traded on the Ethereum network during the EOS token distribution period. During this time Block.one are not allowed to:
- Purchase EOS tokens.
- Pay any dividend to their shareholders.
- Perform any share buybacks.
The Ether to EOS conversion goes like this:
EOS received = a*(b/c).
In the equation:
- a = Total ETH contributed by an authorized purchaser during the period.
- b = Total number of EOS Tokens available for distribution in the period.
- c = Total ETH contributed by all authorized purchasers during the period.
Let’s take an example and see how this works out.
In one specific period.
The total number of EOS tokens available is 30. Alice contributes 4 ETH and Bob contributes 1.
So, let’s calculate how EOS Bob receives.
- a = 1
- b = 30
- c= 1+4= 5
So, Bob receives: 1* (30/5) = 6 EOS tokens.
And, Alice gets= 24 EOS tokens.
EOS Wallets and Exchanges
EOS coins can be bought and sold in exchanges like Kraken and Bitfinex. The coins can be stored using wallets like Metamask and MyEtherWallet.
Criticism Of EOS
There have been some concerns about EOS that has been raised by Ethereum co-founder Vitalik Buterin.
What is Co-ordination game theory?
Consider this matrix:
Now, if you see this matrix, there are two Nash Equilibria: (A,A) and (B,B), deviation from either of the state won’t benefit them. The idea of this game is how can you convince people to go from (A,A) to (B,B)? If there are a small group of people involved then that is relatively simple, you can simply coordinate via phone or emails. But, this changes when we are talking about a huge group of people.
The fundamental difference between prisoner’s dilemma and coordination problem is that in prisoner’s dilemma, both the players had to choose (B,B) because that was the choice that had the most payoff even though (A,A) is a morally better solution. In Co-ordination problem, it is not about the morality or the payoff, it is about the incentive for a person to go from one state to another. Why should a huge group of people change the way they do things?
A co-ordination game fails when an only minority of the group change their state and the majority don’t and inversely, it is a success when a majority of the group changes their state. Let’s see that with an example.
Suppose we want to change the language to a symbol-based language. Eg:
- Original statement: “Give me your number?”
- New statement: “#?”
If only you speak using this language, it will be a failure because the majority won’t understand what you are talking about and you will be shunned from conversations aka the payoff for you is very low and you have no incentive to change.
However, if the majority of your society shifts to this language and use it exclusively, you will have to change your language otherwise you will never be able to fit in. Now the incentive for you to join is high.
The DPOS system could use the co-ordination game theory to its disadvantage. There could be a scenario where a certain situation is favored by the block producers which are not in accordance with the rest of the nodes.
Suppose the master nodes want to transition the chain from state A to state B. It could be a very hard task for them to help the entire chain do the same transition along with them especially if the other nodes are opposed to state B.
Over-reliant On Voting
The system is extremely reliant on voting mechanism. Voting has the following problem:
- Low participation.
- The tragedy of the commons: When Individuals act rationally and independently according to their own self-interest and deplete a shared resource even if it is contrary to their shared best interest is called the tragedy of commons.So, how does this apply here?As Vitalik puts it: “Each voter only has a tiny chance of influencing the result, their incentive to vote correctly is thousands of times lower than the socially optimal incentive. This means that situations like everyone putting their coins on exchanges and exchanges voting on users’ behalf, with users not really caring how exchanges vote with their money, are likely to happen.”
- A coin holder’s interests are not perfectly aligned with a user’s interest. Because of this, proposals that increase the coin price at the expense of user experience may get implemented.
The “0 Transaction” Fees Mechanism
Vitalik noted that users need to hold a certain amount of EOS tokens in order to get some amount of free transactions i.e. N EOS tokens will result in N*k free transactions. This means that people are basically cornered into holding N tokens to participate and expose themselves to coin volatility. This has some undesirable consequences on:
- People who are not that economically well off.
- People who just want to use the blockchain a few times and go away. How can a system scale up if it can’t account for hobbyists?
Not Properly Dealing With “Nothing At Stake” Problem
Consider this scenario for a moment:
Suppose we have a situation like the one above. There is a main blue chain and a red chain which sort of branches from the main itself. What is there to stop a malicious miner from mining on the red blocks and force a hardfork?
In a proof-of-work(POW) system, this risk can be mitigated.
Suppose malicious miner Alice wants to mine on the red chain. Even if she dedicates all of her hash power to it, she won’t get any other miner to join her on the new chain. Everyone else will still continue to mine on the blue chain, because it is more profitable and risk-free to mine on the longer chain.
Now, remember, POW is extremely expensive resource-wise.
It makes no sense for a miner to waste so much resource on a block that will be rejected by the network anyway. Hence chain splits are avoided in a proof of work system because of the amount of money that the attacker will have to waste.
However, things look a little different when you bring in POS.
If you are a validator, then you can simply put your money in both the red chain and blue chain without any fear of repercussion at all. No matter what happens, you will always win and have nothing to lose, despite how malicious your actions maybe.
This is called the “Nothing at Stake” problem.
Ethereum’s Casper punishes any validators who attempts to do this by slashing away their stake.
However, critics have said that EOS doesn’t punish their malicious validators harshly enough for taking part in the act. As a collateral, the malicious validators would suffer a loss of reputation, which critics don’t find harsh enough.
The EOS token has been doing pretty well.
Image Credit: CoinMarketCap
As of writing, the stats are as follows:
$10.91 per EOS token.
Market Cap: $6,036,454,545 USD
EOS is obviously trying to compete with Ethereum in the “DAPP platform” space. They have some very interesting technology and a strong team behind them. There is every possibility that they are going to do something special.
However, as has been pointed out, EOS is not without its flaws.
Plus, in the time that it will take to develop, Ethereum might already implement most of the measures which will help it in scaling up like plasma, sharding etc.
What we can say is, there is space for everybody. More the better.
Let’s what EOS can bring to the table.